From a3fc603dc71a2caf44f9ed8a654946cc67efd323 Mon Sep 17 00:00:00 2001 From: redtide Date: Mon, 23 Dec 2019 05:13:29 -0800 Subject: [PATCH] macOS build support --- .travis/after_success.sh | 14 +++++--------- .travis/script.sh | 12 +++++++----- CMakeLists.txt | 6 ++++++ clients/CMakeLists.txt | 6 ++++++ src/CMakeLists.txt | 2 +- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/.travis/after_success.sh b/.travis/after_success.sh index 8ce5bdd7..ee85f9a2 100755 --- a/.travis/after_success.sh +++ b/.travis/after_success.sh @@ -2,12 +2,8 @@ set -ex -if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then - cd build - make install - tar -zcvf "${INSTALL_DIR}.tar.gz" ${INSTALL_DIR} - mv "${INSTALL_DIR}.tar.gz" ${TRAVIS_BUILD_DIR} - cd .. -elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then - echo "TODO: xcodebuild make install or dmg image?" -fi +cd build +make install +tar -zcvf "${INSTALL_DIR}.tar.gz" ${INSTALL_DIR} +mv "${INSTALL_DIR}.tar.gz" ${TRAVIS_BUILD_DIR} +cd .. diff --git a/.travis/script.sh b/.travis/script.sh index c6064a09..0d1d6897 100755 --- a/.travis/script.sh +++ b/.travis/script.sh @@ -2,14 +2,16 @@ set -ex -if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then - mkdir -p build/${INSTALL_DIR} && cd build +mkdir -p build/${INSTALL_DIR} && cd build +if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then # FIXME: lto error in build when enabled /usr/local/bin/cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=OFF -DCMAKE_INSTALL_PREFIX:PATH=${PWD}/${INSTALL_DIR} .. make -j$(nproc) elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then - mkdir build && cd build - cmake -D SFIZZ_JACK=OFF -G Xcode .. # FIXME: client build - xcodebuild -project sfizz.xcodeproj -alltargets -configuration Debug build + /usr/local/bin/cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=${PWD}/${INSTALL_DIR} .. + make -j$(sysctl -n hw.ncpu) + +# Xcode not currently supported, see https://gitlab.kitware.com/cmake/cmake/issues/18088 +# xcodebuild -project sfizz.xcodeproj -alltargets -configuration Debug build fi diff --git a/CMakeLists.txt b/CMakeLists.txt index dbe4223c..c5cefa3c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,12 @@ set (BUILD_TESTING OFF CACHE BOOL "Disable Abseil's tests [default: OFF]") set (LV2PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/lv2" CACHE STRING "Install destination for LV2 bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/lv2]") +# On macOS add the needed directories for both library and jack client +if (APPLE) + include_directories (SYSTEM /usr/local/opt/libsndfile/include) + link_directories (/usr/local/opt/libsndfile/lib) +endif() + option (ENABLE_LTO "Enable Link Time Optimization [default: ON]" ON) option (SFIZZ_JACK "Enable JACK stand-alone build [default: ON]" ON) option (SFIZZ_LV2 "Enable LV2 plug-in build [default: ON]" ON) diff --git a/clients/CMakeLists.txt b/clients/CMakeLists.txt index 8297801e..f62098d7 100644 --- a/clients/CMakeLists.txt +++ b/clients/CMakeLists.txt @@ -1,4 +1,10 @@ project (sfizz) + +if (APPLE) + include_directories (SYSTEM /usr/local/opt/jack/include) + link_directories (/usr/local/opt/jack/lib) +endif() + add_executable (sfizz_jack jack_client.cpp) target_link_libraries (sfizz_jack sfizz::sfizz jack absl::flags_parse) sfizz_enable_lto_if_needed (sfizz_jack) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 39f2555f..b61800fa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -30,7 +30,7 @@ find_package (Threads REQUIRED) target_link_libraries (sfizz PUBLIC absl::strings) target_link_libraries (sfizz PRIVATE sndfile absl::flat_hash_map Threads::Threads) -if (UNIX) +if (UNIX AND NOT APPLE) target_link_libraries (sfizz PUBLIC atomic) endif()