summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2024-01-31 00:37:59 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2024-01-31 12:15:28 +0100
commitc153dde590d03a7cae249141569578a253399bfb (patch)
tree0b457b8e2cff1b4ec266239835094db86e6a5615 /media-sound/supercollider
parentmedia-sound/supercollider: Fix build with GCC-13 (diff)
downloadgentoo-c153dde590d03a7cae249141569578a253399bfb.tar.gz
gentoo-c153dde590d03a7cae249141569578a253399bfb.tar.bz2
gentoo-c153dde590d03a7cae249141569578a253399bfb.zip
media-sound/supercollider: Fix ccache automagic
See also: https://github.com/supercollider/supercollider/pull/6209 Closes: https://bugs.gentoo.org/922095 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'media-sound/supercollider')
-rw-r--r--media-sound/supercollider/files/supercollider-3.13.0-no-ccache.patch169
-rw-r--r--media-sound/supercollider/supercollider-3.13.0.ebuild2
2 files changed, 171 insertions, 0 deletions
diff --git a/media-sound/supercollider/files/supercollider-3.13.0-no-ccache.patch b/media-sound/supercollider/files/supercollider-3.13.0-no-ccache.patch
new file mode 100644
index 000000000000..ad3b03509e61
--- /dev/null
+++ b/media-sound/supercollider/files/supercollider-3.13.0-no-ccache.patch
@@ -0,0 +1,169 @@
+From bab60d91bd362fd1e46b79d64aaba747fe7c60fa Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Wed, 31 Jan 2024 00:31:11 +0100
+Subject: [PATCH] Make ccache detection an option
+
+Arguably it should not even be enabled by default,
+but at least it should be optional.
+
+Consolidate ccache detection in one block.
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ CMakeLists.txt | 122 +++++++++++++++++++++++++------------------------
+ 1 file changed, 62 insertions(+), 60 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ad5ea5b49..73411ae9e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,32 +46,6 @@ CONFIGURE_FILE(
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+ IMMEDIATE @ONLY)
+
+-# workaround for using ccache with Xcode generator
+-# thanks to Craig Scott: https://crascit.com/2016/04/09/using-ccache-with-cmake/
+-get_property(RULE_LAUNCH_COMPILE GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
+-if(RULE_LAUNCH_COMPILE AND CMAKE_GENERATOR STREQUAL "Xcode")
+-
+- # find ccache
+- find_program(CCACHE_PROGRAM ccache)
+-
+- message(STATUS "Xcode and ccache detected: using ccache to speed up build process")
+-
+- # Set up wrapper scripts
+- set(SC_LAUNCH_C_SCRIPT "${CMAKE_BINARY_DIR}/launch-c")
+- set(SC_LAUNCH_CXX_SCRIPT "${CMAKE_BINARY_DIR}/launch-cxx")
+-
+- configure_file("cmake_modules/launch-c.in" launch-c)
+- configure_file("cmake_modules/launch-cxx.in" launch-cxx)
+- execute_process(COMMAND chmod a+rx "${SC_LAUNCH_C_SCRIPT}" "${SC_LAUNCH_CXX_SCRIPT}")
+-
+- # Set Xcode project attributes to route compilation and linking
+- # through our scripts
+- set(CMAKE_XCODE_ATTRIBUTE_CC "${SC_LAUNCH_C_SCRIPT}")
+- set(CMAKE_XCODE_ATTRIBUTE_CXX "${SC_LAUNCH_CXX_SCRIPT}")
+- set(CMAKE_XCODE_ATTRIBUTE_LD "${SC_LAUNCH_C_SCRIPT}")
+- set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${SC_LAUNCH_CXX_SCRIPT}")
+-endif()
+-
+ ADD_CUSTOM_TARGET(uninstall
+ "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
+
+@@ -147,44 +121,11 @@ endif()
+
+ add_definitions(-DBOOST_CHRONO_HEADER_ONLY -DBOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE)
+
+-
+-#############################################
+-# Detect CCache
+-
+-find_program(CCacheExectuable ccache)
+-if( CCacheExectuable )
+- # only used with >=cmake-3.4
+- set( CMAKE_C_COMPILER_LAUNCHER "${CCacheExectuable}" )
+- set( CMAKE_CXX_COMPILER_LAUNCHER "${CCacheExectuable}" )
+- if(NOT CMAKE_GENERATOR MATCHES "Xcode" AND (NOT CMAKE_GENERATOR MATCHES "Visual Studio")) # we already post a message when using Xcode or MSVC
+- message(STATUS "Found ccache at ${CCacheExectuable}: using ccache to speed up build process")
+- endif()
+-
+- # fix for Visual Studio adapted from https://github.com/ccache/ccache/wiki/MS-Visual-Studio#usage
+- # NOTE: there is an issue with ccache installed from chocolatey
+- # since chocolatey puts a "shim" as opposed to the actual executable in the PATH
+- # the solution is to add the path to the actual ccache executable earlier in the path
+- # e.g. in bash: export PATH=`echo c:/ProgramData/chocolatey/lib/ccache/tools/ccache*`:$PATH
+- if (MSVC)
+- message(STATUS "Found ccache at ${CCacheExectuable}: using ccache with MSVC to speed up build process")
+- file(COPY_FILE
+- ${CCacheExectuable} ${CMAKE_BINARY_DIR}/cl.exe
+- ONLY_IF_DIFFERENT)
+-
+- set(CMAKE_VS_GLOBALS
+- "CLToolExe=cl.exe"
+- "CLToolPath=${CMAKE_BINARY_DIR}"
+- "TrackFileAccess=false"
+- "UseMultiToolTask=true"
+- "DebugInformationFormat=OldStyle"
+- )
+- endif()
+-endif()
+-
+ #############################################
+ # Options
+ option(NOVA_SIMD "Build with nova-simd support." ON)
+ option(FINAL_BUILD "Build as single source file." OFF)
++option(USE_CCACHE "Use ccache if available." ON)
+
+ option(FFT_GREEN "Use internal 'Green' FFT lib rather than FFTW. (Not recommended.)" OFF)
+
+@@ -285,6 +226,67 @@ if(APPLE)
+ option(SC_VERIFY_APP "Run verify_app on the app bundle" OFF)
+ endif()
+
++#############################################
++# Detect CCache
++
++if(USE_CCACHE)
++ # workaround for using ccache with Xcode generator
++ # thanks to Craig Scott: https://crascit.com/2016/04/09/using-ccache-with-cmake/
++ get_property(RULE_LAUNCH_COMPILE GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
++ if(RULE_LAUNCH_COMPILE AND CMAKE_GENERATOR STREQUAL "Xcode")
++
++ # find ccache
++ find_program(CCACHE_PROGRAM ccache)
++
++ message(STATUS "Xcode and ccache detected: using ccache to speed up build process")
++
++ # Set up wrapper scripts
++ set(SC_LAUNCH_C_SCRIPT "${CMAKE_BINARY_DIR}/launch-c")
++ set(SC_LAUNCH_CXX_SCRIPT "${CMAKE_BINARY_DIR}/launch-cxx")
++
++ configure_file("cmake_modules/launch-c.in" launch-c)
++ configure_file("cmake_modules/launch-cxx.in" launch-cxx)
++ execute_process(COMMAND chmod a+rx "${SC_LAUNCH_C_SCRIPT}" "${SC_LAUNCH_CXX_SCRIPT}")
++
++ # Set Xcode project attributes to route compilation and linking
++ # through our scripts
++ set(CMAKE_XCODE_ATTRIBUTE_CC "${SC_LAUNCH_C_SCRIPT}")
++ set(CMAKE_XCODE_ATTRIBUTE_CXX "${SC_LAUNCH_CXX_SCRIPT}")
++ set(CMAKE_XCODE_ATTRIBUTE_LD "${SC_LAUNCH_C_SCRIPT}")
++ set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${SC_LAUNCH_CXX_SCRIPT}")
++ endif()
++
++ find_program(CCacheExectuable ccache)
++ if( CCacheExectuable )
++ # only used with >=cmake-3.4
++ set( CMAKE_C_COMPILER_LAUNCHER "${CCacheExectuable}" )
++ set( CMAKE_CXX_COMPILER_LAUNCHER "${CCacheExectuable}" )
++ if(NOT CMAKE_GENERATOR MATCHES "Xcode" AND (NOT CMAKE_GENERATOR MATCHES "Visual Studio")) # we already post a message when using Xcode or MSVC
++ message(STATUS "Found ccache at ${CCacheExectuable}: using ccache to speed up build process")
++ endif()
++
++ # fix for Visual Studio adapted from https://github.com/ccache/ccache/wiki/MS-Visual-Studio#usage
++ # NOTE: there is an issue with ccache installed from chocolatey
++ # since chocolatey puts a "shim" as opposed to the actual executable in the PATH
++ # the solution is to add the path to the actual ccache executable earlier in the path
++ # e.g. in bash: export PATH=`echo c:/ProgramData/chocolatey/lib/ccache/tools/ccache*`:$PATH
++ if (MSVC)
++ message(STATUS "Found ccache at ${CCacheExectuable}: using ccache with MSVC to speed up build process")
++ file(COPY_FILE
++ ${CCacheExectuable} ${CMAKE_BINARY_DIR}/cl.exe
++ ONLY_IF_DIFFERENT)
++
++ set(CMAKE_VS_GLOBALS
++ "CLToolExe=cl.exe"
++ "CLToolPath=${CMAKE_BINARY_DIR}"
++ "TrackFileAccess=false"
++ "UseMultiToolTask=true"
++ "DebugInformationFormat=OldStyle"
++ )
++ endif()
++ endif()
++endif()
++
+ #############################################
+ # some default libraries
+
+--
+2.43.0
+
diff --git a/media-sound/supercollider/supercollider-3.13.0.ebuild b/media-sound/supercollider/supercollider-3.13.0.ebuild
index b0e05051ca89..2b8ee8636dd3 100644
--- a/media-sound/supercollider/supercollider-3.13.0.ebuild
+++ b/media-sound/supercollider/supercollider-3.13.0.ebuild
@@ -64,6 +64,7 @@ DEPEND="${RDEPEND}
PATCHES=(
"${FILESDIR}/${P}-boost-1.84.patch" # bug 921595
"${FILESDIR}/${P}-gcc-13.patch" # bug 905127
+ "${FILESDIR}/${P}-no-ccache.patch" # bug 922095
)
src_configure() {
@@ -72,6 +73,7 @@ src_configure() {
-DINSTALL_HELP=ON
-DSYSTEM_BOOST=ON
-DSYSTEM_YAMLCPP=ON
+ -DUSE_CCACHE=OFF
-DSC_ABLETON_LINK=$(usex ableton-link)
-DSSE=$(usex cpu_flags_x86_sse)
-DSSE2=$(usex cpu_flags_x86_sse2)