|
|
|
|
@ -1,22 +1,29 @@
|
|
|
|
|
####### original SC Cmake file starts here
|
|
|
|
|
cmake_minimum_required(VERSION 3.3)
|
|
|
|
|
cmake_minimum_required(VERSION 3.11)
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
# Paths
|
|
|
|
|
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/release-packaging")
|
|
|
|
|
set(MAX_TARGET_NAMESPACE "" CACHE STRING "Optional namesapce to prepend to targets to prevent collision in super-builds")
|
|
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
set(CMAKE_CXX_STANDARD 14)
|
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
|
|
|
|
|
|
if(APPLE)
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -mavx -msse -msse2 -msse3 -msse4")
|
|
|
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -stdlib=libc++")
|
|
|
|
|
SET(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
|
|
|
|
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.7" CACHE STRING "Minimum OS X deployment version")
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic")
|
|
|
|
|
set(SC_PATH "" CACHE PATH "Path to the top of SuperCollider source tree")
|
|
|
|
|
if(NOT SC_PATH)
|
|
|
|
|
message(FATAL_ERROR "SuperCollider source path is not set")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
project (fluid_decomposition_supercollider LANGUAGES CXX)
|
|
|
|
|
set(FLUID_PATH "" CACHE PATH "Optional path to the Fluid Decomposition repo")
|
|
|
|
|
# set(FLUID_M_PATH "" CACHE PATH "Optional path to the Fluid fluid_manipulation repo")
|
|
|
|
|
|
|
|
|
|
if (APPLE)
|
|
|
|
|
set(CMAKE_OSX_ARCHITECTURES x86_64)
|
|
|
|
|
set(CMAKE_XCODE_GENERATE_SCHEME ON)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
option(SUPERNOVA "Build plugins for supernova" OFF)
|
|
|
|
|
################################################################################
|
|
|
|
|
# Main project
|
|
|
|
|
project (fluid_decomposition_supercollider LANGUAGES CXX)
|
|
|
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
|
|
|
set(CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY ON)
|
|
|
|
|
|
|
|
|
|
MACRO(SUBDIRLIST result curdir)
|
|
|
|
|
FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
|
|
|
|
|
@ -33,37 +40,16 @@ include(FetchContent)
|
|
|
|
|
|
|
|
|
|
set(FETCHCONTENT_QUIET FALSE)
|
|
|
|
|
|
|
|
|
|
if(DEFINED FLUID_PATH)
|
|
|
|
|
get_filename_component(FLUID_PATH ${FLUID_PATH} ABSOLUTE)
|
|
|
|
|
message(${FLUID_PATH})
|
|
|
|
|
FetchContent_Declare(
|
|
|
|
|
fluid_decomposition
|
|
|
|
|
# URL ${FLUID_PATH}
|
|
|
|
|
DOWNLOAD_COMMAND ""
|
|
|
|
|
SOURCE_DIR "${FLUID_PATH}/"
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
FetchContent_Declare(
|
|
|
|
|
fluid_decomposition
|
|
|
|
|
GIT_REPOSITORY https://bitbucket.org/flucoma/fluid_decomposition.git
|
|
|
|
|
GIT_PROGRESS TRUE
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(DEFINED FLUID_M_PATH)
|
|
|
|
|
get_filename_component(FLUID_M_PATH ${FLUID_M_PATH} ABSOLUTE)
|
|
|
|
|
FetchContent_Declare(
|
|
|
|
|
fluid_manipulation
|
|
|
|
|
# URL ${FLUID_M_PATH}
|
|
|
|
|
DOWNLOAD_COMMAND ""
|
|
|
|
|
SOURCE_DIR "${FLUID_M_PATH}/"
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
FetchContent_Declare(
|
|
|
|
|
fluid_manipulation
|
|
|
|
|
GIT_REPOSITORY https://bitbucket.org/flucoma/fluid_manipulation.git
|
|
|
|
|
GIT_PROGRESS TRUE
|
|
|
|
|
)
|
|
|
|
|
if(FLUID_PATH)
|
|
|
|
|
get_filename_component(
|
|
|
|
|
FETCHCONTENT_SOURCE_DIR_FLUID_DECOMPOSITION ${FLUID_PATH} ABSOLUTE
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
FetchContent_GetProperties(fluid_decomposition)
|
|
|
|
|
@ -72,37 +58,25 @@ if(NOT fluid_decomposition_POPULATED)
|
|
|
|
|
add_subdirectory(${fluid_decomposition_SOURCE_DIR} ${fluid_decomposition_BINARY_DIR})
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
FetchContent_GetProperties(fluid_manipulation)
|
|
|
|
|
if(NOT fluid_manipulation_POPULATED)
|
|
|
|
|
FetchContent_Populate(fluid_manipulation)
|
|
|
|
|
add_subdirectory(${fluid_manipulation_SOURCE_DIR} ${fluid_manipulation_BINARY_DIR})
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (NOT (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/release-packaging/AudioFiles/"))
|
|
|
|
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/release-packaging/AudioFiles/")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
file(COPY "${fluid_decomposition_SOURCE_DIR}/AudioFiles/" DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/release-packaging/AudioFiles/")
|
|
|
|
|
|
|
|
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/release-packaging/plugins")
|
|
|
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_SYSTEM_NAME}/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")
|
|
|
|
|
set(CMAKE_SHARED_MODULE_SUFFIX ".scx")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#needed for complaint-free static linking with GCC
|
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
|
target_compile_options( HISSTools_FFT PUBLIC -fPIC )
|
|
|
|
|
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
|
|
|
|
|
target_compile_options( HISSTools_FFT PUBLIC -fPIC )
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
|
|
add_library(FLUID_SC_WRAPPER INTERFACE)
|
|
|
|
|
target_sources(FLUID_SC_WRAPPER
|
|
|
|
|
INTERFACE
|
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/include/FluidSCWrapper.hpp"
|
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/include/SCBufferAdaptor.hpp"
|
|
|
|
|
target_sources(FLUID_SC_WRAPPER
|
|
|
|
|
INTERFACE
|
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/include/FluidSCWrapper.hpp"
|
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/include/SCBufferAdaptor.hpp"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
SUBDIRLIST(PROJECT_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
|
|
|
|
@ -112,3 +86,17 @@ foreach (project_dir ${PROJECT_DIRS})
|
|
|
|
|
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/${project_dir}")
|
|
|
|
|
endif ()
|
|
|
|
|
endforeach ()
|
|
|
|
|
|
|
|
|
|
#install bits.
|
|
|
|
|
|
|
|
|
|
set(SC_INSTALL_PREFIX "." CACHE PATH "Prefix for assembling PD packages")
|
|
|
|
|
set(FLUID_PACKAGE_NAME FluidCorpusManipulation CACHE STRING "Name for published package")
|
|
|
|
|
set(SC_PACKAGE_ROOT ${SC_INSTALL_PREFIX}/${FLUID_PACKAGE_NAME})
|
|
|
|
|
|
|
|
|
|
foreach(PACKAGE_DIRECTORY Classes;HelpSource;ignore)
|
|
|
|
|
install(DIRECTORY "release-packaging/${PACKAGE_DIRECTORY}" DESTINATION ${SC_PACKAGE_ROOT})
|
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
install(DIRECTORY CMAKE_LIBRARY_OUTPUT_DIRECTORY DESTINATION plugins PATTERN "*.ilk" EXCLUDE PATTERN "*.PDB" EXCLUDE)
|
|
|
|
|
install(DIRECTORY "${fluid_decomposition_SOURCE_DIR}/AudioFiles/" DESTINATION ./AudioFiles)
|
|
|
|
|
install(FILES QuickStart.md DESTINATION .)
|
|
|
|
|
|