[tarantool-patches] [PATCH v2] travis-ci: fixed Mojave mac build
Alexander V. Tikhonov
avtikhon at tarantool.org
Tue Mar 12 17:40:43 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 | 15 ++++++++++++---
3 files changed, 23 insertions(+), 13 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..e84fb21aa 100644
--- a/cmake/luajit.cmake
+++ b/cmake/luajit.cmake
@@ -196,10 +196,19 @@ macro(luajit_build)
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)
+ execute_process(COMMAND sw_vers -productVersion
+ OUTPUT_VARIABLE PRODUCT_VERSION)
+ message(STATUS "PRODUCT_VERSION=${PRODUCT_VERSION}")
+ if (${PRODUCT_VERSION} VERSION_LESS 10.14)
+ set (luajit_osx_deployment_target 10.6)
+ else ()
+ set (luajit_osx_deployment_target 10.14)
+ endif ()
else()
set (luajit_osx_deployment_target ${CMAKE_OSX_DEPLOYMENT_TARGET})
endif()
+ set(macosx_deployment_target_env MACOSX_DEPLOYMENT_TARGET=${luajit_osx_deployment_target})
+ message(STATUS "${macosx_deployment_target_env}")
set(luajit_ldflags
${luajit_ldflags} -Wl,-macosx_version_min,${luajit_osx_deployment_target})
endif ()
@@ -238,7 +247,7 @@ macro(luajit_build)
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/third_party/luajit/src/libluajit.a
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/third_party/luajit
COMMAND $(MAKE) ${luajit_buildoptions} clean
- COMMAND $(MAKE) -C src ${luajit_buildoptions} jit/vmdef.lua libluajit.a
+ COMMAND ${macosx_deployment_target_env} $(MAKE) -C src ${luajit_buildoptions} jit/vmdef.lua libluajit.a
DEPENDS ${CMAKE_SOURCE_DIR}/CMakeCache.txt
)
else()
@@ -249,7 +258,7 @@ macro(luajit_build)
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/third_party/luajit
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/third_party/luajit ${PROJECT_BINARY_DIR}/third_party/luajit
COMMAND $(MAKE) ${luajit_buildoptions} clean
- COMMAND $(MAKE) -C src ${luajit_buildoptions} jit/vmdef.lua libluajit.a
+ COMMAND ${macosx_deployment_target_env} $(MAKE) -C src ${luajit_buildoptions} jit/vmdef.lua libluajit.a
DEPENDS ${PROJECT_BINARY_DIR}/CMakeCache.txt ${PROJECT_BINARY_DIR}/third_party/luajit
)
endif()
--
2.17.1
More information about the Tarantool-patches
mailing list