Update cmake files formatting
This commit is contained in:
parent
61c0791d71
commit
8b56f89688
11 changed files with 236 additions and 237 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
project(sfizz)
|
project(sfizz)
|
||||||
|
|
||||||
# Check SIMD
|
# Check SIMD
|
||||||
include (SfizzSIMDSourceFiles)
|
include(SfizzSIMDSourceFiles)
|
||||||
set(BENCHMARK_SIMD_SOURCES)
|
set(BENCHMARK_SIMD_SOURCES)
|
||||||
sfizz_add_simd_sources(BENCHMARK_SIMD_SOURCES "../src")
|
sfizz_add_simd_sources(BENCHMARK_SIMD_SOURCES "../src")
|
||||||
find_package(benchmark CONFIG REQUIRED)
|
find_package(benchmark CONFIG REQUIRED)
|
||||||
|
|
@ -28,8 +28,8 @@ macro(sfizz_add_benchmark TARGET)
|
||||||
PRIVATE absl::span absl::algorithm
|
PRIVATE absl::span absl::algorithm
|
||||||
PRIVATE benchmark::benchmark benchmark::benchmark_main
|
PRIVATE benchmark::benchmark benchmark::benchmark_main
|
||||||
PRIVATE bm_simd bm_ftz)
|
PRIVATE bm_simd bm_ftz)
|
||||||
if (LIBATOMIC_FOUND)
|
if(LIBATOMIC_FOUND)
|
||||||
target_link_libraries ("${TARGET}" PRIVATE atomic)
|
target_link_libraries("${TARGET}" PRIVATE atomic)
|
||||||
endif()
|
endif()
|
||||||
target_include_directories("${TARGET}" PRIVATE ../src/sfizz ../src/external)
|
target_include_directories("${TARGET}" PRIVATE ../src/sfizz ../src/external)
|
||||||
sfizz_enable_fast_math("${TARGET}")
|
sfizz_enable_fast_math("${TARGET}")
|
||||||
|
|
@ -72,7 +72,7 @@ target_link_libraries(bm_smoothers PRIVATE sfizz::sfizz)
|
||||||
sfizz_add_benchmark(bm_powerFollower BM_powerFollower.cpp)
|
sfizz_add_benchmark(bm_powerFollower BM_powerFollower.cpp)
|
||||||
target_link_libraries(bm_powerFollower PRIVATE sfizz::sfizz)
|
target_link_libraries(bm_powerFollower PRIVATE sfizz::sfizz)
|
||||||
|
|
||||||
if (TARGET sfizz-samplerate)
|
if(TARGET sfizz-samplerate)
|
||||||
sfizz_add_benchmark(bm_resample BM_resample.cpp ${BENCHMARK_SIMD_SOURCES})
|
sfizz_add_benchmark(bm_resample BM_resample.cpp ${BENCHMARK_SIMD_SOURCES})
|
||||||
target_link_libraries(bm_resample PRIVATE sfizz-samplerate sfizz-sndfile sfizz-cpuid)
|
target_link_libraries(bm_resample PRIVATE sfizz-samplerate sfizz-sndfile sfizz-cpuid)
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -140,14 +140,13 @@ add_dependencies(sfizz_benchmarks
|
||||||
bm_flacfile
|
bm_flacfile
|
||||||
bm_filterModulation
|
bm_filterModulation
|
||||||
bm_filterStereoMono
|
bm_filterStereoMono
|
||||||
bm_stringResonator
|
bm_stringResonator)
|
||||||
)
|
|
||||||
|
|
||||||
if (TARGET bm_resample)
|
if(TARGET bm_resample)
|
||||||
add_dependencies(sfizz_benchmarks bm_resample)
|
add_dependencies(sfizz_benchmarks bm_resample)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (SFIZZ_SYSTEM_PROCESSOR MATCHES "armv7l")
|
if(SFIZZ_SYSTEM_PROCESSOR MATCHES "armv7l")
|
||||||
sfizz_add_benchmark(bm_pan_arm BM_pan_arm.cpp ../src/sfizz/Panning.cpp)
|
sfizz_add_benchmark(bm_pan_arm BM_pan_arm.cpp ../src/sfizz/Panning.cpp)
|
||||||
target_link_libraries(bm_pan_arm PRIVATE sfizz-jsl)
|
target_link_libraries(bm_pan_arm PRIVATE sfizz-jsl)
|
||||||
add_dependencies(sfizz_benchmarks bm_pan_arm)
|
add_dependencies(sfizz_benchmarks bm_pan_arm)
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
project (sfizz)
|
project(sfizz)
|
||||||
|
|
||||||
if (SFIZZ_JACK)
|
if(SFIZZ_JACK)
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules(JACK "jack" REQUIRED)
|
pkg_check_modules(JACK "jack" REQUIRED)
|
||||||
link_directories (${JACK_LIBRARY_DIRS})
|
link_directories(${JACK_LIBRARY_DIRS})
|
||||||
|
|
||||||
add_executable (sfizz_jack MidiHelpers.h jack_client.cpp)
|
add_executable(sfizz_jack MidiHelpers.h jack_client.cpp)
|
||||||
target_include_directories (sfizz_jack PRIVATE ${JACK_INCLUDE_DIRS})
|
target_include_directories(sfizz_jack PRIVATE ${JACK_INCLUDE_DIRS})
|
||||||
target_link_libraries (sfizz_jack PRIVATE sfizz::sfizz absl::flags_parse ${JACK_LIBRARIES})
|
target_link_libraries(sfizz_jack PRIVATE sfizz::sfizz absl::flags_parse ${JACK_LIBRARIES})
|
||||||
sfizz_enable_lto_if_needed (sfizz_jack)
|
sfizz_enable_lto_if_needed(sfizz_jack)
|
||||||
install (TARGETS sfizz_jack DESTINATION ${CMAKE_INSTALL_BINDIR}
|
install(TARGETS sfizz_jack DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
COMPONENT "jack" OPTIONAL)
|
COMPONENT "jack" OPTIONAL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (SFIZZ_RENDER)
|
if(SFIZZ_RENDER)
|
||||||
add_library(sfizz-fmidi STATIC
|
add_library(sfizz-fmidi STATIC
|
||||||
"external/fmidi/sources/fmidi/fmidi.h"
|
"external/fmidi/sources/fmidi/fmidi.h"
|
||||||
"external/fmidi/sources/fmidi/fmidi_mini.cpp")
|
"external/fmidi/sources/fmidi/fmidi_mini.cpp")
|
||||||
|
|
@ -22,6 +22,6 @@ if (SFIZZ_RENDER)
|
||||||
|
|
||||||
add_executable(sfizz_render MidiHelpers.h sfizz_render.cpp)
|
add_executable(sfizz_render MidiHelpers.h sfizz_render.cpp)
|
||||||
target_link_libraries(sfizz_render PRIVATE sfizz::sfizz sfizz-fmidi sfizz-sndfile sfizz-cxxopts)
|
target_link_libraries(sfizz_render PRIVATE sfizz::sfizz sfizz-fmidi sfizz-sndfile sfizz-cxxopts)
|
||||||
sfizz_enable_lto_if_needed (sfizz_render)
|
sfizz_enable_lto_if_needed(sfizz_render)
|
||||||
install (TARGETS sfizz_render DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT "render" OPTIONAL)
|
install(TARGETS sfizz_render DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT "render" OPTIONAL)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,37 @@
|
||||||
# Added in CMake 3.9
|
# Added in CMake 3.9
|
||||||
|
|
||||||
if (CMAKE_VERSION VERSION_LESS 3.9)
|
if(CMAKE_VERSION VERSION_LESS 3.9)
|
||||||
message (WARNING "\nIPO checks are only available on CMake 3.9 and later.")
|
message(WARNING "\nIPO checks are only available on CMake 3.9 and later.")
|
||||||
|
|
||||||
set(ENABLE_LTO OFF CACHE BOOL "" FORCE)
|
set(ENABLE_LTO OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
function (SFIZZ_ENABLE_LTO_IF_NEEDED TARGET)
|
function(SFIZZ_ENABLE_LTO_IF_NEEDED TARGET)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include (CheckIPOSupported)
|
include(CheckIPOSupported)
|
||||||
check_ipo_supported (RESULT result OUTPUT output)
|
check_ipo_supported(RESULT result OUTPUT output)
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l)
|
if(CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l)
|
||||||
set(ENABLE_LTO OFF CACHE BOOL "" FORCE)
|
set(ENABLE_LTO OFF CACHE BOOL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (result AND ENABLE_LTO AND CMAKE_BUILD_TYPE STREQUAL "Release")
|
if(result AND ENABLE_LTO AND CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||||
message (STATUS "\nLTO enabled.")
|
message(STATUS "\nLTO enabled.")
|
||||||
else()
|
else()
|
||||||
if (${output})
|
if(${output})
|
||||||
message (WARNING "\nIPO disabled: ${output}")
|
message(WARNING "\nIPO disabled: ${output}")
|
||||||
else()
|
else()
|
||||||
message (WARNING "\nIPO was disabled or not in a Release build.")
|
message(WARNING "\nIPO was disabled or not in a Release build.")
|
||||||
endif()
|
endif()
|
||||||
set(ENABLE_LTO OFF CACHE BOOL "" FORCE)
|
set(ENABLE_LTO OFF CACHE BOOL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
function (SFIZZ_ENABLE_LTO_IF_NEEDED TARGET)
|
function(SFIZZ_ENABLE_LTO_IF_NEEDED TARGET)
|
||||||
if (${ENABLE_LTO})
|
if(${ENABLE_LTO})
|
||||||
message(STATUS "Enabling LTO on ${TARGET}")
|
message(STATUS "Enabling LTO on ${TARGET}")
|
||||||
set_property (TARGET ${TARGET} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
set_property(TARGET ${TARGET} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
# Configuration for this plugin
|
# Configuration for this plugin
|
||||||
# TODO: generate version from git
|
# TODO: generate version from git
|
||||||
set (LV2PLUGIN_VERSION_MINOR 6)
|
set(LV2PLUGIN_VERSION_MINOR 6)
|
||||||
set (LV2PLUGIN_VERSION_MICRO 0)
|
set(LV2PLUGIN_VERSION_MICRO 0)
|
||||||
set (LV2PLUGIN_NAME "sfizz")
|
set(LV2PLUGIN_NAME "sfizz")
|
||||||
set (LV2PLUGIN_COMMENT "SFZ sampler")
|
set(LV2PLUGIN_COMMENT "SFZ sampler")
|
||||||
set (LV2PLUGIN_URI "http://sfztools.github.io/sfizz")
|
set(LV2PLUGIN_URI "http://sfztools.github.io/sfizz")
|
||||||
set (LV2PLUGIN_REPOSITORY "https://github.com/sfztools/sfizz")
|
set(LV2PLUGIN_REPOSITORY "https://github.com/sfztools/sfizz")
|
||||||
set (LV2PLUGIN_AUTHOR "SFZTools")
|
set(LV2PLUGIN_AUTHOR "SFZTools")
|
||||||
set (LV2PLUGIN_EMAIL "paul@ferrand.cc")
|
set(LV2PLUGIN_EMAIL "paul@ferrand.cc")
|
||||||
if (SFIZZ_USE_VCPKG)
|
if(SFIZZ_USE_VCPKG)
|
||||||
set (LV2PLUGIN_SPDX_LICENSE_ID "LGPL-3.0-only")
|
set(LV2PLUGIN_SPDX_LICENSE_ID "LGPL-3.0-only")
|
||||||
else()
|
else()
|
||||||
set (LV2PLUGIN_SPDX_LICENSE_ID "ISC")
|
set(LV2PLUGIN_SPDX_LICENSE_ID "ISC")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SFIZZ_LV2_UI)
|
if(SFIZZ_LV2_UI)
|
||||||
|
|
@ -30,13 +30,13 @@ else()
|
||||||
set(LV2_UI_TYPE "X11UI")
|
set(LV2_UI_TYPE "X11UI")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (APPLE)
|
if(APPLE)
|
||||||
set (LV2PLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/LV2" CACHE STRING
|
set(LV2PLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/LV2" CACHE STRING
|
||||||
"Install destination for LV2 bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/LV2]")
|
"Install destination for LV2 bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/LV2]")
|
||||||
elseif (MSVC)
|
elseif(MSVC)
|
||||||
set (LV2PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lv2" CACHE STRING
|
set(LV2PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lv2" CACHE STRING
|
||||||
"Install destination for LV2 bundle [default: ${CMAKE_INSTALL_PREFIX}/lv2]")
|
"Install destination for LV2 bundle [default: ${CMAKE_INSTALL_PREFIX}/lv2]")
|
||||||
else()
|
else()
|
||||||
set (LV2PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/lv2" CACHE STRING
|
set(LV2PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/lv2" CACHE STRING
|
||||||
"Install destination for LV2 bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/lv2]")
|
"Install destination for LV2 bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/lv2]")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -6,26 +6,26 @@ set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ standard to be used")
|
||||||
set(CMAKE_C_STANDARD 99 CACHE STRING "C standard to be used")
|
set(CMAKE_C_STANDARD 99 CACHE STRING "C standard to be used")
|
||||||
|
|
||||||
# Export the compile_commands.json file
|
# Export the compile_commands.json file
|
||||||
set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
|
||||||
# Only install what's explicitely said
|
# Only install what's explicitely said
|
||||||
set (CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true)
|
set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true)
|
||||||
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
set (CMAKE_CXX_VISIBILITY_PRESET hidden)
|
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||||
set (CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
||||||
|
|
||||||
# Set Windows compatibility level to 7
|
# Set Windows compatibility level to 7
|
||||||
if (WIN32)
|
if(WIN32)
|
||||||
add_compile_definitions(_WIN32_WINNT=0x601)
|
add_compile_definitions(_WIN32_WINNT=0x601)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set macOS compatibility level
|
# Set macOS compatibility level
|
||||||
if (APPLE)
|
if(APPLE)
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9")
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Do not define macros `min` and `max`
|
# Do not define macros `min` and `max`
|
||||||
if (WIN32)
|
if(WIN32)
|
||||||
add_compile_definitions(NOMINMAX)
|
add_compile_definitions(NOMINMAX)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
@ -46,13 +46,13 @@ if(APPLE)
|
||||||
# and https://stackoverflow.com/a/21692023
|
# and https://stackoverflow.com/a/21692023
|
||||||
# Apparently this is not needed in Travis CI using addons
|
# Apparently this is not needed in Travis CI using addons
|
||||||
# but it is in Appveyor instead
|
# but it is in Appveyor instead
|
||||||
list (APPEND CMAKE_PREFIX_PATH /usr/local)
|
list(APPEND CMAKE_PREFIX_PATH /usr/local)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# The variable CMAKE_SYSTEM_PROCESSOR is incorrect on Visual studio...
|
# The variable CMAKE_SYSTEM_PROCESSOR is incorrect on Visual studio...
|
||||||
# see https://gitlab.kitware.com/cmake/cmake/issues/15170
|
# see https://gitlab.kitware.com/cmake/cmake/issues/15170
|
||||||
|
|
||||||
if (NOT SFIZZ_SYSTEM_PROCESSOR)
|
if(NOT SFIZZ_SYSTEM_PROCESSOR)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(SFIZZ_SYSTEM_PROCESSOR "${MSVC_CXX_ARCHITECTURE_ID}")
|
set(SFIZZ_SYSTEM_PROCESSOR "${MSVC_CXX_ARCHITECTURE_ID}")
|
||||||
else()
|
else()
|
||||||
|
|
@ -61,13 +61,13 @@ if (NOT SFIZZ_SYSTEM_PROCESSOR)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Add required flags for the builds
|
# Add required flags for the builds
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
gw_warn(-Wall -Wextra -Wno-multichar -Werror=return-type)
|
gw_warn(-Wall -Wextra -Wno-multichar -Werror=return-type)
|
||||||
if (SFIZZ_SYSTEM_PROCESSOR MATCHES "^(i.86|x86_64)$")
|
if(SFIZZ_SYSTEM_PROCESSOR MATCHES "^(i.86|x86_64)$")
|
||||||
add_compile_options(-msse2)
|
add_compile_options(-msse2)
|
||||||
elseif(SFIZZ_SYSTEM_PROCESSOR MATCHES "^(arm.*)$")
|
elseif(SFIZZ_SYSTEM_PROCESSOR MATCHES "^(arm.*)$")
|
||||||
add_compile_options(-mfpu=neon)
|
add_compile_options(-mfpu=neon)
|
||||||
if (NOT ANDROID)
|
if(NOT ANDROID)
|
||||||
add_compile_options(-mfloat-abi=hard)
|
add_compile_options(-mfloat-abi=hard)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -75,14 +75,14 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
if(SFIZZ_HAVE_FALIGNED_NEW)
|
if(SFIZZ_HAVE_FALIGNED_NEW)
|
||||||
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-faligned-new>)
|
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-faligned-new>)
|
||||||
endif()
|
endif()
|
||||||
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
add_compile_options(/Zc:__cplusplus)
|
add_compile_options(/Zc:__cplusplus)
|
||||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
function(sfizz_enable_fast_math NAME)
|
function(sfizz_enable_fast_math NAME)
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
target_compile_options("${NAME}" PRIVATE "-ffast-math")
|
target_compile_options("${NAME}" PRIVATE "-ffast-math")
|
||||||
elseif(MSVC)
|
elseif(MSVC)
|
||||||
target_compile_options("${NAME}" PRIVATE "/fp:fast")
|
target_compile_options("${NAME}" PRIVATE "/fp:fast")
|
||||||
|
|
@ -98,9 +98,9 @@ add_library(sfizz-cxxopts INTERFACE)
|
||||||
target_include_directories(sfizz-cxxopts INTERFACE "external/cxxopts")
|
target_include_directories(sfizz-cxxopts INTERFACE "external/cxxopts")
|
||||||
|
|
||||||
# The sndfile library
|
# The sndfile library
|
||||||
if (SFIZZ_USE_SNDFILE OR SFIZZ_DEMOS OR SFIZZ_BENCHMARKS OR SFIZZ_RENDER)
|
if(SFIZZ_USE_SNDFILE OR SFIZZ_DEMOS OR SFIZZ_BENCHMARKS OR SFIZZ_RENDER)
|
||||||
add_library(sfizz-sndfile INTERFACE)
|
add_library(sfizz-sndfile INTERFACE)
|
||||||
if (SFIZZ_USE_VCPKG OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
if(SFIZZ_USE_VCPKG OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||||
find_package(SndFile CONFIG REQUIRED)
|
find_package(SndFile CONFIG REQUIRED)
|
||||||
find_path(SNDFILE_INCLUDE_DIR "sndfile.hh")
|
find_path(SNDFILE_INCLUDE_DIR "sndfile.hh")
|
||||||
target_include_directories(sfizz-sndfile INTERFACE "${SNDFILE_INCLUDE_DIR}")
|
target_include_directories(sfizz-sndfile INTERFACE "${SNDFILE_INCLUDE_DIR}")
|
||||||
|
|
@ -109,7 +109,7 @@ if (SFIZZ_USE_SNDFILE OR SFIZZ_DEMOS OR SFIZZ_BENCHMARKS OR SFIZZ_RENDER)
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules(SNDFILE "sndfile" REQUIRED)
|
pkg_check_modules(SNDFILE "sndfile" REQUIRED)
|
||||||
target_include_directories(sfizz-sndfile INTERFACE ${SNDFILE_INCLUDE_DIRS})
|
target_include_directories(sfizz-sndfile INTERFACE ${SNDFILE_INCLUDE_DIRS})
|
||||||
if (SFIZZ_STATIC_DEPENDENCIES)
|
if(SFIZZ_STATIC_DEPENDENCIES)
|
||||||
target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_STATIC_LIBRARIES})
|
target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_STATIC_LIBRARIES})
|
||||||
else()
|
else()
|
||||||
target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_LIBRARIES})
|
target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_LIBRARIES})
|
||||||
|
|
@ -119,7 +119,7 @@ if (SFIZZ_USE_SNDFILE OR SFIZZ_DEMOS OR SFIZZ_BENCHMARKS OR SFIZZ_RENDER)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# The st_audiofile library
|
# The st_audiofile library
|
||||||
if (SFIZZ_USE_SNDFILE)
|
if(SFIZZ_USE_SNDFILE)
|
||||||
set(ST_AUDIO_FILE_USE_SNDFILE ON CACHE BOOL "" FORCE)
|
set(ST_AUDIO_FILE_USE_SNDFILE ON CACHE BOOL "" FORCE)
|
||||||
set(ST_AUDIO_FILE_EXTERNAL_SNDFILE "sfizz-sndfile" CACHE STRING "" FORCE)
|
set(ST_AUDIO_FILE_EXTERNAL_SNDFILE "sfizz-sndfile" CACHE STRING "" FORCE)
|
||||||
else()
|
else()
|
||||||
|
|
@ -131,7 +131,7 @@ add_subdirectory("external/st_audiofile" EXCLUDE_FROM_ALL)
|
||||||
# If we build with Clang, optionally use libc++. Enabled by default on Apple OS.
|
# If we build with Clang, optionally use libc++. Enabled by default on Apple OS.
|
||||||
cmake_dependent_option(USE_LIBCPP "Use libc++ with clang" "${APPLE}"
|
cmake_dependent_option(USE_LIBCPP "Use libc++ with clang" "${APPLE}"
|
||||||
"CMAKE_CXX_COMPILER_ID MATCHES Clang" OFF)
|
"CMAKE_CXX_COMPILER_ID MATCHES Clang" OFF)
|
||||||
if (USE_LIBCPP)
|
if(USE_LIBCPP)
|
||||||
add_compile_options(-stdlib=libc++)
|
add_compile_options(-stdlib=libc++)
|
||||||
# Presumably need the above for linking too, maybe other options missing as well
|
# Presumably need the above for linking too, maybe other options missing as well
|
||||||
add_link_options(-stdlib=libc++) # New command on CMake master, not in 3.12 release
|
add_link_options(-stdlib=libc++) # New command on CMake master, not in 3.12 release
|
||||||
|
|
@ -147,25 +147,25 @@ target_include_directories(sfizz-spline PUBLIC "src/external/spline")
|
||||||
add_library(sfizz-tunings STATIC "src/external/tunings/src/Tunings.cpp")
|
add_library(sfizz-tunings STATIC "src/external/tunings/src/Tunings.cpp")
|
||||||
target_include_directories(sfizz-tunings PUBLIC "src/external/tunings/include")
|
target_include_directories(sfizz-tunings PUBLIC "src/external/tunings/include")
|
||||||
|
|
||||||
include (CheckLibraryExists)
|
include(CheckLibraryExists)
|
||||||
add_library (sfizz-atomic INTERFACE)
|
add_library(sfizz-atomic INTERFACE)
|
||||||
if (UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic")
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic")
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c" "int main() { return 0; }")
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c" "int main() { return 0; }")
|
||||||
try_compile(SFIZZ_LINK_LIBATOMIC "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic"
|
try_compile(SFIZZ_LINK_LIBATOMIC "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic"
|
||||||
SOURCES "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c"
|
SOURCES "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c"
|
||||||
LINK_LIBRARIES "atomic")
|
LINK_LIBRARIES "atomic")
|
||||||
if (SFIZZ_LINK_LIBATOMIC)
|
if(SFIZZ_LINK_LIBATOMIC)
|
||||||
target_link_libraries (sfizz-atomic INTERFACE "atomic")
|
target_link_libraries(sfizz-atomic INTERFACE "atomic")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
set(SFIZZ_LINK_LIBATOMIC FALSE)
|
set(SFIZZ_LINK_LIBATOMIC FALSE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Don't show build information when building a different project
|
# Don't show build information when building a different project
|
||||||
function (show_build_info_if_needed)
|
function(show_build_info_if_needed)
|
||||||
if (CMAKE_PROJECT_NAME STREQUAL "sfizz")
|
if(CMAKE_PROJECT_NAME STREQUAL "sfizz")
|
||||||
message (STATUS "
|
message(STATUS "
|
||||||
Project name: ${PROJECT_NAME}
|
Project name: ${PROJECT_NAME}
|
||||||
Build type: ${CMAKE_BUILD_TYPE}
|
Build type: ${CMAKE_BUILD_TYPE}
|
||||||
Build processor: ${SFIZZ_SYSTEM_PROCESSOR}
|
Build processor: ${SFIZZ_SYSTEM_PROCESSOR}
|
||||||
|
|
@ -195,4 +195,4 @@ Compiler CXX min size flags: ${CMAKE_CXX_FLAGS_MINSIZEREL}
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
find_package (Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
macro(sfizz_add_simd_sources SOURCES_VAR PREFIX)
|
macro(sfizz_add_simd_sources SOURCES_VAR PREFIX)
|
||||||
# It needs a macro, otherwise the source properties cannot take effect.
|
# It needs a macro, otherwise the source properties cannot take effect.
|
||||||
|
|
||||||
list (APPEND ${SOURCES_VAR}
|
list(APPEND ${SOURCES_VAR}
|
||||||
${PREFIX}/sfizz/SIMDHelpers.cpp
|
${PREFIX}/sfizz/SIMDHelpers.cpp
|
||||||
${PREFIX}/sfizz/simd/HelpersNEON.cpp
|
${PREFIX}/sfizz/simd/HelpersNEON.cpp
|
||||||
${PREFIX}/sfizz/simd/HelpersSSE.cpp
|
${PREFIX}/sfizz/simd/HelpersSSE.cpp
|
||||||
|
|
@ -9,10 +9,10 @@ macro(sfizz_add_simd_sources SOURCES_VAR PREFIX)
|
||||||
|
|
||||||
# For CPU-dispatched X86 sources
|
# For CPU-dispatched X86 sources
|
||||||
# Always build them for all X86 targets.
|
# Always build them for all X86 targets.
|
||||||
if (SFIZZ_SYSTEM_PROCESSOR MATCHES "^(x86_64|amd64|AMD64|x64|X64|i.86|x86|X86)$")
|
if(SFIZZ_SYSTEM_PROCESSOR MATCHES "^(x86_64|amd64|AMD64|x64|X64|i.86|x86|X86)$")
|
||||||
# on GCC, it requires to set ISA support flags on individual files
|
# on GCC, it requires to set ISA support flags on individual files
|
||||||
# to be able to use the intrinsics
|
# to be able to use the intrinsics
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
set_source_files_properties(
|
set_source_files_properties(
|
||||||
${PREFIX}/sfizz/effects/impl/ResonantStringAVX.cpp
|
${PREFIX}/sfizz/effects/impl/ResonantStringAVX.cpp
|
||||||
${PREFIX}/sfizz/effects/impl/ResonantArrayAVX.cpp
|
${PREFIX}/sfizz/effects/impl/ResonantArrayAVX.cpp
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,12 @@ if(NOT TARGET uninstall)
|
||||||
add_custom_target(uninstall
|
add_custom_target(uninstall
|
||||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/MakeUninstall.cmake)
|
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/MakeUninstall.cmake)
|
||||||
|
|
||||||
if (SFIZZ_LV2 AND LV2PLUGIN_INSTALL_DIR)
|
if(SFIZZ_LV2 AND LV2PLUGIN_INSTALL_DIR)
|
||||||
add_custom_command(TARGET uninstall
|
add_custom_command(TARGET uninstall
|
||||||
COMMAND rm -rv "${LV2PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2")
|
COMMAND rm -rv "${LV2PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (SFIZZ_VST AND VSTPLUGIN_INSTALL_DIR)
|
if(SFIZZ_VST AND VSTPLUGIN_INSTALL_DIR)
|
||||||
add_custom_command(TARGET uninstall
|
add_custom_command(TARGET uninstall
|
||||||
COMMAND rm -rv "${VSTPLUGIN_INSTALL_DIR}/${PROJECT_NAME}.vst3")
|
COMMAND rm -rv "${VSTPLUGIN_INSTALL_DIR}/${PROJECT_NAME}.vst3")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,22 @@
|
||||||
set (VSTPLUGIN_NAME "sfizz")
|
set(VSTPLUGIN_NAME "sfizz")
|
||||||
set (VSTPLUGIN_VENDOR "Paul Ferrand")
|
set(VSTPLUGIN_VENDOR "Paul Ferrand")
|
||||||
set (VSTPLUGIN_URL "http://sfztools.github.io/sfizz")
|
set(VSTPLUGIN_URL "http://sfztools.github.io/sfizz")
|
||||||
set (VSTPLUGIN_EMAIL "paul@ferrand.cc")
|
set(VSTPLUGIN_EMAIL "paul@ferrand.cc")
|
||||||
|
|
||||||
if (APPLE)
|
if(APPLE)
|
||||||
set (VSTPLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/VST3" CACHE STRING
|
set(VSTPLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/VST3" CACHE STRING
|
||||||
"Install destination for VST bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/VST3]")
|
"Install destination for VST bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/VST3]")
|
||||||
set (AUPLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/Components" CACHE STRING
|
set(AUPLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/Components" CACHE STRING
|
||||||
"Install destination for AudioUnit bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/Components]")
|
"Install destination for AudioUnit bundle [default: $ENV{HOME}/Library/Audio/Plug-Ins/Components]")
|
||||||
elseif (MSVC)
|
elseif(MSVC)
|
||||||
set (VSTPLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/vst3" CACHE STRING
|
set(VSTPLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/vst3" CACHE STRING
|
||||||
"Install destination for VST bundle [default: ${CMAKE_INSTALL_PREFIX}/vst3]")
|
"Install destination for VST bundle [default: ${CMAKE_INSTALL_PREFIX}/vst3]")
|
||||||
else()
|
else()
|
||||||
set (VSTPLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/vst3" CACHE STRING
|
set(VSTPLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/vst3" CACHE STRING
|
||||||
"Install destination for VST bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/vst3]")
|
"Install destination for VST bundle [default: ${CMAKE_INSTALL_PREFIX}/lib/vst3]")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT VST3_SYSTEM_PROCESSOR)
|
if(NOT VST3_SYSTEM_PROCESSOR)
|
||||||
set(VST3_SYSTEM_PROCESSOR "${SFIZZ_SYSTEM_PROCESSOR}")
|
set(VST3_SYSTEM_PROCESSOR "${SFIZZ_SYSTEM_PROCESSOR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,85 +1,85 @@
|
||||||
set (LV2PLUGIN_PRJ_NAME "${PROJECT_NAME}_lv2")
|
set(LV2PLUGIN_PRJ_NAME "${PROJECT_NAME}_lv2")
|
||||||
|
|
||||||
# Set the build directory as <build_dir>/lv2/<plugin_name>.lv2/
|
# Set the build directory as <build_dir>/lv2/<plugin_name>.lv2/
|
||||||
set (PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
|
set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
|
||||||
|
|
||||||
# LV2 plugin specific settings
|
# LV2 plugin specific settings
|
||||||
include (LV2Config)
|
include(LV2Config)
|
||||||
|
|
||||||
# Keep non build turtle files in IDE
|
# Keep non build turtle files in IDE
|
||||||
set (LV2PLUGIN_TTL_SRC_FILES
|
set(LV2PLUGIN_TTL_SRC_FILES
|
||||||
manifest.ttl.in
|
manifest.ttl.in
|
||||||
${PROJECT_NAME}.ttl.in
|
${PROJECT_NAME}.ttl.in
|
||||||
)
|
)
|
||||||
if (SFIZZ_LV2_UI)
|
if(SFIZZ_LV2_UI)
|
||||||
list(APPEND LV2PLUGIN_TTL_SRC_FILES
|
list(APPEND LV2PLUGIN_TTL_SRC_FILES
|
||||||
${PROJECT_NAME}_ui.ttl.in)
|
${PROJECT_NAME}_ui.ttl.in)
|
||||||
endif()
|
endif()
|
||||||
source_group("Turtle Files" FILES
|
source_group("Turtle Files" FILES
|
||||||
${LV2PLUGIN_TTL_SRC_FILES}
|
${LV2PLUGIN_TTL_SRC_FILES}
|
||||||
)
|
)
|
||||||
add_library (${LV2PLUGIN_PRJ_NAME} MODULE
|
add_library(${LV2PLUGIN_PRJ_NAME} MODULE
|
||||||
${PROJECT_NAME}.c
|
${PROJECT_NAME}.c
|
||||||
atomic_compat.h
|
atomic_compat.h
|
||||||
${LV2PLUGIN_TTL_SRC_FILES})
|
${LV2PLUGIN_TTL_SRC_FILES})
|
||||||
target_link_libraries (${LV2PLUGIN_PRJ_NAME} ${PROJECT_NAME}::${PROJECT_NAME})
|
target_link_libraries(${LV2PLUGIN_PRJ_NAME} ${PROJECT_NAME}::${PROJECT_NAME})
|
||||||
|
|
||||||
if (SFIZZ_LV2_UI)
|
if(SFIZZ_LV2_UI)
|
||||||
add_library (${LV2PLUGIN_PRJ_NAME}_ui MODULE
|
add_library(${LV2PLUGIN_PRJ_NAME}_ui MODULE
|
||||||
${PROJECT_NAME}_ui.cpp
|
${PROJECT_NAME}_ui.cpp
|
||||||
vstgui_helpers.h
|
vstgui_helpers.h
|
||||||
vstgui_helpers.cpp)
|
vstgui_helpers.cpp)
|
||||||
target_link_libraries (${LV2PLUGIN_PRJ_NAME}_ui sfizz_editor sfizz-vstgui)
|
target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui sfizz_editor sfizz-vstgui)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Explicitely strip all symbols on Linux but lv2_descriptor()
|
# Explicitely strip all symbols on Linux but lv2_descriptor()
|
||||||
# MacOS linker does not support this apparently https://bugs.webkit.org/show_bug.cgi?id=144555
|
# MacOS linker does not support this apparently https://bugs.webkit.org/show_bug.cgi?id=144555
|
||||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
file(COPY lv2.version DESTINATION ${CMAKE_BINARY_DIR}/lv2)
|
file(COPY lv2.version DESTINATION ${CMAKE_BINARY_DIR}/lv2)
|
||||||
target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,--version-script=lv2.version")
|
target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,--version-script=lv2.version")
|
||||||
# target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,-u,lv2_descriptor")
|
# target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,-u,lv2_descriptor")
|
||||||
if (SFIZZ_LV2_UI)
|
if(SFIZZ_LV2_UI)
|
||||||
file(COPY lv2ui.version DESTINATION ${CMAKE_BINARY_DIR}/lv2)
|
file(COPY lv2ui.version DESTINATION ${CMAKE_BINARY_DIR}/lv2)
|
||||||
target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,--version-script=lv2ui.version")
|
target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,--version-script=lv2ui.version")
|
||||||
# target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,-u,lv2ui_descriptor")
|
# target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,-u,lv2ui_descriptor")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE . external/ardour)
|
target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE . external/ardour)
|
||||||
sfizz_enable_lto_if_needed (${LV2PLUGIN_PRJ_NAME})
|
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME})
|
||||||
if (MINGW)
|
if(MINGW)
|
||||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||||
endif()
|
endif()
|
||||||
if (SFIZZ_LV2_UI)
|
if(SFIZZ_LV2_UI)
|
||||||
target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour)
|
target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour)
|
||||||
sfizz_enable_lto_if_needed (${LV2PLUGIN_PRJ_NAME}_ui)
|
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME}_ui)
|
||||||
if (MINGW)
|
if(MINGW)
|
||||||
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static")
|
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Remove the "lib" prefix, rename the target name and build it in the .lv build dir
|
# Remove the "lib" prefix, rename the target name and build it in the .lv build dir
|
||||||
# <build_dir>/lv2/<plugin_name>_lv2.<ext> to
|
# <build_dir>/lv2/<plugin_name>_lv2.<ext> to
|
||||||
# <build_dir>/lv2/<plugin_name>.lv2/<plugin_name>.<ext>
|
# <build_dir>/lv2/<plugin_name>.lv2/<plugin_name>.<ext>
|
||||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES PREFIX "")
|
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES PREFIX "")
|
||||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
|
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
|
||||||
|
|
||||||
if (SFIZZ_LV2_UI)
|
if(SFIZZ_LV2_UI)
|
||||||
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES PREFIX "")
|
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES PREFIX "")
|
||||||
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_ui")
|
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_ui")
|
||||||
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
|
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Generate *.ttl files from *.in sources,
|
# Generate *.ttl files from *.in sources,
|
||||||
# create the destination directory if it doesn't exists and copy needed files
|
# create the destination directory if it doesn't exists and copy needed files
|
||||||
file (MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
|
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||||
configure_file (manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl)
|
configure_file(manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl)
|
||||||
configure_file (${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl)
|
configure_file(${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl)
|
||||||
if (SFIZZ_LV2_UI)
|
if(SFIZZ_LV2_UI)
|
||||||
configure_file (${PROJECT_NAME}_ui.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_ui.ttl)
|
configure_file(${PROJECT_NAME}_ui.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_ui.ttl)
|
||||||
endif()
|
endif()
|
||||||
configure_file (LICENSE.md.in ${PROJECT_BINARY_DIR}/LICENSE.md)
|
configure_file(LICENSE.md.in ${PROJECT_BINARY_DIR}/LICENSE.md)
|
||||||
if (SFIZZ_USE_VCPKG OR SFIZZ_STATIC_DEPENDENCIES OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
if(SFIZZ_USE_VCPKG OR SFIZZ_STATIC_DEPENDENCIES OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||||
file(COPY "lgpl-3.0.txt" DESTINATION ${PROJECT_BINARY_DIR})
|
file(COPY "lgpl-3.0.txt" DESTINATION ${PROJECT_BINARY_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
@ -90,13 +90,13 @@ set(LV2_RESOURCES
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
|
||||||
foreach(res ${LV2_RESOURCES})
|
foreach(res ${LV2_RESOURCES})
|
||||||
file (COPY "${CMAKE_CURRENT_SOURCE_DIR}/resources/${res}"
|
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/resources/${res}"
|
||||||
DESTINATION "${PROJECT_BINARY_DIR}/Contents/Resources")
|
DESTINATION "${PROJECT_BINARY_DIR}/Contents/Resources")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Copy editor resources
|
# Copy editor resources
|
||||||
if (SFIZZ_LV2_UI)
|
if(SFIZZ_LV2_UI)
|
||||||
execute_process (
|
execute_process(
|
||||||
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
|
||||||
copy_editor_resources(
|
copy_editor_resources(
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
||||||
|
|
@ -104,7 +104,7 @@ if (SFIZZ_LV2_UI)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
if (NOT MSVC)
|
if(NOT MSVC)
|
||||||
install(DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2PLUGIN_INSTALL_DIR}
|
install(DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2PLUGIN_INSTALL_DIR}
|
||||||
COMPONENT "lv2")
|
COMPONENT "lv2")
|
||||||
bundle_dylibs(lv2
|
bundle_dylibs(lv2
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
include (GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
add_subdirectory(external/kiss_fft)
|
add_subdirectory(external/kiss_fft)
|
||||||
add_subdirectory(external/cpuid)
|
add_subdirectory(external/cpuid)
|
||||||
|
|
||||||
set (FAUST_FILES
|
set(FAUST_FILES
|
||||||
sfizz/dsp/filters/filters_modulable.dsp
|
sfizz/dsp/filters/filters_modulable.dsp
|
||||||
sfizz/dsp/filters/rbj_filters.dsp
|
sfizz/dsp/filters/rbj_filters.dsp
|
||||||
sfizz/dsp/filters/sallenkey_modulable.dsp
|
sfizz/dsp/filters/sallenkey_modulable.dsp
|
||||||
|
|
@ -14,9 +14,9 @@ set (FAUST_FILES
|
||||||
sfizz/effects/dsp/gate.dsp
|
sfizz/effects/dsp/gate.dsp
|
||||||
sfizz/effects/dsp/disto_stage.dsp
|
sfizz/effects/dsp/disto_stage.dsp
|
||||||
sfizz/effects/dsp/fverb.dsp)
|
sfizz/effects/dsp/fverb.dsp)
|
||||||
source_group ("Faust Files" FILES ${FAUST_FILES})
|
source_group("Faust Files" FILES ${FAUST_FILES})
|
||||||
|
|
||||||
set (SFIZZ_HEADERS
|
set(SFIZZ_HEADERS
|
||||||
sfizz/ADSREnvelope.h
|
sfizz/ADSREnvelope.h
|
||||||
sfizz/AudioBuffer.h
|
sfizz/AudioBuffer.h
|
||||||
sfizz/AudioReader.h
|
sfizz/AudioReader.h
|
||||||
|
|
@ -118,7 +118,7 @@ set (SFIZZ_HEADERS
|
||||||
sfizz.h
|
sfizz.h
|
||||||
sfizz.hpp)
|
sfizz.hpp)
|
||||||
|
|
||||||
set (SFIZZ_SOURCES
|
set(SFIZZ_SOURCES
|
||||||
sfizz/Synth.cpp
|
sfizz/Synth.cpp
|
||||||
sfizz/FileId.cpp
|
sfizz/FileId.cpp
|
||||||
sfizz/FilePool.cpp
|
sfizz/FilePool.cpp
|
||||||
|
|
@ -184,11 +184,11 @@ set (SFIZZ_SOURCES
|
||||||
sfizz/effects/impl/ResonantArraySSE.cpp
|
sfizz/effects/impl/ResonantArraySSE.cpp
|
||||||
sfizz/effects/impl/ResonantArrayAVX.cpp)
|
sfizz/effects/impl/ResonantArrayAVX.cpp)
|
||||||
|
|
||||||
include (SfizzSIMDSourceFiles)
|
include(SfizzSIMDSourceFiles)
|
||||||
sfizz_add_simd_sources (SFIZZ_SOURCES ".")
|
sfizz_add_simd_sources(SFIZZ_SOURCES ".")
|
||||||
|
|
||||||
# Parser core library
|
# Parser core library
|
||||||
set (SFIZZ_PARSER_HEADERS
|
set(SFIZZ_PARSER_HEADERS
|
||||||
sfizz/Defaults.h
|
sfizz/Defaults.h
|
||||||
sfizz/LeakDetector.h
|
sfizz/LeakDetector.h
|
||||||
sfizz/Range.h
|
sfizz/Range.h
|
||||||
|
|
@ -201,7 +201,7 @@ set (SFIZZ_PARSER_HEADERS
|
||||||
sfizz/SfzHelpers.h
|
sfizz/SfzHelpers.h
|
||||||
sfizz/StringViewHelpers.h)
|
sfizz/StringViewHelpers.h)
|
||||||
|
|
||||||
set (SFIZZ_PARSER_SOURCES
|
set(SFIZZ_PARSER_SOURCES
|
||||||
sfizz/Parser.cpp
|
sfizz/Parser.cpp
|
||||||
sfizz/Opcode.cpp
|
sfizz/Opcode.cpp
|
||||||
sfizz/OpcodeCleanup.cpp
|
sfizz/OpcodeCleanup.cpp
|
||||||
|
|
@ -209,94 +209,94 @@ set (SFIZZ_PARSER_SOURCES
|
||||||
sfizz/parser/Parser.cpp
|
sfizz/parser/Parser.cpp
|
||||||
sfizz/parser/ParserPrivate.cpp)
|
sfizz/parser/ParserPrivate.cpp)
|
||||||
|
|
||||||
set (SFIZZ_PARSER_OTHER sfizz/OpcodeCleanup.re)
|
set(SFIZZ_PARSER_OTHER sfizz/OpcodeCleanup.re)
|
||||||
source_group ("Other Files" FILES ${SFIZZ_PARSER_OTHER})
|
source_group("Other Files" FILES ${SFIZZ_PARSER_OTHER})
|
||||||
|
|
||||||
# Sfizz parser library
|
# Sfizz parser library
|
||||||
add_library (sfizz_parser STATIC)
|
add_library(sfizz_parser STATIC)
|
||||||
target_sources (sfizz_parser PRIVATE
|
target_sources(sfizz_parser PRIVATE
|
||||||
${SFIZZ_PARSER_HEADERS} ${SFIZZ_PARSER_SOURCES} ${SFIZZ_PARSER_OTHER})
|
${SFIZZ_PARSER_HEADERS} ${SFIZZ_PARSER_SOURCES} ${SFIZZ_PARSER_OTHER})
|
||||||
target_include_directories (sfizz_parser PUBLIC sfizz)
|
target_include_directories(sfizz_parser PUBLIC sfizz)
|
||||||
target_include_directories (sfizz_parser PUBLIC external)
|
target_include_directories(sfizz_parser PUBLIC external)
|
||||||
target_link_libraries (sfizz_parser PUBLIC absl::strings PRIVATE absl::flat_hash_map)
|
target_link_libraries(sfizz_parser PUBLIC absl::strings PRIVATE absl::flat_hash_map)
|
||||||
|
|
||||||
# OSC messaging library
|
# OSC messaging library
|
||||||
set (SFIZZ_MESSAGING_HEADERS
|
set(SFIZZ_MESSAGING_HEADERS
|
||||||
sfizz/Messaging.h
|
sfizz/Messaging.h
|
||||||
sfizz/Messaging.hpp
|
sfizz/Messaging.hpp
|
||||||
sfizz_message.h)
|
sfizz_message.h)
|
||||||
|
|
||||||
set (SFIZZ_MESSAGING_SOURCES
|
set(SFIZZ_MESSAGING_SOURCES
|
||||||
sfizz/Messaging.cpp)
|
sfizz/Messaging.cpp)
|
||||||
|
|
||||||
add_library (sfizz_messaging STATIC)
|
add_library(sfizz_messaging STATIC)
|
||||||
target_sources (sfizz_messaging PRIVATE
|
target_sources(sfizz_messaging PRIVATE
|
||||||
${SFIZZ_MESSAGING_HEADERS} ${SFIZZ_MESSAGING_SOURCES})
|
${SFIZZ_MESSAGING_HEADERS} ${SFIZZ_MESSAGING_SOURCES})
|
||||||
target_include_directories (sfizz_messaging PUBLIC ".")
|
target_include_directories(sfizz_messaging PUBLIC ".")
|
||||||
target_link_libraries (sfizz_messaging PUBLIC absl::strings)
|
target_link_libraries(sfizz_messaging PUBLIC absl::strings)
|
||||||
|
|
||||||
# Sfizz static library
|
# Sfizz static library
|
||||||
add_library(sfizz_static STATIC)
|
add_library(sfizz_static STATIC)
|
||||||
target_sources(sfizz_static PRIVATE
|
target_sources(sfizz_static PRIVATE
|
||||||
${SFIZZ_HEADERS} ${SFIZZ_SOURCES} ${FAUST_FILES} sfizz/sfizz_wrapper.cpp sfizz/sfizz.cpp)
|
${SFIZZ_HEADERS} ${SFIZZ_SOURCES} ${FAUST_FILES} sfizz/sfizz_wrapper.cpp sfizz/sfizz.cpp)
|
||||||
target_include_directories (sfizz_static PUBLIC .)
|
target_include_directories(sfizz_static PUBLIC .)
|
||||||
target_include_directories (sfizz_static PUBLIC external)
|
target_include_directories(sfizz_static PUBLIC external)
|
||||||
target_link_libraries (sfizz_static PUBLIC absl::strings absl::span)
|
target_link_libraries(sfizz_static PUBLIC absl::strings absl::span)
|
||||||
target_link_libraries (sfizz_static PRIVATE sfizz_parser sfizz_messaging absl::flat_hash_map Threads::Threads st_audiofile sfizz-pugixml sfizz-spline sfizz-tunings sfizz-kissfft sfizz-cpuid sfizz-jsl sfizz-atomic)
|
target_link_libraries(sfizz_static PRIVATE sfizz_parser sfizz_messaging absl::flat_hash_map Threads::Threads st_audiofile sfizz-pugixml sfizz-spline sfizz-tunings sfizz-kissfft sfizz-cpuid sfizz-jsl sfizz-atomic)
|
||||||
set_target_properties (sfizz_static PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp;sfizz_message.h")
|
set_target_properties(sfizz_static PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp;sfizz_message.h")
|
||||||
if(SFIZZ_USE_SNDFILE)
|
if(SFIZZ_USE_SNDFILE)
|
||||||
target_compile_definitions (sfizz_static PUBLIC SFIZZ_USE_SNDFILE=1)
|
target_compile_definitions(sfizz_static PUBLIC SFIZZ_USE_SNDFILE=1)
|
||||||
target_link_libraries (sfizz_static PUBLIC st_audiofile)
|
target_link_libraries(sfizz_static PUBLIC st_audiofile)
|
||||||
endif()
|
endif()
|
||||||
if (WIN32)
|
if(WIN32)
|
||||||
target_compile_definitions (sfizz_static PRIVATE _USE_MATH_DEFINES)
|
target_compile_definitions(sfizz_static PRIVATE _USE_MATH_DEFINES)
|
||||||
endif()
|
endif()
|
||||||
if (SFIZZ_RELEASE_ASSERTS)
|
if(SFIZZ_RELEASE_ASSERTS)
|
||||||
target_compile_definitions (sfizz_static PRIVATE "SFIZZ_ENABLE_RELEASE_ASSERT=1")
|
target_compile_definitions(sfizz_static PRIVATE "SFIZZ_ENABLE_RELEASE_ASSERT=1")
|
||||||
endif()
|
endif()
|
||||||
sfizz_enable_fast_math(sfizz_static)
|
sfizz_enable_fast_math(sfizz_static)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
include(VSTConfig)
|
include(VSTConfig)
|
||||||
configure_file (${PROJECT_SOURCE_DIR}/scripts/innosetup.iss.in ${PROJECT_BINARY_DIR}/innosetup.iss @ONLY)
|
configure_file(${PROJECT_SOURCE_DIR}/scripts/innosetup.iss.in ${PROJECT_BINARY_DIR}/innosetup.iss @ONLY)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
configure_file (${PROJECT_SOURCE_DIR}/scripts/doxygen/Doxyfile.in ${PROJECT_SOURCE_DIR}/Doxyfile @ONLY)
|
configure_file(${PROJECT_SOURCE_DIR}/scripts/doxygen/Doxyfile.in ${PROJECT_SOURCE_DIR}/Doxyfile @ONLY)
|
||||||
|
|
||||||
add_library (sfizz::parser ALIAS sfizz_parser)
|
add_library(sfizz::parser ALIAS sfizz_parser)
|
||||||
add_library (sfizz::sfizz ALIAS sfizz_static)
|
add_library(sfizz::sfizz ALIAS sfizz_static)
|
||||||
|
|
||||||
# Shared library and installation target
|
# Shared library and installation target
|
||||||
if (SFIZZ_SHARED)
|
if(SFIZZ_SHARED)
|
||||||
add_library (sfizz_shared SHARED)
|
add_library(sfizz_shared SHARED)
|
||||||
target_sources(sfizz_shared PRIVATE
|
target_sources(sfizz_shared PRIVATE
|
||||||
${SFIZZ_HEADERS} ${SFIZZ_SOURCES} ${FAUST_FILES} sfizz/sfizz_wrapper.cpp sfizz/sfizz.cpp)
|
${SFIZZ_HEADERS} ${SFIZZ_SOURCES} ${FAUST_FILES} sfizz/sfizz_wrapper.cpp sfizz/sfizz.cpp)
|
||||||
target_include_directories (sfizz_shared PRIVATE .)
|
target_include_directories(sfizz_shared PRIVATE .)
|
||||||
target_include_directories (sfizz_shared PRIVATE external)
|
target_include_directories(sfizz_shared PRIVATE external)
|
||||||
target_link_libraries (sfizz_shared PRIVATE absl::strings absl::span sfizz_parser sfizz_messaging absl::flat_hash_map Threads::Threads st_audiofile sfizz-pugixml sfizz-spline sfizz-tunings sfizz-kissfft sfizz-cpuid sfizz-jsl sfizz-atomic)
|
target_link_libraries(sfizz_shared PRIVATE absl::strings absl::span sfizz_parser sfizz_messaging absl::flat_hash_map Threads::Threads st_audiofile sfizz-pugixml sfizz-spline sfizz-tunings sfizz-kissfft sfizz-cpuid sfizz-jsl sfizz-atomic)
|
||||||
if(SFIZZ_USE_SNDFILE)
|
if(SFIZZ_USE_SNDFILE)
|
||||||
target_compile_definitions (sfizz_shared PUBLIC SFIZZ_USE_SNDFILE=1)
|
target_compile_definitions(sfizz_shared PUBLIC SFIZZ_USE_SNDFILE=1)
|
||||||
target_link_libraries (sfizz_shared PUBLIC st_audiofile)
|
target_link_libraries(sfizz_shared PUBLIC st_audiofile)
|
||||||
endif()
|
endif()
|
||||||
if (WIN32)
|
if(WIN32)
|
||||||
target_compile_definitions (sfizz_shared PRIVATE _USE_MATH_DEFINES)
|
target_compile_definitions(sfizz_shared PRIVATE _USE_MATH_DEFINES)
|
||||||
endif()
|
endif()
|
||||||
if (SFIZZ_RELEASE_ASSERTS)
|
if(SFIZZ_RELEASE_ASSERTS)
|
||||||
target_compile_definitions (sfizz_shared PRIVATE "SFIZZ_ENABLE_RELEASE_ASSERT=1")
|
target_compile_definitions(sfizz_shared PRIVATE "SFIZZ_ENABLE_RELEASE_ASSERT=1")
|
||||||
endif()
|
endif()
|
||||||
target_compile_definitions(sfizz_shared PRIVATE SFIZZ_EXPORT_SYMBOLS)
|
target_compile_definitions(sfizz_shared PRIVATE SFIZZ_EXPORT_SYMBOLS)
|
||||||
set_target_properties (sfizz_shared PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp;sfizz_message.h")
|
set_target_properties(sfizz_shared PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp;sfizz_message.h")
|
||||||
sfizz_enable_lto_if_needed(sfizz_shared)
|
sfizz_enable_lto_if_needed(sfizz_shared)
|
||||||
sfizz_enable_fast_math(sfizz_shared)
|
sfizz_enable_fast_math(sfizz_shared)
|
||||||
|
|
||||||
if (NOT MSVC)
|
if(NOT MSVC)
|
||||||
install (TARGETS sfizz_shared
|
install(TARGETS sfizz_shared
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT "runtime"
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT "runtime"
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT "runtime"
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT "runtime"
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT "development"
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT "development"
|
||||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT "development")
|
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT "development")
|
||||||
configure_file (${PROJECT_SOURCE_DIR}/scripts/sfizz.pc.in sfizz.pc @ONLY)
|
configure_file(${PROJECT_SOURCE_DIR}/scripts/sfizz.pc.in sfizz.pc @ONLY)
|
||||||
install (FILES ${CMAKE_BINARY_DIR}/src/sfizz.pc
|
install(FILES ${CMAKE_BINARY_DIR}/src/sfizz.pc
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||||
COMPONENT "development")
|
COMPONENT "development")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
set (VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
|
set(VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
|
||||||
set (VSTPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
|
set(VSTPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
|
||||||
|
|
||||||
set (VST3SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK")
|
set(VST3SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK")
|
||||||
#set (AUWRAPPER_BASEDIR "${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper")
|
#set(AUWRAPPER_BASEDIR "${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper")
|
||||||
set (AUWRAPPER_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/sfzt_auwrapper")
|
set(AUWRAPPER_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/sfzt_auwrapper")
|
||||||
|
|
||||||
# VST plugin specific settings
|
# VST plugin specific settings
|
||||||
include (VSTConfig)
|
include(VSTConfig)
|
||||||
|
|
||||||
configure_file (VstPluginDefs.h.in "${CMAKE_CURRENT_BINARY_DIR}/VstPluginDefs.h")
|
configure_file(VstPluginDefs.h.in "${CMAKE_CURRENT_BINARY_DIR}/VstPluginDefs.h")
|
||||||
|
|
||||||
# Build VST3 SDK
|
# Build VST3 SDK
|
||||||
include("cmake/Vst3.cmake")
|
include("cmake/Vst3.cmake")
|
||||||
|
|
@ -71,24 +71,24 @@ plugin_add_vst3sdk(${VSTPLUGIN_PRJ_NAME})
|
||||||
plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME})
|
plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME})
|
||||||
|
|
||||||
# Add the ring buffer
|
# Add the ring buffer
|
||||||
set (RINGBUFFER_HEADERS
|
set(RINGBUFFER_HEADERS
|
||||||
"external/ring_buffer/ring_buffer/ring_buffer.h"
|
"external/ring_buffer/ring_buffer/ring_buffer.h"
|
||||||
"external/ring_buffer/ring_buffer/ring_buffer.tcc")
|
"external/ring_buffer/ring_buffer/ring_buffer.tcc")
|
||||||
add_library(sfizz_ring_buffer STATIC
|
add_library(sfizz_ring_buffer STATIC
|
||||||
"external/ring_buffer/ring_buffer/ring_buffer.cpp"
|
"external/ring_buffer/ring_buffer/ring_buffer.cpp"
|
||||||
${RINGBUFFER_HEADERS})
|
${RINGBUFFER_HEADERS})
|
||||||
source_group ("Header Files" FILES ${RINGBUFFER_HEADERS})
|
source_group("Header Files" FILES ${RINGBUFFER_HEADERS})
|
||||||
target_include_directories(sfizz_ring_buffer INTERFACE "external/ring_buffer")
|
target_include_directories(sfizz_ring_buffer INTERFACE "external/ring_buffer")
|
||||||
|
|
||||||
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE sfizz_ring_buffer)
|
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE sfizz_ring_buffer)
|
||||||
|
|
||||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE
|
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE
|
||||||
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version")
|
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version")
|
||||||
endif()
|
endif()
|
||||||
sfizz_enable_lto_if_needed (${VSTPLUGIN_PRJ_NAME})
|
sfizz_enable_lto_if_needed(${VSTPLUGIN_PRJ_NAME})
|
||||||
if (MINGW)
|
if(MINGW)
|
||||||
set_target_properties (${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Link system dependencies
|
# Link system dependencies
|
||||||
|
|
@ -102,8 +102,8 @@ else()
|
||||||
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE ${GLIB_LIBRARIES})
|
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE ${GLIB_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Create the bundle (see "VST 3 Locations / Format")
|
# Create the bundle(see "VST 3 Locations / Format")
|
||||||
execute_process (
|
execute_process(
|
||||||
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources")
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources")
|
||||||
copy_editor_resources(
|
copy_editor_resources(
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
||||||
|
|
@ -140,7 +140,7 @@ else()
|
||||||
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}")
|
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
gw_target_warn(${VSTPLUGIN_PRJ_NAME} PRIVATE
|
gw_target_warn(${VSTPLUGIN_PRJ_NAME} PRIVATE
|
||||||
"-Wno-extra"
|
"-Wno-extra"
|
||||||
"-Wno-multichar"
|
"-Wno-multichar"
|
||||||
|
|
@ -154,12 +154,12 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# To help debugging the link only
|
# To help debugging the link only
|
||||||
if (FALSE)
|
if(FALSE)
|
||||||
target_link_options(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined")
|
target_link_options(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
if (NOT MSVC)
|
if(NOT MSVC)
|
||||||
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}"
|
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}"
|
||||||
DESTINATION "${VSTPLUGIN_INSTALL_DIR}"
|
DESTINATION "${VSTPLUGIN_INSTALL_DIR}"
|
||||||
COMPONENT "vst")
|
COMPONENT "vst")
|
||||||
|
|
@ -261,7 +261,7 @@ elseif(SFIZZ_AU)
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/aucocoaclassprefix.h"
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/aucocoaclassprefix.h"
|
||||||
"#define SMTG_AU_NAMESPACE SMTGAUCocoa${SFIZZ_AU_CLASS_PREFIX_NUMBER}_")
|
"#define SMTG_AU_NAMESPACE SMTGAUCocoa${SFIZZ_AU_CLASS_PREFIX_NUMBER}_")
|
||||||
|
|
||||||
sfizz_enable_lto_if_needed (${AUPLUGIN_PRJ_NAME})
|
sfizz_enable_lto_if_needed(${AUPLUGIN_PRJ_NAME})
|
||||||
|
|
||||||
# Create the bundle
|
# Create the bundle
|
||||||
execute_process(
|
execute_process(
|
||||||
|
|
@ -293,7 +293,7 @@ elseif(SFIZZ_AU)
|
||||||
DESTINATION "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License")
|
DESTINATION "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License")
|
||||||
|
|
||||||
# Add the resource fork
|
# Add the resource fork
|
||||||
if (FALSE)
|
if(FALSE)
|
||||||
execute_process(COMMAND "xcrun" "--find" "Rez"
|
execute_process(COMMAND "xcrun" "--find" "Rez"
|
||||||
OUTPUT_VARIABLE OSX_REZ_COMMAND OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_VARIABLE OSX_REZ_COMMAND OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
|
||||||
|
|
@ -316,7 +316,7 @@ elseif(SFIZZ_AU)
|
||||||
"${AUWRAPPER_BASEDIR}/auresource.r")
|
"${AUWRAPPER_BASEDIR}/auresource.r")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
gw_target_warn(${AUPLUGIN_PRJ_NAME} PRIVATE
|
gw_target_warn(${AUPLUGIN_PRJ_NAME} PRIVATE
|
||||||
"-Wno-extra"
|
"-Wno-extra"
|
||||||
"-Wno-multichar"
|
"-Wno-multichar"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue