Added top level CMakeLists that builds all plugs, using targets from fluid_decomposition
Adjusted plugin CMakeLists and changed directory structure Unified release packagingnix
parent
2d2e5b7fa7
commit
097f0a0f7e
@ -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=<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 ()
|
||||||
@ -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
|
||||||
|
"$<$<NOT:$<CONFIG:DEBUG>>:-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()
|
||||||
Loading…
Reference in New Issue