aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorRichard <q@1bpm.net>2025-03-09 22:33:07 +0000
committerRichard <q@1bpm.net>2025-03-09 22:33:07 +0000
commite174c759182e11f85e221eff8684088eebd563a4 (patch)
tree70155a2ec6c9fbf46c821ebe66ab63c0f17fbd8d /cmake
downloadcsound-shout-e174c759182e11f85e221eff8684088eebd563a4.tar.gz
csound-shout-e174c759182e11f85e221eff8684088eebd563a4.tar.bz2
csound-shout-e174c759182e11f85e221eff8684088eebd563a4.zip
initial
Diffstat (limited to 'cmake')
-rw-r--r--cmake/CompilerOptimizations.cmake53
-rw-r--r--cmake/Modules/FindCsound.cmake62
-rw-r--r--cmake/Modules/FindLame.cmake17
-rw-r--r--cmake/Modules/FindShout.cmake16
4 files changed, 148 insertions, 0 deletions
diff --git a/cmake/CompilerOptimizations.cmake b/cmake/CompilerOptimizations.cmake
new file mode 100644
index 0000000..543daf8
--- /dev/null
+++ b/cmake/CompilerOptimizations.cmake
@@ -0,0 +1,53 @@
+
+check_c_compiler_flag(-ftree-vectorize HAS_TREE_VECTORIZE)
+check_cxx_compiler_flag(-ftree-vectorize HAS_CXX_TREE_VECTORIZE)
+if (HAS_TREE_VECTORISE)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftree-vectorize")
+endif()
+if (HAS_CXX_TREE_VECTORISE)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-vectorize")
+endif()
+
+
+check_c_compiler_flag(-ffast-math HAS_FAST_MATH)
+check_cxx_compiler_flag(-ffast-math HAS_CXX_FAST_MATH)
+if (HAS_FAST_MATH AND NOT MINGW)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffast-math")
+endif()
+if (HAS_CXX_FAST_MATH AND NOT MINGW)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffast-math")
+endif()
+
+
+
+if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+check_c_compiler_flag(-mfpmath=sse HAS_FPMATH_SSE)
+check_cxx_compiler_flag(-mfpmath=sse HAS_CXX_FPMATH_SSE)
+ if (HAS_FPMATH_SSE)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpmath=sse")
+endif()
+if (HAS_CXX_FPMATH_SSE)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse")
+endif()
+
+endif()
+
+
+check_c_compiler_flag(-msse2 HAS_SSE2)
+check_cxx_compiler_flag(-msse2 HAS_CXX_SSE2)
+ if (HAS_SSE2 AND NOT IOS AND NOT WASM)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2")
+endif()
+if (HAS_CXX_SSE2 AND NOT IOS AND NOT WASM)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2")
+endif()
+
+
+check_c_compiler_flag(-fomit-frame-pointer HAS_OMIT_FRAME_POINTER)
+check_cxx_compiler_flag(-fomit-frame-pointer HAS_CXX_OMIT_FRAME_POINTER)
+if (HAS_OMIT_FRAME_POINTER)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
+endif()
+if (HAS_CXX_OMIT_FRAME_POINTER)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fomit-frame-pointer")
+endif()
diff --git a/cmake/Modules/FindCsound.cmake b/cmake/Modules/FindCsound.cmake
new file mode 100644
index 0000000..24c90d9
--- /dev/null
+++ b/cmake/Modules/FindCsound.cmake
@@ -0,0 +1,62 @@
+# Try to find the Csound library.
+# Once done this will define:
+# CSOUND_FOUND - System has the Csound library
+# CSOUND_INCLUDE_DIRS - The Csound include directories.
+# CSOUND_LIBRARIES - The libraries needed to use the Csound library.
+
+# RKnight 2021-07-21 : quick copy paste hack to deal with 32 bit if not using double
+
+if(USE_DOUBLE)
+ # 64 bit
+ if(APPLE)
+ find_path(CSOUND_INCLUDE_DIR csound.h HINTS /Library/Frameworks/CsoundLib64.framework/Headers
+ "$ENV{HOME}/Library/Frameworks/CsoundLib64.framework/Headers")
+ elseif(WIN32)
+ find_path(CSOUND_INCLUDE_DIR csound.h PATH_SUFFIXES csound
+ HINTS "c:\\Program Files\\Csound6_x64\\include")
+ else()
+ find_path(CSOUND_INCLUDE_DIR csound.h PATH_SUFFIXES csound)
+ endif()
+
+ if(APPLE)
+ find_library(CSOUND_LIBRARY NAMES CsoundLib64 HINTS /Library/Frameworks/CsoundLib64.framework/
+ "$ENV{HOME}/Library/Frameworks/CsoundLib64.framework")
+ elseif(WIN32)
+ find_library(CSOUND_LIBRARY NAMES csound64 HINTS "c:\\Program Files\\Csound6_x64\\lib")
+ else()
+ find_library(CSOUND_LIBRARY NAMES csound64 csound)
+ endif()
+
+else()
+ # 32 bit
+ if(APPLE)
+ find_path(CSOUND_INCLUDE_DIR csound.h HINTS /Library/Frameworks/CsoundLib.framework/Headers
+ "$ENV{HOME}/Library/Frameworks/CsoundLib.framework/Headers")
+ elseif(WIN32)
+ find_path(CSOUND_INCLUDE_DIR csound.h PATH_SUFFIXES csound
+ HINTS "c:\\Program Files (x86)\\Csound6\\include")
+ else()
+ find_path(CSOUND_INCLUDE_DIR csound.h PATH_SUFFIXES csound)
+ endif()
+
+ if(APPLE)
+ find_library(CSOUND_LIBRARY NAMES CsoundLib HINTS /Library/Frameworks/CsoundLib.framework/
+ "$ENV{HOME}/Library/Frameworks/CsoundLib.framework")
+ elseif(WIN32)
+ find_library(CSOUND_LIBRARY NAMES csound HINTS "c:\\Program Files (x86)\\Csound6\\lib")
+ else()
+ find_library(CSOUND_LIBRARY NAMES csound csound)
+ endif()
+
+endif()
+
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set CSOUND_FOUND to TRUE
+# if all listed variables are TRUE
+find_package_handle_standard_args(CSOUND
+ CSOUND_LIBRARY CSOUND_INCLUDE_DIR)
+mark_as_advanced(CSOUND_INCLUDE_DIR CSOUND_LIBRARY)
+
+set(CSOUND_INCLUDE_DIRS ${CSOUND_INCLUDE_DIR})
+set(CSOUND_LIBRARIES ${CSOUND_LIBRARY} )
diff --git a/cmake/Modules/FindLame.cmake b/cmake/Modules/FindLame.cmake
new file mode 100644
index 0000000..e0b9f5f
--- /dev/null
+++ b/cmake/Modules/FindLame.cmake
@@ -0,0 +1,17 @@
+FIND_PATH(LAME_INCLUDE_DIR lame/lame.h)
+FIND_LIBRARY(LAME_LIBRARIES NAMES mp3lame)
+
+IF(LAME_INCLUDE_DIR AND LAME_LIBRARIES)
+ SET(LAME_FOUND TRUE)
+ENDIF(LAME_INCLUDE_DIR AND LAME_LIBRARIES)
+
+IF(LAME_FOUND)
+ IF (NOT Lame_FIND_QUIETLY)
+ MESSAGE(STATUS "Found lame includes: ${LAME_INCLUDE_DIR}/lame/lame.h")
+ MESSAGE(STATUS "Found lame library: ${LAME_LIBRARIES}")
+ ENDIF (NOT Lame_FIND_QUIETLY)
+ELSE(LAME_FOUND)
+ IF (Lame_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could NOT find lame development files")
+ ENDIF (Lame_FIND_REQUIRED)
+ENDIF(LAME_FOUND)
diff --git a/cmake/Modules/FindShout.cmake b/cmake/Modules/FindShout.cmake
new file mode 100644
index 0000000..75be2c5
--- /dev/null
+++ b/cmake/Modules/FindShout.cmake
@@ -0,0 +1,16 @@
+FIND_PATH(SHOUT_INCLUDE_DIR PATH_SUFFIXES "shout" NAMES shout.h)
+# Look for the library.
+FIND_LIBRARY(SHOUT_LIBRARY NAMES shout)
+# Handle the QUIETLY and REQUIRED arguments and set SHOUT_FOUND to TRUE if all listed variables are TRUE.
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(SHOUT DEFAULT_MSG SHOUT_LIBRARY SHOUT_INCLUDE_DIR)
+
+# Copy the results to the output variables.
+IF(SHOUT_FOUND)
+ SET(SHOUT_LIBRARIES ${SHOUT_LIBRARY})
+ SET(SHOUT_INCLUDE_DIRS ${SHOUT_INCLUDE_DIR})
+ELSE(SHOUT_FOUND)
+ SET(SHOUT_LIBRARIES)
+ SET(SHOUT_INCLUDE_DIRS)
+ENDIF(SHOUT_FOUND)
+MARK_AS_ADVANCED(SHOUT_INCLUDE_DIRS SHOUT_LIBRARIES)