[tarantool-patches] [PATCH v3] travis-ci: fixed Mojave mac build

Alexander V. Tikhonov avtikhon at tarantool.org
Thu Mar 14 14:20:28 MSK 2019


Fixed Mojave Mac build with MACOSX_DEPLOYMENT_TARGET
environment setup. Specified the minimum version of OS X
on which the target binaries are to be deployed. CMake
uses this value for the make environment and the
-mmacosx-version-min flag to help choose the default SDK
Removed virtualenv for osx at all

Fixed #3797
---

Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-3797-mojave-mac-build
Issue: https://github.com/tarantool/tarantool/issues/3797

 .travis.mk         | 10 +++-------
 .travis.yml        | 11 ++++++++---
 cmake/luajit.cmake |  9 +++++++--
 3 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/.travis.mk b/.travis.mk
index edd94cd7d..6e429735d 100644
--- a/.travis.mk
+++ b/.travis.mk
@@ -47,6 +47,8 @@ test_ubuntu: deps_ubuntu
 deps_osx:
 	brew update
 	brew install openssl readline curl icu4c --force
+	curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | python
+	pip install -r test-run/requirements.txt
 
 test_osx: deps_osx
 	cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfoWError ${CMAKE_EXTRA_PARAMS}
@@ -57,13 +59,7 @@ test_osx: deps_osx
 	ulimit -S -n 20480 || :
 	ulimit -n
 	make -j8
-	virtualenv ./test-env && \
-	. ./test-env/bin/activate && \
-	curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | python && \
-	pip --version && \
-	pip install -r test-run/requirements.txt && \
-	cd test && python test-run.py -j 1 unit/ app/ app-tap/ box/ box-tap/ && \
-	deactivate
+	cd test && python test-run.py -j 1 unit/ app/ app-tap/ box/ box-tap/
 
 coverage_ubuntu: deps_ubuntu
 	cmake . -DCMAKE_BUILD_TYPE=Debug -DENABLE_GCOV=ON
diff --git a/.travis.yml b/.travis.yml
index ffe2e8247..8a118a7f2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,7 +8,7 @@ language: cpp
 os: linux
 compiler: gcc
 
-osx_image: xcode9
+osx_image: xcode10.2
 
 cache:
     directories:
@@ -24,11 +24,16 @@ jobs:
       - name: RelWithDebInfoWError build + test (Linux, clang)
         env: TARGET=test
         compiler: clang
-      - name: RelWithDebInfoWError build + test (OS X)
+      - name: RelWithDebInfoWError build + test (OS X Mojave 10.14)
         env: TARGET=test
         os: osx
       - name: Debug build + test + coverage (Linux, gcc)
         env: TARGET=coverage
+      - name: RelWithDebInfoWError build + test (OS X High Sierra 10.13)
+        env: TARGET=test
+        os: osx
+        osx_image: xcode9.4
+        if: branch = "2.1"
       - name: LTO build + test (Linux, gcc)
         env: TARGET=test CMAKE_EXTRA_PARAMS=-DENABLE_LTO=ON
         if: branch = "2.1"
@@ -36,7 +41,7 @@ jobs:
         env: TARGET=test CMAKE_EXTRA_PARAMS=-DENABLE_LTO=ON
         if: branch = "2.1"
         compiler: clang
-      - name: LTO build + test (OS X)
+      - name: LTO build + test (OS X Mojave 10.14)
         os: osx
         env: TARGET=test CMAKE_EXTRA_PARAMS=-DENABLE_LTO=ON
         if: branch = "2.1"
diff --git a/cmake/luajit.cmake b/cmake/luajit.cmake
index ea4878a93..eca2bf36b 100644
--- a/cmake/luajit.cmake
+++ b/cmake/luajit.cmake
@@ -202,7 +202,7 @@ macro(luajit_build)
         endif()
         set(luajit_ldflags
             ${luajit_ldflags} -Wl,-macosx_version_min,${luajit_osx_deployment_target})
-    endif ()
+    endif()
     if (ENABLE_GCOV)
         set (luajit_ccdebug ${luajit_ccdebug} -fprofile-arcs -ftest-coverage)
     endif()
@@ -233,7 +233,12 @@ macro(luajit_build)
         CCOPT="${luajit_ccopt}"
         CCDEBUG="${luajit_ccdebug}"
         XCFLAGS="${luajit_xcflags}"
-        Q='')
+        Q=''
+        # We need to set MACOSX_DEPLOYMENT_TARGET to at least 10.6,
+        # because 10.4 SDK (which is set by default in LuaJIT's
+        # Makefile) is not longer included in Mac OS X Mojave 10.14.
+        # See also https://github.com/LuaJIT/LuaJIT/issues/484
+        MACOSX_DEPLOYMENT_TARGET="${luajit_osx_deployment_target}")
     if (${PROJECT_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
         add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/third_party/luajit/src/libluajit.a
             WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/third_party/luajit
-- 
2.17.1





More information about the Tarantool-patches mailing list