summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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
commit6280b47d038bdafd44a3c9df632aab53857b8c35 (patch)
tree976eaf1befab3c0e8ebedd7f6bbceb8259906668
parentd8726584ff7396a0d62e8a16aa586353f56c6b57 (diff)
downloadasb-6280b47d038bdafd44a3c9df632aab53857b8c35.tar.gz
asb-6280b47d038bdafd44a3c9df632aab53857b8c35.tar.xz
Initial revision
-rw-r--r--supercollider/build/patches/supercollder-3.10.4_system_boost.patch357
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)
+