diff options
author | Eric Hameleers <alien@slackware.com> | 2020-01-20 16:44:07 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2020-01-20 16:44:07 +0000 |
commit | 6280b47d038bdafd44a3c9df632aab53857b8c35 (patch) | |
tree | 976eaf1befab3c0e8ebedd7f6bbceb8259906668 | |
parent | d8726584ff7396a0d62e8a16aa586353f56c6b57 (diff) | |
download | asb-6280b47d038bdafd44a3c9df632aab53857b8c35.tar.gz asb-6280b47d038bdafd44a3c9df632aab53857b8c35.tar.xz |
Initial revision
-rw-r--r-- | supercollider/build/patches/supercollder-3.10.4_system_boost.patch | 357 |
1 files changed, 357 insertions, 0 deletions
diff --git a/supercollider/build/patches/supercollder-3.10.4_system_boost.patch b/supercollider/build/patches/supercollder-3.10.4_system_boost.patch new file mode 100644 index 00000000..779beef5 --- /dev/null +++ b/supercollider/build/patches/supercollder-3.10.4_system_boost.patch @@ -0,0 +1,357 @@ +Addresses https://github.com/supercollider/supercollider/issues/4743 + +From 21f5c7f765223a77621c9a46beb95d0ac00115a4 Mon Sep 17 00:00:00 2001 +From: David Runge <dave@sleepmap.de> +Date: Sat, 18 Jan 2020 20:32:21 +0100 +Subject: [PATCH] Backporting fixes for building with system boost/yaml-cpp + (#4185) for supercollider 3.10.4. + +--- + CMakeLists.txt | 33 ++++++++++-- + editors/sc-ide/CMakeLists.txt | 9 +--- + external_libraries/CMakeLists.txt | 65 ++++++++++++----------- + lang/CMakeLists.txt | 9 +--- + server/CMakeLists.txt | 6 +-- + server/plugins/CMakeLists.txt | 4 +- + server/scsynth/CMakeLists.txt | 7 +-- + server/supernova/CMakeLists.txt | 12 ++--- + testsuite/server/CMakeLists.txt | 2 +- + testsuite/server/supernova/CMakeLists.txt | 2 +- + 10 files changed, 75 insertions(+), 74 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5d5078a5a0..a6a7ac8305 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -258,12 +258,35 @@ if(SYSTEM_BOOST) + set(Boost_NO_BOOST_CMAKE ON) + set(Boost_USE_MULTITHREADED ON) + find_package(Boost 1.66.0 COMPONENTS thread system filesystem program_options regex test_exec_monitor) +-endif() +- +-if (Boost_FOUND) +- link_directories(${Boost_LIBRARY_DIRS}) ++ if (Boost_FOUND) ++ # we're specifically setting up the boost libraries here, so we can ++ # name them ++ add_library(boost_thread_lib SHARED IMPORTED) ++ set_property(TARGET boost_thread_lib PROPERTY IMPORTED_LOCATION ++ ${Boost_THREAD_LIBRARY}) ++ add_library(boost_system_lib SHARED IMPORTED) ++ set_property(TARGET boost_system_lib PROPERTY IMPORTED_LOCATION ++ ${Boost_SYSTEM_LIBRARY}) ++ add_library(boost_filesystem_lib SHARED IMPORTED) ++ set_property(TARGET boost_filesystem_lib PROPERTY IMPORTED_LOCATION ++ ${Boost_FILESYSTEM_LIBRARY}) ++ add_library(boost_program_options_lib SHARED IMPORTED) ++ set_property(TARGET boost_program_options_lib PROPERTY ++ IMPORTED_LOCATION ${Boost_PROGRAM_OPTIONS_LIBRARY}) ++ add_library(boost_regex_lib SHARED IMPORTED) ++ set_property(TARGET boost_regex_lib PROPERTY IMPORTED_LOCATION ++ ${Boost_REGEX_LIBRARY}) ++ add_library(boost_test_exec_monitor_lib SHARED IMPORTED) ++ set_property(TARGET boost_test_exec_monitor_lib PROPERTY ++ IMPORTED_LOCATION ${Boost_TEST_EXEC_MONITOR_LIBRARY}) ++ set(boost_include_dirs ${Boost_INCLUDE_DIRS}) ++ else() ++ set(SYSTEM_BOOST OFF) ++ set(boost_include_dirs ${CMAKE_SOURCE_DIR}/external_libraries/boost) ++ message(WARNING "Not using system boost because none was found.") ++ endif() + else() +- message(STATUS "building boost libraries manually") ++ set(boost_include_dirs ${CMAKE_SOURCE_DIR}/external_libraries/boost) + endif() + + if(SYSTEM_YAMLCPP) +diff --git a/editors/sc-ide/CMakeLists.txt b/editors/sc-ide/CMakeLists.txt +index 511a7dd517..6e17dac89e 100644 +--- a/editors/sc-ide/CMakeLists.txt ++++ b/editors/sc-ide/CMakeLists.txt +@@ -236,7 +236,6 @@ endif() + include_directories(${CMAKE_SOURCE_DIR}/include/common) + include_directories(${CMAKE_SOURCE_DIR}/common) + include_directories(${CMAKE_SOURCE_DIR}/include/plugin_interface) +-include_directories(${CMAKE_SOURCE_DIR}/external_libraries/boost) + include_directories(${YAMLCPP_INCLUDE_DIR}) + # For QtCollider headers: + include_directories(${CMAKE_SOURCE_DIR}) +@@ -316,12 +315,8 @@ target_link_libraries( SuperCollider + oscpack + ) + +-if(Boost_FOUND) +- target_link_libraries( SuperCollider ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ) +-else() +- # in-house-built boost system +- target_link_libraries( SuperCollider boost_system boost_filesystem ) +-endif() ++target_link_libraries( SuperCollider boost_system_lib boost_filesystem_lib) ++include_directories(${boost_include_dirs}) + + if(APPLE) + target_link_libraries( ${ide_name} "-framework CoreServices -framework Foundation") +diff --git a/external_libraries/CMakeLists.txt b/external_libraries/CMakeLists.txt +index 8266e67eea..e8a0cdebed 100644 +--- a/external_libraries/CMakeLists.txt ++++ b/external_libraries/CMakeLists.txt +@@ -2,7 +2,8 @@ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/nova-simd/vec.hpp) + message(FATAL_ERROR "It appears you haven't cloned this project's git submodules: please run `git submodule update --init --recursive` from the root level of the repository") + endif() + +-if(NOT Boost_FOUND) # we compile boost ourselves ++if(NOT SYSTEM_BOOST) # we compile boost ourselves ++ message(STATUS "Using bundled boost") + # boost thread + aux_source_directory(boost/libs/thread/src/ boost_thread_src ) + +@@ -14,63 +15,63 @@ if(NOT Boost_FOUND) # we compile boost ourselves + message(SEND_ERROR "we need to implement boost_thread") + endif() + +- aux_source_directory(boost/libs/system/src/ boost_system ) +- add_library(boost_system STATIC EXCLUDE_FROM_ALL ${boost_system}) +- target_include_directories(boost_system PUBLIC boost) ++ aux_source_directory(boost/libs/system/src/ boost_system_src ) ++ add_library(boost_system_lib STATIC EXCLUDE_FROM_ALL ${boost_system_src}) ++ target_include_directories(boost_system_lib PUBLIC boost) + +- aux_source_directory(boost/libs/program_options/src/ boost_program_options ) +- add_library(boost_program_options STATIC EXCLUDE_FROM_ALL ${boost_program_options}) +- target_include_directories(boost_program_options PUBLIC boost) ++ aux_source_directory(boost/libs/program_options/src/ boost_program_options_src ) ++ add_library(boost_program_options_lib STATIC EXCLUDE_FROM_ALL ${boost_program_options_src}) ++ target_include_directories(boost_program_options_lib PUBLIC boost) + + aux_source_directory(boost/libs/filesystem/src boost_filesystem_src) +- add_library(boost_filesystem STATIC EXCLUDE_FROM_ALL ${boost_filesystem_src}) +- target_include_directories(boost_filesystem PUBLIC boost) ++ add_library(boost_filesystem_lib STATIC EXCLUDE_FROM_ALL ${boost_filesystem_src}) ++ target_include_directories(boost_filesystem_lib PUBLIC boost) + + aux_source_directory(boost/libs/regex/src boost_regex_src) +- add_library(boost_regex STATIC EXCLUDE_FROM_ALL ${boost_regex_src}) +- target_include_directories(boost_regex PUBLIC boost) ++ add_library(boost_regex_lib STATIC EXCLUDE_FROM_ALL ${boost_regex_src}) ++ target_include_directories(boost_regex_lib PUBLIC boost) + + if(LTO) +- set_property(TARGET boost_program_options boost_system boost_filesystem ++ set_property(TARGET boost_program_options_lib boost_system_lib boost_filesystem_lib + APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report") + +- set_property(TARGET boost_program_options boost_system boost_filesystem ++ set_property(TARGET boost_program_options_lib boost_system_lib boost_filesystem_lib + APPEND PROPERTY LINK_FLAGS "-flto -flto-report") + endif() + +- add_library(boost_thread STATIC EXCLUDE_FROM_ALL ${boost_thread_src} ${boost_thread_platform}) +- target_link_libraries(boost_thread boost_system) ++ add_library(boost_thread_lib STATIC EXCLUDE_FROM_ALL ${boost_thread_src} ${boost_thread_platform}) ++ target_link_libraries(boost_thread_lib boost_system_lib) + # target_compile_definitions(boost_thread PUBLIC BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS) +- target_include_directories(boost_thread PUBLIC boost) +- target_compile_definitions(boost_thread PUBLIC BOOST_THREAD_USE_LIB) # for win32 ++ target_include_directories(boost_thread_lib PUBLIC boost) ++ target_compile_definitions(boost_thread_lib PUBLIC BOOST_THREAD_USE_LIB) # for win32 + + if(PTHREADS_FOUND) +- target_include_directories(boost_thread PUBLIC ${PTHREADS_INCLUDE_DIR}) ++ target_include_directories(boost_thread_lib PUBLIC ${PTHREADS_INCLUDE_DIR}) + endif() + if(WIN32) +- target_compile_definitions( boost_thread PRIVATE BOOST_THREAD_BUILD_LIB) ++ target_compile_definitions( boost_thread_lib PRIVATE BOOST_THREAD_BUILD_LIB) + endif() + + + if(CMAKE_SYSTEM_NAME MATCHES "Linux") +- target_compile_options(boost_thread PRIVATE -fPIC) +- target_link_libraries(boost_thread rt) ++ target_compile_options(boost_thread_lib PRIVATE -fPIC) ++ target_link_libraries(boost_thread_lib rt) + endif() + + if(LTO) +- set_property(TARGET boost_thread ++ set_property(TARGET boost_thread_lib + APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report") + +- set_property(TARGET boost_thread ++ set_property(TARGET boost_thread_lib + APPEND PROPERTY LINK_FLAGS "-flto -flto-report") + endif() + + set_property( TARGET +- boost_regex +- boost_thread +- boost_program_options +- boost_system +- boost_filesystem ++ boost_regex_lib ++ boost_thread_lib ++ boost_program_options_lib ++ boost_system_lib ++ boost_filesystem_lib + PROPERTY FOLDER 3rdparty + ) + +@@ -84,7 +85,7 @@ set_property(TARGET tlsf PROPERTY POSITION_INDEPENDENT_CODE TRUE) + + #oscpack + add_library(oscpack STATIC EXCLUDE_FROM_ALL "oscpack_build.cpp") +-target_include_directories(oscpack PRIVATE boost) ++target_include_directories(oscpack PRIVATE ${boost_include_dirs}) + target_include_directories(oscpack INTERFACE oscpack_1_1_0 ) + + +@@ -96,15 +97,15 @@ if(LTO) + APPEND PROPERTY LINK_FLAGS "-flto -flto-report") + endif() + +-if(NOT YAMLCPP_FOUND) +- message(STATUS "using bundled libyaml-cpp") ++if(NOT SYSTEM_YAMLCPP) ++ message(STATUS "Using bundled yaml-cpp") + + # yaml-cpp + aux_source_directory(${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp/src yaml_src) + CREATE_FINAL_FILE(${CMAKE_CURRENT_BINARY_DIR}/libyamlcpp.cpp ${yaml_src}) + + add_library(yaml STATIC EXCLUDE_FROM_ALL ${CMAKE_CURRENT_BINARY_DIR}/libyamlcpp.cpp) +- target_include_directories(yaml PUBLIC ${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp/include boost) ++ target_include_directories(yaml PUBLIC ${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp/include ${boost_include_dirs}) + set_property( TARGET yaml PROPERTY FOLDER 3rdparty ) + set(YAMLCPP_LIBRARY yaml) + set(YAMLCPP_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp/include) +diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt +index 60633afac6..aacc67ee61 100644 +--- a/lang/CMakeLists.txt ++++ b/lang/CMakeLists.txt +@@ -206,13 +206,8 @@ if(SC_HIDAPI) + endif() + endif() + +-if (Boost_FOUND) +- target_include_directories(libsclang PUBLIC ${Boost_INCLUDE_DIRS}) +- target_link_libraries(libsclang ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_REGEX_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}) +-else() +- target_include_directories(libsclang PUBLIC ${CMAKE_SOURCE_DIR}/external_libraries/boost) +- target_link_libraries(libsclang boost_regex boost_thread boost_system boost_filesystem) +-endif() ++target_link_libraries(libsclang boost_thread_lib boost_system_lib boost_regex_lib boost_filesystem_lib) ++target_include_directories(libsclang PUBLIC ${boost_include_dirs}) + + + if (SCLANG_SERVER) +diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt +index 2622b4e36f..bf8dc863d2 100644 +--- a/server/CMakeLists.txt ++++ b/server/CMakeLists.txt +@@ -12,11 +12,7 @@ include_directories(${CMAKE_SOURCE_DIR}/external_libraries + ${CMAKE_SOURCE_DIR}/external_libraries/nova-tt + ) + +-if (Boost_FOUND) +- include_directories(${Boost_INCLUDE_DIRS}) +-else() +- include_directories(${CMAKE_SOURCE_DIR}/external_libraries/boost) +-endif() ++include_directories(${boost_include_dirs}) + + # here we choose who provides us with the FFT lib + if (APPLE) +diff --git a/server/plugins/CMakeLists.txt b/server/plugins/CMakeLists.txt +index 8287f7be9b..0bdd2f60d9 100644 +--- a/server/plugins/CMakeLists.txt ++++ b/server/plugins/CMakeLists.txt +@@ -199,7 +199,7 @@ if (SUPERNOVA) + + if(SNDFILE_FOUND) + target_include_directories(DiskIO_UGens_supernova PUBLIC ${SNDFILE_INCLUDE_DIR}) +- target_link_libraries(DiskIO_UGens_supernova ${SNDFILE_LIBRARIES} ${PTHREADS_LIBRARY} ${MATH_LIBRARY} ${Boost_THREAD_LIBRARY}) ++ target_link_libraries(DiskIO_UGens_supernova ${SNDFILE_LIBRARIES} ${PTHREADS_LIBRARY} ${MATH_LIBRARY} boost_thread_lib) + list(APPEND supernova_plugins DiskIO_UGens_supernova) + else() + message(SEND_ERROR "Cannot find libsndfile") +@@ -217,7 +217,7 @@ endforeach() + + if(NOT NO_X11) + foreach(ugen ${uiugens}) +- target_link_libraries(${ugen} ${Boost_THREAD_LIBRARY}) ++ target_link_libraries(${ugen} boost_thread_lib) + endforeach() + endif() + +diff --git a/server/scsynth/CMakeLists.txt b/server/scsynth/CMakeLists.txt +index 17c09f262b..3a71458419 100644 +--- a/server/scsynth/CMakeLists.txt ++++ b/server/scsynth/CMakeLists.txt +@@ -176,11 +176,8 @@ elseif(AUDIOAPI STREQUAL coreaudio) + target_link_libraries(libscsynth "-framework CoreAudio") + endif() + +-if (Boost_FOUND) +- target_link_libraries(libscsynth ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ) +-else() +- target_link_libraries(libscsynth boost_system boost_filesystem) +-endif() ++target_link_libraries(libscsynth boost_system_lib boost_filesystem_lib) ++target_include_directories(libscsynth PUBLIC ${boost_include_dirs}) + + if (WIN32) + target_link_libraries(libscsynth wsock32 ws2_32 winmm) +diff --git a/server/supernova/CMakeLists.txt b/server/supernova/CMakeLists.txt +index cfe1288803..2b80cb545c 100644 +--- a/server/supernova/CMakeLists.txt ++++ b/server/supernova/CMakeLists.txt +@@ -70,7 +70,7 @@ if(NOT WIN32) + PROPERTY OUTPUT_NAME supernova) + endif() + +-target_link_libraries(libsupernova oscpack tlsf ${PTHREADS_LIBRARIES} boost_thread) ++target_link_libraries(libsupernova oscpack tlsf ${PTHREADS_LIBRARIES} boost_thread_lib) + + target_compile_definitions(libsupernova PUBLIC SUPERNOVA) + target_include_directories(libsupernova PUBLIC +@@ -146,14 +146,8 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux") + target_link_libraries(libsupernova rt) + endif() + +- +-if(Boost_FOUND) +- target_link_libraries(libsupernova ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY}) +- target_include_directories(libsupernova PUBLIC ${Boost_INCLUDE_DIRS}) +-else() +- target_include_directories(libsupernova PUBLIC ${CMAKE_SOURCE_DIR}/external_libraries/boost) +- target_link_libraries(libsupernova boost_system boost_filesystem boost_program_options) +-endif() ++target_link_libraries(libsupernova boost_system_lib boost_filesystem_lib boost_program_options_lib) ++target_include_directories(libsupernova PUBLIC ${boost_include_dirs}) + + if(CMAKE_COMPILER_IS_GNUCXX) + if( ${_gcc_version} VERSION_GREATER 5 ) +diff --git a/testsuite/server/CMakeLists.txt b/testsuite/server/CMakeLists.txt +index 38ce4b4863..68ba8bcfc6 100644 +--- a/testsuite/server/CMakeLists.txt ++++ b/testsuite/server/CMakeLists.txt +@@ -5,4 +5,4 @@ if (SUPERNOVA) + endif() + + add_library(boost_test STATIC boost_test.cpp) +-target_include_directories(boost_test PUBLIC ${CMAKE_SOURCE_DIR}/external_libraries/boost) ++target_include_directories(boost_test PUBLIC ${boost_include_dirs}) +diff --git a/testsuite/server/supernova/CMakeLists.txt b/testsuite/server/supernova/CMakeLists.txt +index e8a9ccf5fa..4022da847d 100644 +--- a/testsuite/server/supernova/CMakeLists.txt ++++ b/testsuite/server/supernova/CMakeLists.txt +@@ -34,7 +34,7 @@ foreach(test ${simple_tests}) + string(REPLACE .cpp "" test_name ${test} ) + add_executable(${test_name} ${test}) + +- target_link_libraries(${test_name} libsupernova boost_test boost_thread) ++ target_link_libraries(${test_name} libsupernova boost_test boost_thread_lib) + + add_test(${test_name}_run ${EXECUTABLE_OUTPUT_PATH}/${test_name}) + endforeach(test) + |