From 097f0a0f7ef6c5aaebcabd18f65f0e955b2c566d Mon Sep 17 00:00:00 2001 From: Owen Green Date: Sun, 26 Aug 2018 01:24:33 +0100 Subject: [PATCH 1/3] Added top level CMakeLists that builds all plugs, using targets from fluid_decomposition Adjusted plugin CMakeLists and changed directory structure Unified release packaging --- CMakeLists.txt | 55 ++++++++++++++ .../classes}/Buffer.ext.schelp | 0 .../classes}/FDGain.schelp | 0 .../classes}/FDSTFTPass.schelp | 0 .../{fdGain => }/classes/fdGain.sc | 0 .../{fdSTFTPass => }/classes/fdSTFTPass.sc | 0 .../{fdNMF => }/classes/fdfNMF.sc | 0 scripts/target_post.cmake | 76 +++++++++++++++++++ {fdGain => src/fdGain}/CMakeLists.txt | 0 {fdGain => src/fdGain}/fdGain.cpp | 0 {fdNMF => src/fdNMF}/CMakeLists.txt | 0 {fdNMF => src/fdNMF}/fdNMF.cpp | 0 {fdNMF => src/fdNMF}/tests.scd | 0 {fdSTFTPass => src/fdSTFTPass}/CMakeLists.txt | 0 {fdSTFTPass => src/fdSTFTPass}/fdSTFTPass.cpp | 0 15 files changed, 131 insertions(+) create mode 100755 CMakeLists.txt rename release-packaging/{fdNMF/HelpSource/Classes => HelpSource/classes}/Buffer.ext.schelp (100%) rename release-packaging/{fdGain/HelpSource/Classes => HelpSource/classes}/FDGain.schelp (100%) rename release-packaging/{fdSTFTPass/HelpSource/Classes => HelpSource/classes}/FDSTFTPass.schelp (100%) rename release-packaging/{fdGain => }/classes/fdGain.sc (100%) rename release-packaging/{fdSTFTPass => }/classes/fdSTFTPass.sc (100%) rename release-packaging/{fdNMF => }/classes/fdfNMF.sc (100%) create mode 100644 scripts/target_post.cmake rename {fdGain => src/fdGain}/CMakeLists.txt (100%) rename {fdGain => src/fdGain}/fdGain.cpp (100%) rename {fdNMF => src/fdNMF}/CMakeLists.txt (100%) rename {fdNMF => src/fdNMF}/fdNMF.cpp (100%) rename {fdNMF => src/fdNMF}/tests.scd (100%) rename {fdSTFTPass => src/fdSTFTPass}/CMakeLists.txt (100%) rename {fdSTFTPass => src/fdSTFTPass}/fdSTFTPass.cpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..9ea8abe --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,55 @@ +####### original SC Cmake file starts here +cmake_minimum_required(VERSION 3.3) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +# get_filename_component(PROJECT ${CMAKE_SOURCE_DIR} NAME_WE) #automatically sets project name from the filename +# message(STATUS "Project name is ${PROJECT}") +# project (${PROJECT}) + +project (fluid_decomposition_supercollider LANGUAGES CXX) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic") + + +option(SUPERNOVA "Build plugins for supernova" OFF) + + +MACRO(SUBDIRLIST result curdir) + FILE(GLOB children RELATIVE ${curdir} ${curdir}/*) + SET(dirlist "") + FOREACH(child ${children}) + IF(IS_DIRECTORY ${curdir}/${child}) + LIST(APPEND dirlist ${child}) + ENDIF() + ENDFOREACH() + SET(${result} ${dirlist}) +ENDMACRO() + +get_filename_component(FLUIDPATH ${FLUID_DECOMP_PATH} ABSOLUTE) +message(${FLUIDPATH}) +# if (NOT DEFINED ${FLUID_DECOMP_PATH}) +# message(FATAL_ERROR "Please set the path to the fluid_decomposition sources with -DFLUID_DECOMP_PATH=") +# endif() + +if (NOT (EXISTS "${FLUIDPATH}/build/fluid_decomposition-exports.cmake")) + message(FATAL_ERROR "Can't find the fluid_decomposition CMake targets file at ${FLUIDPATH}/build/fluid_decomposition-expors.cmake. Please go to ${FLUIDPATH}/build and run CMake") +endif() + +include("${FLUIDPATH}/build/fluid_decomposition-exports.cmake") + +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/release-packaging/plugins") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") + +set(CMAKE_SHARED_MODULE_PREFIX "") +if(APPLE OR WIN32) +set(CMAKE_SHARED_MODULE_SUFFIX ".scx") +endif() + +SUBDIRLIST(PROJECT_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src) +foreach (project_dir ${PROJECT_DIRS}) + if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/${project_dir}/CMakeLists.txt") + message("Generating: ${project_dir}") + add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/${project_dir}) + endif () +endforeach () diff --git a/release-packaging/fdNMF/HelpSource/Classes/Buffer.ext.schelp b/release-packaging/HelpSource/classes/Buffer.ext.schelp similarity index 100% rename from release-packaging/fdNMF/HelpSource/Classes/Buffer.ext.schelp rename to release-packaging/HelpSource/classes/Buffer.ext.schelp diff --git a/release-packaging/fdGain/HelpSource/Classes/FDGain.schelp b/release-packaging/HelpSource/classes/FDGain.schelp similarity index 100% rename from release-packaging/fdGain/HelpSource/Classes/FDGain.schelp rename to release-packaging/HelpSource/classes/FDGain.schelp diff --git a/release-packaging/fdSTFTPass/HelpSource/Classes/FDSTFTPass.schelp b/release-packaging/HelpSource/classes/FDSTFTPass.schelp similarity index 100% rename from release-packaging/fdSTFTPass/HelpSource/Classes/FDSTFTPass.schelp rename to release-packaging/HelpSource/classes/FDSTFTPass.schelp diff --git a/release-packaging/fdGain/classes/fdGain.sc b/release-packaging/classes/fdGain.sc similarity index 100% rename from release-packaging/fdGain/classes/fdGain.sc rename to release-packaging/classes/fdGain.sc diff --git a/release-packaging/fdSTFTPass/classes/fdSTFTPass.sc b/release-packaging/classes/fdSTFTPass.sc similarity index 100% rename from release-packaging/fdSTFTPass/classes/fdSTFTPass.sc rename to release-packaging/classes/fdSTFTPass.sc diff --git a/release-packaging/fdNMF/classes/fdfNMF.sc b/release-packaging/classes/fdfNMF.sc similarity index 100% rename from release-packaging/fdNMF/classes/fdfNMF.sc rename to release-packaging/classes/fdfNMF.sc diff --git a/scripts/target_post.cmake b/scripts/target_post.cmake new file mode 100644 index 0000000..3368980 --- /dev/null +++ b/scripts/target_post.cmake @@ -0,0 +1,76 @@ +target_include_directories( + ${PLUGIN} + PRIVATE + ${SC_PATH}/include/plugin_interface + ${SC_PATH}/include/common + ${SC_PATH}/common +) + +if (SUPERNOVA) + target_include_directories( + ${PLUGIN} + PRIVATE + ${SC_PATH}/external_libraries/nova-tt + ${SC_PATH}/external_libraries/boost + ${SC_PATH}/external_libraries/boost_lockfree + ${SC_PATH}/external_libraries/boost-lockfree + ) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG) + target_add_definitions(${PLUGIN} -fvisibility=hidden) + + include (CheckCXXCompilerFlag) + + CHECK_CXX_COMPILER_FLAG(-msse HAS_CXX_SSE) + CHECK_CXX_COMPILER_FLAG(-msse2 HAS_CXX_SSE2) + CHECK_CXX_COMPILER_FLAG(-mfpmath=sse HAS_CXX_FPMATH_SSE) + CHECK_CXX_COMPILER_FLAG(-mavx HAS_AVX) + CHECK_CXX_COMPILER_FLAG(-mavx2 HAS_AVX2) + target_compile_definitions( + ${PLUGIN} + PRIVATE + "$<$>:-O3" + "-mavx" + ) + + # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse") + # endif() + # + # CHECK_C_COMPILER_FLAG(-msse2 HAS_SSE2) + # + # + # if (HAS_SSE2) + # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2") + # endif() + # if (HAS_CXX_SSE2) + # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2") + # endif() + # + # + # + # 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() + # + # if(NATIVE) + # add_definitions(-march=native) + # endif() + # + +endif() +if(MINGW) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstackrealign") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstackrealign") +endif() + +####### added the fluid_decomposition + +if(SUPERNOVA) + add_library(${PLUGIN}_supernova MODULE ${FILENAME}) + set_property(TARGET ${PROJECT}_supernova + PROPERTY COMPILE_DEFINITIONS SUPERNOVA) +endif() diff --git a/fdGain/CMakeLists.txt b/src/fdGain/CMakeLists.txt similarity index 100% rename from fdGain/CMakeLists.txt rename to src/fdGain/CMakeLists.txt diff --git a/fdGain/fdGain.cpp b/src/fdGain/fdGain.cpp similarity index 100% rename from fdGain/fdGain.cpp rename to src/fdGain/fdGain.cpp diff --git a/fdNMF/CMakeLists.txt b/src/fdNMF/CMakeLists.txt similarity index 100% rename from fdNMF/CMakeLists.txt rename to src/fdNMF/CMakeLists.txt diff --git a/fdNMF/fdNMF.cpp b/src/fdNMF/fdNMF.cpp similarity index 100% rename from fdNMF/fdNMF.cpp rename to src/fdNMF/fdNMF.cpp diff --git a/fdNMF/tests.scd b/src/fdNMF/tests.scd similarity index 100% rename from fdNMF/tests.scd rename to src/fdNMF/tests.scd diff --git a/fdSTFTPass/CMakeLists.txt b/src/fdSTFTPass/CMakeLists.txt similarity index 100% rename from fdSTFTPass/CMakeLists.txt rename to src/fdSTFTPass/CMakeLists.txt diff --git a/fdSTFTPass/fdSTFTPass.cpp b/src/fdSTFTPass/fdSTFTPass.cpp similarity index 100% rename from fdSTFTPass/fdSTFTPass.cpp rename to src/fdSTFTPass/fdSTFTPass.cpp From 858d115c75d149b28b6e087345c4dde2836538c7 Mon Sep 17 00:00:00 2001 From: Owen Green Date: Sun, 26 Aug 2018 01:25:49 +0100 Subject: [PATCH 2/3] Changes to CMakeLists for plugins (much smaller, using an include for boilerplate) --- src/fdGain/CMakeLists.txt | 139 ++++++---------------------------- src/fdNMF/CMakeLists.txt | 133 ++++++-------------------------- src/fdSTFTPass/CMakeLists.txt | 139 ++++++---------------------------- 3 files changed, 75 insertions(+), 336 deletions(-) diff --git a/src/fdGain/CMakeLists.txt b/src/fdGain/CMakeLists.txt index 70cb900..653a89a 100755 --- a/src/fdGain/CMakeLists.txt +++ b/src/fdGain/CMakeLists.txt @@ -1,120 +1,31 @@ -####### original SC Cmake file starts here -cmake_minimum_required (VERSION 3.1) -get_filename_component(PROJECT ${CMAKE_SOURCE_DIR} NAME_WE) #automatically sets project name from the filename -message(STATUS "Project name is ${PROJECT}") -project (${PROJECT}) - -####### added the eingenmf -set(FLUID_DECOMP_DIR ~/fluid_decomposition) -set(FILENAME "fdGain.cpp") #specify the .cpp file here - -set(CMAKE_CXX_STANDARD 11) -set (CMAKE_CXX_STANDARD_REQUIRED ON) +cmake_minimum_required(VERSION 3.3) +get_filename_component(PLUGIN ${CMAKE_CURRENT_LIST_DIR} NAME_WE) +message("Configuring ${PLUGIN}") +set(FILENAME ${PLUGIN}.cpp) add_library( -${PROJECT} -MODULE -${FILENAME} -"${FLUID_DECOMP_DIR}/3rdparty/HISSTools_FFT/HISSTools_FFT.cpp" -) - -add_custom_command( - TARGET - ${PROJECT} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E make_directory "../../release-packaging/${PROJECT}/plugins" - COMMAND ${CMAKE_COMMAND} -E copy $ "../../release-packaging/${PROJECT}/plugins" + ${PLUGIN} + MODULE + ${FILENAME} +# "${FLUID_DECOMP_DIR}/3rdparty/HISSTools_FFT/HISSTools_FFT.cpp" ) -include_directories( - "${FLUID_DECOMP_DIR}" - "${FLUID_DECOMP_DIR}/include" - "${FLUID_DECOMP_DIR}/3rdparty" +target_link_libraries( + ${PLUGIN} PRIVATE FLUID_DECOMPOSITION ) - -include_directories(${SC_PATH}/include/plugin_interface) -include_directories(${SC_PATH}/include/common) -include_directories(${SC_PATH}/common) - -set(CMAKE_SHARED_MODULE_PREFIX "") -if(APPLE OR WIN32) -set(CMAKE_SHARED_MODULE_SUFFIX ".scx") -endif() - -option(SUPERNOVA "Build plugins for supernova" OFF) -if (SUPERNOVA) - include_directories(${SC_PATH}/external_libraries/nova-tt) - # actually just boost.atomic - include_directories(${SC_PATH}/external_libraries/boost) - include_directories(${SC_PATH}/external_libraries/boost_lockfree) - include_directories(${SC_PATH}/external_libraries/boost-lockfree) -endif() - -option(CPP11 "Build with c++11." ON) - -if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(CMAKE_COMPILER_IS_CLANG 1) -endif() - -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG) - add_definitions(-fvisibility=hidden) - - include (CheckCCompilerFlag) - include (CheckCXXCompilerFlag) - - CHECK_C_COMPILER_FLAG(-msse HAS_SSE) - CHECK_CXX_COMPILER_FLAG(-msse HAS_CXX_SSE) - - if (HAS_SSE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse") - endif() - if (HAS_CXX_SSE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse") - endif() - - CHECK_C_COMPILER_FLAG(-msse2 HAS_SSE2) - CHECK_CXX_COMPILER_FLAG(-msse2 HAS_CXX_SSE2) - - if (HAS_SSE2) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2") - endif() - if (HAS_CXX_SSE2) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2") - endif() - - 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() - - if(NATIVE) - add_definitions(-march=native) - endif() - - if(CPP11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - if(CMAKE_COMPILER_IS_CLANG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - endif() - endif() -endif() -if(MINGW) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstackrealign") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstackrealign") -endif() - -####### added the fluid_decomposition - -if(SUPERNOVA) - add_library(${PROJECT}_supernova MODULE ${FILENAME}) - set_property(TARGET ${PROJECT}_supernova - PROPERTY COMPILE_DEFINITIONS SUPERNOVA) -endif() - -target_link_libraries (${PROJECT} "-framework Accelerate") +include(${CMAKE_CURRENT_LIST_DIR}/../../scripts/target_post.cmake) + +# add_custom_command( +# TARGET +# ${PROJECT} +# POST_BUILD +# COMMAND ${CMAKE_COMMAND} -E make_directory "../../release-packaging/${PROJECT}/plugins" +# COMMAND ${CMAKE_COMMAND} -E copy $ "../../release-packaging/${PROJECT}/plugins" +# ) +# +# target_include_directories( +# "${FLUID_DECOMP_DIR}" +# "${FLUID_DECOMP_DIR}/include" +# "${FLUID_DECOMP_DIR}/3rdparty" +# ) diff --git a/src/fdNMF/CMakeLists.txt b/src/fdNMF/CMakeLists.txt index e7a12b0..653a89a 100755 --- a/src/fdNMF/CMakeLists.txt +++ b/src/fdNMF/CMakeLists.txt @@ -1,114 +1,31 @@ -####### added the eingenmf -set(FLUID_DECOMP_DIR ../../fluid_decomposition) +cmake_minimum_required(VERSION 3.3) +get_filename_component(PLUGIN ${CMAKE_CURRENT_LIST_DIR} NAME_WE) +message("Configuring ${PLUGIN}") +set(FILENAME ${PLUGIN}.cpp) -include_directories( - "${FLUID_DECOMP_DIR}" - "${FLUID_DECOMP_DIR}/include" - "${FLUID_DECOMP_DIR}/3rdparty" -) - -####### original SC Cmake file starts here -set(FILENAME "fdNMF.cpp") #specify the .cpp file here -cmake_minimum_required (VERSION 2.8) -get_filename_component(PROJECT ${FILENAME} NAME_WE) #automatically sets project name from the filename -message(STATUS "Project name is ${PROJECT}") -project (${PROJECT}) - -include_directories(${SC_PATH}/include/plugin_interface) -include_directories(${SC_PATH}/include/common) -include_directories(${SC_PATH}/common) - -set(CMAKE_SHARED_MODULE_PREFIX "") -if(APPLE OR WIN32) -set(CMAKE_SHARED_MODULE_SUFFIX ".scx") -endif() - -option(SUPERNOVA "Build plugins for supernova" OFF) -if (SUPERNOVA) - include_directories(${SC_PATH}/external_libraries/nova-tt) - # actually just boost.atomic - include_directories(${SC_PATH}/external_libraries/boost) - include_directories(${SC_PATH}/external_libraries/boost_lockfree) - include_directories(${SC_PATH}/external_libraries/boost-lockfree) -endif() - -option(CPP11 "Build with c++11." ON) - -if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(CMAKE_COMPILER_IS_CLANG 1) -endif() - -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG) - add_definitions(-fvisibility=hidden) - - include (CheckCCompilerFlag) - include (CheckCXXCompilerFlag) - - CHECK_C_COMPILER_FLAG(-msse HAS_SSE) - CHECK_CXX_COMPILER_FLAG(-msse HAS_CXX_SSE) - - if (HAS_SSE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse") - endif() - if (HAS_CXX_SSE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse") - endif() - - CHECK_C_COMPILER_FLAG(-msse2 HAS_SSE2) - CHECK_CXX_COMPILER_FLAG(-msse2 HAS_CXX_SSE2) - - if (HAS_SSE2) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2") - endif() - if (HAS_CXX_SSE2) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2") - endif() - - 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() - - if(NATIVE) - add_definitions(-march=native) - endif() - - if(CPP11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - if(CMAKE_COMPILER_IS_CLANG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - endif() - endif() -endif() -if(MINGW) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstackrealign") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstackrealign") -endif() - -####### added the fluid_decomposition add_library( -${PROJECT} -MODULE -${FILENAME} -"${FLUID_DECOMP_DIR}/3rdparty/HISSTools_FFT/HISSTools_FFT.cpp" + ${PLUGIN} + MODULE + ${FILENAME} +# "${FLUID_DECOMP_DIR}/3rdparty/HISSTools_FFT/HISSTools_FFT.cpp" ) -if(SUPERNOVA) - add_library(${PROJECT}_supernova MODULE ${FILENAME}) - set_property(TARGET ${PROJECT}_supernova - PROPERTY COMPILE_DEFINITIONS SUPERNOVA) -endif() -add_custom_command( - TARGET - ${PROJECT} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E make_directory "../../release-packaging/${PROJECT}/plugins" - COMMAND ${CMAKE_COMMAND} -E copy $ "../../release-packaging/${PROJECT}/plugins" +target_link_libraries( + ${PLUGIN} PRIVATE FLUID_DECOMPOSITION ) -target_link_libraries (${PROJECT} "-framework Accelerate") +include(${CMAKE_CURRENT_LIST_DIR}/../../scripts/target_post.cmake) + +# add_custom_command( +# TARGET +# ${PROJECT} +# POST_BUILD +# COMMAND ${CMAKE_COMMAND} -E make_directory "../../release-packaging/${PROJECT}/plugins" +# COMMAND ${CMAKE_COMMAND} -E copy $ "../../release-packaging/${PROJECT}/plugins" +# ) +# +# target_include_directories( +# "${FLUID_DECOMP_DIR}" +# "${FLUID_DECOMP_DIR}/include" +# "${FLUID_DECOMP_DIR}/3rdparty" +# ) diff --git a/src/fdSTFTPass/CMakeLists.txt b/src/fdSTFTPass/CMakeLists.txt index 0830062..653a89a 100755 --- a/src/fdSTFTPass/CMakeLists.txt +++ b/src/fdSTFTPass/CMakeLists.txt @@ -1,120 +1,31 @@ -####### original SC Cmake file starts here -cmake_minimum_required (VERSION 3.1) -get_filename_component(PROJECT ${CMAKE_SOURCE_DIR} NAME_WE) #automatically sets project name from the filename -message(STATUS "Project name is ${PROJECT}") -project (${PROJECT}) - -####### added the eingenmf -set(FLUID_DECOMP_DIR ~/fluid_decomposition) -set(FILENAME "fdSTFTPass.cpp") #specify the .cpp file here - -set(CMAKE_CXX_STANDARD 11) -set (CMAKE_CXX_STANDARD_REQUIRED ON) +cmake_minimum_required(VERSION 3.3) +get_filename_component(PLUGIN ${CMAKE_CURRENT_LIST_DIR} NAME_WE) +message("Configuring ${PLUGIN}") +set(FILENAME ${PLUGIN}.cpp) add_library( -${PROJECT} -MODULE -${FILENAME} -"${FLUID_DECOMP_DIR}/3rdparty/HISSTools_FFT/HISSTools_FFT.cpp" -) - -add_custom_command( - TARGET - ${PROJECT} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E make_directory "../../release-packaging/${PROJECT}/plugins" - COMMAND ${CMAKE_COMMAND} -E copy $ "../../release-packaging/${PROJECT}/plugins" + ${PLUGIN} + MODULE + ${FILENAME} +# "${FLUID_DECOMP_DIR}/3rdparty/HISSTools_FFT/HISSTools_FFT.cpp" ) -include_directories( - "${FLUID_DECOMP_DIR}" - "${FLUID_DECOMP_DIR}/include" - "${FLUID_DECOMP_DIR}/3rdparty" +target_link_libraries( + ${PLUGIN} PRIVATE FLUID_DECOMPOSITION ) - -include_directories(${SC_PATH}/include/plugin_interface) -include_directories(${SC_PATH}/include/common) -include_directories(${SC_PATH}/common) - -set(CMAKE_SHARED_MODULE_PREFIX "") -if(APPLE OR WIN32) -set(CMAKE_SHARED_MODULE_SUFFIX ".scx") -endif() - -option(SUPERNOVA "Build plugins for supernova" OFF) -if (SUPERNOVA) - include_directories(${SC_PATH}/external_libraries/nova-tt) - # actually just boost.atomic - include_directories(${SC_PATH}/external_libraries/boost) - include_directories(${SC_PATH}/external_libraries/boost_lockfree) - include_directories(${SC_PATH}/external_libraries/boost-lockfree) -endif() - -option(CPP11 "Build with c++11." ON) - -if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(CMAKE_COMPILER_IS_CLANG 1) -endif() - -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG) - add_definitions(-fvisibility=hidden) - - include (CheckCCompilerFlag) - include (CheckCXXCompilerFlag) - - CHECK_C_COMPILER_FLAG(-msse HAS_SSE) - CHECK_CXX_COMPILER_FLAG(-msse HAS_CXX_SSE) - - if (HAS_SSE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse") - endif() - if (HAS_CXX_SSE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse") - endif() - - CHECK_C_COMPILER_FLAG(-msse2 HAS_SSE2) - CHECK_CXX_COMPILER_FLAG(-msse2 HAS_CXX_SSE2) - - if (HAS_SSE2) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2") - endif() - if (HAS_CXX_SSE2) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2") - endif() - - 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() - - if(NATIVE) - add_definitions(-march=native) - endif() - - if(CPP11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - if(CMAKE_COMPILER_IS_CLANG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - endif() - endif() -endif() -if(MINGW) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstackrealign") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstackrealign") -endif() - -####### added the fluid_decomposition - -if(SUPERNOVA) - add_library(${PROJECT}_supernova MODULE ${FILENAME}) - set_property(TARGET ${PROJECT}_supernova - PROPERTY COMPILE_DEFINITIONS SUPERNOVA) -endif() - -target_link_libraries (${PROJECT} "-framework Accelerate") +include(${CMAKE_CURRENT_LIST_DIR}/../../scripts/target_post.cmake) + +# add_custom_command( +# TARGET +# ${PROJECT} +# POST_BUILD +# COMMAND ${CMAKE_COMMAND} -E make_directory "../../release-packaging/${PROJECT}/plugins" +# COMMAND ${CMAKE_COMMAND} -E copy $ "../../release-packaging/${PROJECT}/plugins" +# ) +# +# target_include_directories( +# "${FLUID_DECOMP_DIR}" +# "${FLUID_DECOMP_DIR}/include" +# "${FLUID_DECOMP_DIR}/3rdparty" +# ) From 1b0cfb6f53d2d15007f0ba9822c2ba4525003b74 Mon Sep 17 00:00:00 2001 From: Owen Green Date: Sun, 26 Aug 2018 01:26:40 +0100 Subject: [PATCH 3/3] Update gitignore for moved plugins path --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 568f43e..b2c3581 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ build **/build/* **/.DS_Store -release-packaging/*/plugins +release-packaging/plugins