diff options
-rw-r--r-- | .travis.yml | 25 | ||||
-rw-r--r-- | CMakeLists.txt | 8 | ||||
-rw-r--r-- | src/CMakeLists.txt | 4 |
3 files changed, 33 insertions, 4 deletions
diff --git a/.travis.yml b/.travis.yml index ae2ff727..825ad6d7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,7 @@ compiler: - gcc os: - linux + - osx sudo: false cache: apt: true @@ -20,8 +21,18 @@ env: matrix: # Boost version to build against; an empty string means the # distribution's default. + - BOOST_VERSION="" - BOOST_VERSION="1.61.0" +# The configuration for macOS only works with Boost installed by +# homebrew, so exclude the other combinations. +matrix: + exclude: + - os: linux + env: BOOST_VERSION="" + - os: osx + env: BOOST_VERSION="1.61.0" + addons: coverity_scan: project: @@ -44,6 +55,12 @@ addons: - libboost-iostreams-dev - libboost-filesystem-dev - libboost-serialization-dev + homebrew: + packages: + - boost + - boost-python + - gmp + - mpfr before_install: - | @@ -66,8 +83,12 @@ install: fi before_script: - - cmake . -DUSE_PYTHON=ON -DBUILD_DEBUG=ON - - make + # On macOS, CMake finds the Boost.Python installed by homebrew only + # with the component name "python27". Also, precompiling system.hh + # does not work. + - if [ "$TRAVIS_OS_NAME" = osx -a -z "$BOOST_VERSION" ]; then EXTRA_CMAKE_ARGS="-DPRECOMPILE_SYSTEM_HH=OFF -DUSE_PYTHON27_COMPONENT=ON"; fi + - cmake . -DUSE_PYTHON=ON -DBUILD_DEBUG=ON $EXTRA_CMAKE_ARGS + - make VERBOSE=1 script: - ctest --output-on-failure diff --git a/CMakeLists.txt b/CMakeLists.txt index c2c27097..2116701e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,10 +27,12 @@ endif() ######################################################################## option(USE_PYTHON "Build support for the Python scripting bridge" OFF) +OPTION(USE_PYTHON27_COMPONENT "Use python27 as name of Boost.Python component" OFF) option(USE_DOXYGEN "Build reference documentation using Doxygen" OFF) option(DISABLE_ASSERTS "Build without any internal consistency checks" OFF) option(BUILD_DEBUG "Build support for runtime debugging" OFF) +option(PRECOMPILE_SYSTEM_HH "Precompile system.hh" ON) option(BUILD_LIBRARY "Build and install Ledger as a library" ON) option(BUILD_DOCS "Build and install documentation" OFF) @@ -67,7 +69,11 @@ if (USE_PYTHON) find_package(PythonLibs) if (PYTHONLIBS_FOUND) - set(BOOST_PYTHON python) + if(USE_PYTHON27_COMPONENT) + set(BOOST_PYTHON "python27") + else() + set(BOOST_PYTHON "python") + endif() set(HAVE_BOOST_PYTHON 1) include_directories(SYSTEM ${PYTHON_INCLUDE_DIRS}) else() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 06acecf2..9b39ea94 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -267,7 +267,9 @@ else() endmacro(ADD_PCH_RULE _header_filename _src_list _other_srcs) endif() -add_pch_rule(${PROJECT_BINARY_DIR}/system.hh LEDGER_SOURCES LEDGER_CLI_SOURCES) +if(PRECOMPILE_SYSTEM_HH) + add_pch_rule(${PROJECT_BINARY_DIR}/system.hh LEDGER_SOURCES LEDGER_CLI_SOURCES) +endif() include(GNUInstallDirs) |