1. Changed the Travis-CI testing default OSX image from 'xcode9' to 'xcode10.1', also added Travis-CI's default 'xcode9.4' image to the '2.1' branch testing. 2. Corrected virtualenv setup for OSX images where it is not installed by default. 3. Corrected the minimum version of OSX image on which the target binaries are to be deployed. CMake uses this value for the -mmacosx-version-min flag and to help choose the default SDK. The CMAKE_OSX_DEPLOYMENT_TARGET depends on DARWIN_VERSION: DARWIN_VERSION <= 10.12 -> CMAKE_OSX_DEPLOYMENT_TARGET = 10.6 DARWIN_VERSION >= 10.13 -> CMAKE_OSX_DEPLOYMENT_TARGET = 10.14 Closes #3797 --- Travis-CI: https://travis-ci.org/tarantool/tarantool/builds/495448673   Travis-CI(checked all OSX): https://travis-ci.org/tarantool/tarantool/builds/495415195   Branch: https://github.com/tarantool/tarantool/tree/remotes/origin/avtikhon/gh-3797-fix-mojave-mac-build diff --git a/.travis.mk b/.travis.mk index edd94cd7d..181bab438 100644 --- a/.travis.mk +++ b/.travis.mk @@ -47,6 +47,10 @@ test_ubuntu: deps_ubuntu  deps_osx:      brew update      brew install openssl readline curl icu4c --force +    virtualenv -h >/dev/null 2>&1 || \ +        ( pip -h >/dev/null 2>&1 || ( curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | python && pip --version ) && \ +        brew install pyenv-virtualenv --force && \ +        pip install virtualenv )    test_osx: deps_osx      cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfoWError ${CMAKE_EXTRA_PARAMS} diff --git a/.travis.yml b/.travis.yml index ffe2e8247..e03bd3185 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ language: cpp  os: linux  compiler: gcc   -osx_image: xcode9 +osx_image: xcode10.1    cache:      directories: @@ -27,6 +27,11 @@ jobs:        - name: RelWithDebInfoWError build + test (OS X)          env: TARGET=test          os: osx +      - name: RelWithDebInfoWError build + test (OS X 9.4) +        env: TARGET=test +        os: osx +        osx_image: xcode9.4 +        if: branch = "2.1"        - name: Debug build + test + coverage (Linux, gcc)          env: TARGET=coverage        - name: LTO build + test (Linux, gcc) diff --git a/cmake/luajit.cmake b/cmake/luajit.cmake index ea4878a93..d2253a0f9 100644 --- a/cmake/luajit.cmake +++ b/cmake/luajit.cmake @@ -194,9 +194,28 @@ macro(luajit_build)          endif()          # Pass deployment target          if ("${CMAKE_OSX_DEPLOYMENT_TARGET}" STREQUAL "") -            # Default to 10.6 since @rpath support is NOT available in -            # earlier versions, needed by AddressSanitizer. -            set (luajit_osx_deployment_target 10.6) +            # DARWIN_VERSION <= 10.12 -> CMAKE_OSX_DEPLOYMENT_TARGET = 10.6 +            # DARWIN_VERSION >= 10.13 -> CMAKE_OSX_DEPLOYMENT_TARGET = 10.14 +            execute_process(COMMAND sw_vers -productVersion +                OUTPUT_VARIABLE PRODUCT_VERSION) +            message(STATUS "PRODUCT_VERSION=${PRODUCT_VERSION}") +            string(REGEX MATCH "[0-9]+.[0-9]+" DARWIN_VERSION ${PRODUCT_VERSION}) +            message(STATUS "DARWIN_VERSION=${DARWIN_VERSION}") +            string(REGEX MATCH "^[0-9]+" MAJOR_VERSION ${DARWIN_VERSION}) +            message(STATUS "MAJOR_VERSION=${MAJOR_VERSION}") +            if (MAJOR_VERSION GREATER 10) +                set (luajit_osx_deployment_target 10.14) +            elseif (MAJOR_VERSION LESS 10) +                set (luajit_osx_deployment_target 10.6) +            elseif (MAJOR_VERSION EQUAL 10) +                string(REGEX MATCH "[0-9]+$" MINOR_VERSION ${DARWIN_VERSION}) +                message(STATUS "MINOR_VERSION=${MINOR_VERSION}") +                if (MINOR_VERSION GREATER 12) +                    set (luajit_osx_deployment_target 10.14) +                else () +                    set (luajit_osx_deployment_target 10.6) +                endif () +            endif ()          else()              set (luajit_osx_deployment_target ${CMAKE_OSX_DEPLOYMENT_TARGET})          endif() -- Alexander Tikhonov