[SCM] supercollider/master: cmake: use system boost if available Backported from supercollider git master to 3.5 Backported these commits: 452e9881cf5baca2b, 5ea30c698f10ec, 9913b2d92f

danstowell-guest at users.alioth.debian.org danstowell-guest at users.alioth.debian.org
Sun May 13 17:30:23 UTC 2012


The following commit has been merged in the master branch:
commit 944db0457dea1246477cf9c69f5a539a4f2a533a
Author: Dan Stowell <danstowell at users.sourceforge.net>
Date:   Sat May 12 18:34:24 2012 +0100

    cmake: use system boost if available Backported from supercollider git master to 3.5 Backported these commits: 452e9881cf5baca2b, 5ea30c698f10ec, 9913b2d92f

diff --git a/debian/patches/series b/debian/patches/series
index fa04c7b..06a6e6a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 install_readme_extensions.patch
 fix_scvim.sc_permissions.patch
+use_system_boost.patch
diff --git a/debian/patches/use_system_boost.patch b/debian/patches/use_system_boost.patch
new file mode 100644
index 0000000..0a344ae
--- /dev/null
+++ b/debian/patches/use_system_boost.patch
@@ -0,0 +1,361 @@
+# use_system_boost.patch - use system boost if available
+# Backported from supercollider git master to 3.5
+# Backported these commits: 452e9881cf5baca2b, 5ea30c698f10ec, 9913b2d92f
+
+Index: supercollider/CMakeLists.txt
+===================================================================
+--- supercollider.orig/CMakeLists.txt	2012-05-12 17:57:29.208102870 +0100
++++ supercollider/CMakeLists.txt	2012-05-12 18:27:14.564151260 +0100
+@@ -125,32 +125,11 @@
+         SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_RELEASE} /MTd")
+         SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_DEBUG} /MT")
+     endif()
+-endif()
+-
+-
+-#############################################
+-# some default libraries
+-
+-find_package(Pthreads)
+ 
+-if (NOT PTHREADS_FOUND)
+-    message(SEND_ERROR "cannot find libpthreads")
++    # correctly link the static Boost Thread library:
++    add_definitions(-DBOOST_THREAD_USE_LIB)
+ endif()
+-include_directories(${PTHREADS_INCLUDE_DIR})
+ 
+-if (MSVC OR MINGW)
+-    set(MATH_LIBRARY "")
+-else()
+-    find_library(MATH_LIBRARY m)
+-endif()
+-
+-if(CURL)
+-	find_package(CURL)
+-	if(CURL_FOUND)
+-		add_definitions("-DHAVE_LIBCURL")
+-		include_directories(${CURL_INCLUDE_DIRS})
+-	endif()
+-endif()
+ 
+ #############################################
+ # Options
+@@ -215,6 +194,43 @@
+ option(SC_OX "Try to compile with support for C++0x (experimental, mainly related to supernova)" OFF)
+ 
+ #############################################
++# some default libraries
++
++find_package(Pthreads)
++
++if (NOT PTHREADS_FOUND)
++    message(SEND_ERROR "cannot find libpthreads")
++endif()
++include_directories(${PTHREADS_INCLUDE_DIR})
++
++if (MSVC OR MINGW)
++    set(MATH_LIBRARY "")
++else()
++    find_library(MATH_LIBRARY m)
++endif()
++
++if(CURL)
++	find_package(CURL)
++	if(CURL_FOUND)
++		add_definitions("-DHAVE_LIBCURL")
++		include_directories(${CURL_INCLUDE_DIRS})
++	endif()
++endif()
++
++set(Boost_USE_MULTITHREADED      ON)
++find_package( Boost 1.48.0 COMPONENTS thread system filesystem program_options regex )
++
++if (SC_OX)
++	set(Boost_FOUND OFF) # boost 1.48 does not like c++11
++endif()
++
++if (NOT Boost_FOUND)
++	message("building boost libraries manually")
++endif()
++
++
++
++#############################################
+ # some preprocessor flags
+ if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
+ 	if (SSE)
+Index: supercollider/external_libraries/CMakeLists.txt
+===================================================================
+--- supercollider.orig/external_libraries/CMakeLists.txt	2012-05-12 17:57:29.224102867 +0100
++++ supercollider/external_libraries/CMakeLists.txt	2012-05-12 18:27:14.564151260 +0100
+@@ -1,82 +1,71 @@
+ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/nova-simd/vec.hpp)
+-    message(FATAL_ERROR "nova-simd submodule is missing: please run `git submodule init && git submodule update' from the toplevel of your git working tree")
++	message(FATAL_ERROR "nova-simd submodule is missing: please run `git submodule init && git submodule update' from the toplevel of your git working tree")
+ endif()
+ 
+-# boost thread
+-aux_source_directory(boost/libs/thread/src/ boost_thread_src )
+-
+-include_directories(boost)
++if(NOT Boost_FOUND) # we compile boost ourselves
++	# boost thread
++	aux_source_directory(boost/libs/thread/src/ boost_thread_src )
++
++	include_directories(boost)
++
++	if(WIN32)
++		aux_source_directory(boost/libs/thread/src/win32/ boost_thread_platform )
++		add_definitions(-DBOOST_THREAD_BUILD_LIB)
++	elseif(PTHREADS_FOUND)
++		aux_source_directory(boost/libs/thread/src/pthread/ boost_thread_platform )
++	else()
++		message(SEND_ERROR "we need to implement boost_thread")
++	endif()
+ 
+-if(WIN32)
+-	aux_source_directory(boost/libs/thread/src/win32/ boost_thread_platform )
+-	add_definitions(-DBOOST_THREAD_BUILD_DLL)
+-elseif(PTHREADS_FOUND)
+-	aux_source_directory(boost/libs/thread/src/pthread/ boost_thread_platform )
+-else()
+-	message(SEND_ERROR "we need to implement boost_thread")
+-endif()
++	include_directories(${PTHREADS_INCLUDE_DIR})
+ 
+-include_directories(${PTHREADS_INCLUDE_DIR})
++	if (SUPERNOVA)
++		aux_source_directory(boost/libs/program_options/src/ boost_program_options )
++		add_library(boost_program_options STATIC ${boost_program_options})
+ 
+-if (SUPERNOVA)
+-	aux_source_directory(boost/libs/program_options/src/ boost_program_options )
+-	add_library(boost_program_options STATIC ${boost_program_options})
++		aux_source_directory(boost/libs/system/src/ boost_system )
++		add_library(boost_system STATIC ${boost_system})
+ 
+-	aux_source_directory(boost/libs/system/src/ boost_system )
+-	add_library(boost_system STATIC ${boost_system})
++		aux_source_directory(boost/libs/filesystem/v3/src boost_filesystem_v3)
++		add_library(boost_filesystem STATIC ${boost_filesystem_v2} ${boost_filesystem_v3})
+ 
+-	aux_source_directory(boost/libs/filesystem/v3/src boost_filesystem_v3)
+-	add_library(boost_filesystem STATIC ${boost_filesystem_v2} ${boost_filesystem_v3})
++		if(LTO)
++			set_property(TARGET boost_program_options boost_system boost_filesystem
++						 APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report")
+ 
++			set_property(TARGET boost_program_options boost_system boost_filesystem
++						 APPEND PROPERTY LINK_FLAGS "-flto -flto-report")
++		endif()
++	endif()
+ 
+-	#oscpack
+-	add_library(oscpack STATIC "oscpack_build.cpp")
+-
+-	#tlsf
+-	add_library(tlsf STATIC "TLSF-2.4.6/src/tlsf.c")
+-	set_target_properties(tlsf
+-						PROPERTIES COMPILE_DEFINITIONS TLSF_STATISTIC=1)
++	if (${DSO_VISIBILITY})
++		remove_definitions(-fvisibility=hidden)
++	endif()
+ 
++	add_library(boost_thread STATIC ${boost_thread_src} ${boost_thread_platform})
+ 
+ 	if(LTO)
+-		set_property(TARGET boost_program_options boost_system boost_filesystem oscpack tlsf
++		set_property(TARGET boost_thread
+ 					APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report")
+ 
+-		set_property(TARGET boost_program_options boost_system boost_filesystem oscpack tlsf
++		set_property(TARGET boost_thread
+ 					APPEND PROPERTY LINK_FLAGS "-flto -flto-report")
+ 	endif()
+ endif()
+ 
+-if (${DSO_VISIBILITY})
+-	remove_definitions(-fvisibility=hidden)
+-endif()
+-
+-add_library(boost_thread STATIC ${boost_thread_src} ${boost_thread_platform})
+-
+-add_library(supercollider_boost_thread SHARED ${boost_thread_src} ${boost_thread_platform})
+-target_link_libraries(supercollider_boost_thread ${PTHREADS_LIBRARY})
+-
+-if(LTO)
+-	set_property(TARGET boost_thread supercollider_boost_thread
+-				APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report")
+-
+-	set_property(TARGET boost_thread supercollider_boost_thread
+-				APPEND PROPERTY LINK_FLAGS "-flto -flto-report")
+-endif()
++if (SUPERNOVA)
++	#oscpack
++	add_library(oscpack STATIC "oscpack_build.cpp")
+ 
++	#tlsf
++	add_library(tlsf STATIC "TLSF-2.4.6/src/tlsf.c")
++	set_target_properties(tlsf
++						 PROPERTIES COMPILE_DEFINITIONS TLSF_STATISTIC=1)
++	if(LTO)
++		set_property(TARGET oscpack tlsf
++					 APPEND PROPERTY COMPILE_FLAGS "-flto -flto-report")
+ 
+-if(APPLE)
+-	include (${CMAKE_SOURCE_DIR}/cmake_modules/MacAppFolder.cmake)
+-	install(TARGETS supercollider_boost_thread
+-			LIBRARY DESTINATION "${scappauxresourcesdir}/../MacOS"
+-			PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+-elseif(WIN32)
+-	install(TARGETS supercollider_boost_thread
+-			DESTINATION "SuperCollider"
+-			PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+-else()
+-	install(TARGETS supercollider_boost_thread
+-			LIBRARY DESTINATION "lib"
+-			RUNTIME DESTINATION "bin"
+-			PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
++		set_property(TARGET oscpack tlsf
++					 APPEND PROPERTY LINK_FLAGS "-flto -flto-report")
++	endif()
+ endif()
+Index: supercollider/lang/CMakeLists.txt
+===================================================================
+--- supercollider.orig/lang/CMakeLists.txt	2012-05-12 17:57:29.260102868 +0100
++++ supercollider/lang/CMakeLists.txt	2012-05-12 18:29:50.236155477 +0100
+@@ -3,12 +3,17 @@
+                     ${CMAKE_SOURCE_DIR}/include/plugin_interface
+                     ${CMAKE_SOURCE_DIR}/include/server
+                     ${CMAKE_SOURCE_DIR}/external_libraries/boost_lockfree
+-                    ${CMAKE_SOURCE_DIR}/external_libraries/boost
+                     ${CMAKE_SOURCE_DIR}/external_libraries/threadpool
+                     ${CMAKE_SOURCE_DIR}/external_libraries/yaml-cpp-0.3.0/include
+                     ${CMAKE_SOURCE_DIR}/external_libraries/TLSF-2.4.6/src
+                     LangSource/Bison)
+ 
++if (Boost_FOUND)
++    include_directories(${Boost_INCLUDE_DIRS})
++else()
++    include_directories(${CMAKE_SOURCE_DIR}/external_libraries/boost)
++endif()
++
+ if(APPLE)
+ 	include_directories("LangPrimSource/${HID_UTIL_DIR}")
+ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
+@@ -73,10 +78,12 @@
+ 	${CMAKE_SOURCE_DIR}/common/sc_popen.cpp
+ )
+ 
+-file(GLOB boost_system_sources ../external_libraries/boost/libs/system/src/*cpp)
+-file(GLOB boost_fs_sources ../external_libraries/boost/libs/filesystem/v3/src/*cpp)
+-file(GLOB boost_regex_sources ../external_libraries/boost/libs/regex/src/*cpp)
+-list(APPEND sclang_sources ${boost_fs_sources} ${boost_system_sources} ${boost_regex_sources})
++if (NOT Boost_FOUND)
++	file(GLOB boost_system_sources ../external_libraries/boost/libs/system/src/*cpp)
++	file(GLOB boost_fs_sources ../external_libraries/boost/libs/filesystem/v3/src/*cpp)
++	file(GLOB boost_regex_sources ../external_libraries/boost/libs/regex/src/*cpp)
++	list(APPEND sclang_sources ${boost_fs_sources} ${boost_system_sources} ${boost_regex_sources})
++endif()
+ 
+ file(GLOB yaml_sources ../external_libraries/yaml-cpp-0.3.0/src/*cpp)
+ list(APPEND sclang_sources ${yaml_sources})
+@@ -186,6 +193,10 @@
+ 	endif()
+ endif()
+ 
++if (Boost_FOUND)
++	target_link_libraries(libsclang ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_REGEX_LIBRARY} ${Boost_FILESYSTEM_LIBRARY})
++endif()
++
+ if (SCLANG_SERVER)
+ 	target_link_libraries(libsclang libscsynth)
+ else()
+@@ -253,14 +264,18 @@
+ 	target_link_libraries(libsclang rt)
+ endif()
+ 
+-target_link_libraries(libsclang ${PTHREADS_LIBRARY} supercollider_boost_thread)
++target_link_libraries(libsclang ${PTHREADS_LIBRARY})
+ 
+ if(SC_QT)
+ 	target_link_libraries(libsclang ${QT_COLLIDER_LIBS})
+ endif()
+ 
+ add_executable(sclang LangSource/cmdLineFuncs.cpp)
+-target_link_libraries(sclang libsclang boost_thread)
++if (${Boost_FOUND})
++	target_link_libraries(sclang libsclang ${Boost_THREAD_LIBRARY})
++else()
++	target_link_libraries(sclang libsclang boost_thread)
++endif()
+ 
+ set_property(TARGET sclang
+ 	APPEND
+Index: supercollider/server/CMakeLists.txt
+===================================================================
+--- supercollider.orig/server/CMakeLists.txt	2012-05-12 17:57:29.288102870 +0100
++++ supercollider/server/CMakeLists.txt	2012-05-12 18:27:14.564151260 +0100
+@@ -3,17 +3,15 @@
+ 	add_definitions("-DSC_PLUGIN_EXT=\".so\"")
+ endif()
+ 
+-
+ include_directories(${CMAKE_SOURCE_DIR}/external_libraries
+-                    ${CMAKE_SOURCE_DIR}/external_libraries/boost
+-                    ${CMAKE_SOURCE_DIR}/external_libraries/boost_lockfree
+-                    ${CMAKE_SOURCE_DIR}/external_libraries/nova-simd
+-                    ${CMAKE_SOURCE_DIR}/external_libraries/nova-tt
+-                    )
++					${CMAKE_SOURCE_DIR}/external_libraries/boost_lockfree
++					${CMAKE_SOURCE_DIR}/external_libraries/nova-simd
++					${CMAKE_SOURCE_DIR}/external_libraries/nova-tt
++					)
+ 
+ add_subdirectory(plugins)
+ add_subdirectory(scsynth)
+ 
+ if (SUPERNOVA)
+-  add_subdirectory(supernova)
++	add_subdirectory(supernova)
+ endif()
+Index: supercollider/server/supernova/CMakeLists.txt
+===================================================================
+--- supercollider.orig/server/supernova/CMakeLists.txt	2012-05-12 17:57:29.316102874 +0100
++++ supercollider/server/supernova/CMakeLists.txt	2012-05-12 18:27:14.564151260 +0100
+@@ -31,11 +31,17 @@
+ 
+ 
+ include_directories(${CMAKE_SOURCE_DIR}/external_libraries/boost_endian
+-                    ${CMAKE_SOURCE_DIR}/external_libraries/boost_move
+                     ${CMAKE_SOURCE_DIR}/external_libraries/oscpack
+                     ${CMAKE_SOURCE_DIR}/external_libraries/TLSF-2.4.6/src
+                     )
+ 
++if (Boost_FOUND)
++    include_directories(${Boost_INCLUDE_DIRS})
++else()
++    include_directories(${CMAKE_SOURCE_DIR}/external_libraries/boost)
++endif()
++
++
+ if(APPLE)
+     include_directories(${CMAKE_SOURCE_DIR}/external_libraries/libsndfile)
+ endif()
+@@ -124,7 +130,14 @@
+     target_link_libraries(libsupernova rt)
+ endif()
+ 
+-target_link_libraries(libsupernova oscpack tlsf boost_thread boost_system boost_filesystem boost_program_options ${PTHREADS_LIBRARIES})
++target_link_libraries(libsupernova oscpack tlsf ${PTHREADS_LIBRARIES})
++
++if (Boost_FOUND)
++    target_link_libraries(libsupernova ${Boost_THREAD_LIBRARY}  ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY})
++else()
++    target_link_libraries(libsupernova boost_thread boost_system boost_filesystem boost_program_options)
++endif()
++
+ target_link_libraries(supernova libsupernova)
+ 
+ if(APPLE)

-- 
supercollider packaging



More information about the pkg-multimedia-commits mailing list