From 1376945b3d351ceeb3ac38210f66627d91f413fd Mon Sep 17 00:00:00 2001 From: Richard Date: Sat, 13 Sep 2025 16:37:04 +0100 Subject: initial --- cmake/CompilerOptimizations.cmake | 53 ++++++++++++++++++++++++++++++++ cmake/Modules/FindCsound.cmake | 62 ++++++++++++++++++++++++++++++++++++++ cmake/Modules/FindLibSndFile.cmake | 23 ++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 cmake/CompilerOptimizations.cmake create mode 100644 cmake/Modules/FindCsound.cmake create mode 100644 cmake/Modules/FindLibSndFile.cmake (limited to 'cmake') 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/FindLibSndFile.cmake b/cmake/Modules/FindLibSndFile.cmake new file mode 100644 index 0000000..a177bde --- /dev/null +++ b/cmake/Modules/FindLibSndFile.cmake @@ -0,0 +1,23 @@ +# Base Io build system +# Written by Jeremy Tregunna +# +# Find libsndfile. + +FIND_PATH(LIBSNDFILE_INCLUDE_DIR sndfile.h) + +SET(LIBSNDFILE_NAMES ${LIBSNDFILE_NAMES} sndfile libsndfile) +FIND_LIBRARY(LIBSNDFILE_LIBRARY NAMES ${LIBSNDFILE_NAMES} PATH) + +IF(LIBSNDFILE_INCLUDE_DIR AND LIBSNDFILE_LIBRARY) + SET(LIBSNDFILE_FOUND TRUE) +ENDIF(LIBSNDFILE_INCLUDE_DIR AND LIBSNDFILE_LIBRARY) + +IF(LIBSNDFILE_FOUND) + IF(NOT LibSndFile_FIND_QUIETLY) + MESSAGE(STATUS "Found LibSndFile: ${LIBSNDFILE_LIBRARY}") + ENDIF (NOT LibSndFile_FIND_QUIETLY) +ELSE(LIBSNDFILE_FOUND) + IF(LibSndFile_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find sndfile") + ENDIF(LibSndFile_FIND_REQUIRED) +ENDIF (LIBSNDFILE_FOUND) \ No newline at end of file -- cgit v1.2.3