diff options
author | Richard <q@1bpm.net> | 2025-03-09 22:33:07 +0000 |
---|---|---|
committer | Richard <q@1bpm.net> | 2025-03-09 22:33:07 +0000 |
commit | e174c759182e11f85e221eff8684088eebd563a4 (patch) | |
tree | 70155a2ec6c9fbf46c821ebe66ab63c0f17fbd8d /cmake | |
download | csound-shout-e174c759182e11f85e221eff8684088eebd563a4.tar.gz csound-shout-e174c759182e11f85e221eff8684088eebd563a4.tar.bz2 csound-shout-e174c759182e11f85e221eff8684088eebd563a4.zip |
initial
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/CompilerOptimizations.cmake | 53 | ||||
-rw-r--r-- | cmake/Modules/FindCsound.cmake | 62 | ||||
-rw-r--r-- | cmake/Modules/FindLame.cmake | 17 | ||||
-rw-r--r-- | cmake/Modules/FindShout.cmake | 16 |
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) |