Added top level CMakeLists that builds all plugs, using targets from fluid_decomposition

Adjusted plugin CMakeLists and changed directory structure
Unified release packaging
nix
Owen Green 7 years ago
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…
Cancel
Save