From ce91b6d0e2ee8b5412ec4f1ed7b99bdbd3f23eab Mon Sep 17 00:00:00 2001
From: Richard Knight <q@1bpm.net>
Date: Mon, 16 Aug 2021 03:40:11 +0100
Subject: update readme

---
 Plugin.cmake                      | 14 ++++++++++
 README.md                         |  2 +-
 cmake/CompilerOptimizations.cmake | 53 ++++++++++++++++++++++++++++++++++++
 cmake/Modules/FindCsound.cmake    | 56 +++++++++++++++++++++++++++++----------
 4 files changed, 110 insertions(+), 15 deletions(-)
 create mode 100644 Plugin.cmake
 create mode 100644 cmake/CompilerOptimizations.cmake

diff --git a/Plugin.cmake b/Plugin.cmake
new file mode 100644
index 0000000..4763a68
--- /dev/null
+++ b/Plugin.cmake
@@ -0,0 +1,14 @@
+set(PLUGIN_NAME csxtract)
+set(INCLUDES ${CSOUND_INCLUDE_DIRS})
+set(LIBS "")
+
+# Dependencies
+find_package(Xtract)
+check_deps(XTRACT_FOUND)
+list(APPEND LIBS ${XTRACT_LIBRARIES})
+list(APPEND INCLUDES ${XTRACT_INCLUDE_DIRS})
+
+# Source files
+set(CPPFILES src/opcodes.cpp src/dtw.cpp)
+make_plugin(${PLUGIN_NAME} "${CPPFILES}" ${LIBS})
+target_include_directories(${PLUGIN_NAME} PRIVATE ${INCLUDES})
diff --git a/README.md b/README.md
index f445476..128bd34 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ Development is still ongoing and subject to various research matters, thus is pr
 
 
 ## Requirements
-* Cmake >= 3.8
+* Cmake >= 2.8.12
 * Csound with development headers >= 6.14.0
 * [LibXtract](https://github.com/jamiebullock/LibXtract)
 
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
index b5631c9..24c90d9 100644
--- a/cmake/Modules/FindCsound.cmake
+++ b/cmake/Modules/FindCsound.cmake
@@ -4,25 +4,53 @@
 #  CSOUND_INCLUDE_DIRS - The Csound include directories.
 #  CSOUND_LIBRARIES - The libraries needed to use the Csound library.
 
-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 
+# 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()
+  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()
 
-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)
+  # 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
-- 
cgit v1.2.3