Update cmake files formatting

This commit is contained in:
Jean Pierre Cimalando 2020-12-14 07:49:02 +01:00
parent 61c0791d71
commit 8b56f89688
11 changed files with 236 additions and 237 deletions

View file

@ -1,7 +1,7 @@
project(sfizz)
# Check SIMD
include (SfizzSIMDSourceFiles)
include(SfizzSIMDSourceFiles)
set(BENCHMARK_SIMD_SOURCES)
sfizz_add_simd_sources(BENCHMARK_SIMD_SOURCES "../src")
find_package(benchmark CONFIG REQUIRED)
@ -23,16 +23,16 @@ target_include_directories(bm_simd PRIVATE ../src/external)
add_library(bm_ftz STATIC ../src/sfizz/ScopedFTZ.cpp)
macro(sfizz_add_benchmark TARGET)
add_executable("${TARGET}" ${ARGN})
target_link_libraries("${TARGET}"
PRIVATE absl::span absl::algorithm
PRIVATE benchmark::benchmark benchmark::benchmark_main
add_executable("${TARGET}" ${ARGN})
target_link_libraries("${TARGET}"
PRIVATE absl::span absl::algorithm
PRIVATE benchmark::benchmark benchmark::benchmark_main
PRIVATE bm_simd bm_ftz)
if (LIBATOMIC_FOUND)
target_link_libraries ("${TARGET}" PRIVATE atomic)
if(LIBATOMIC_FOUND)
target_link_libraries("${TARGET}" PRIVATE atomic)
endif()
target_include_directories("${TARGET}" PRIVATE ../src/sfizz ../src/external)
sfizz_enable_fast_math("${TARGET}")
target_include_directories("${TARGET}" PRIVATE ../src/sfizz ../src/external)
sfizz_enable_fast_math("${TARGET}")
endmacro()
sfizz_add_benchmark(bm_opf_high_vs_low BM_OPF_high_vs_low.cpp)
@ -72,7 +72,7 @@ target_link_libraries(bm_smoothers PRIVATE sfizz::sfizz)
sfizz_add_benchmark(bm_powerFollower BM_powerFollower.cpp)
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})
target_link_libraries(bm_resample PRIVATE sfizz-samplerate sfizz-sndfile sfizz-cpuid)
endif()
@ -115,39 +115,38 @@ target_link_libraries(bm_stringResonator PRIVATE sfizz-sndfile)
add_custom_target(sfizz_benchmarks)
add_dependencies(sfizz_benchmarks
bm_opf_high_vs_low
bm_write
bm_clock
bm_pointerIterationOrOffsets
bm_read
bm_mean
bm_meanSquared
bm_cumsum
bm_diff
bm_mathfuns
bm_gain
bm_divide
bm_ramp
bm_ADSR
bm_add
bm_logger
bm_subtract
bm_multiplyAdd
bm_readChunk
bm_resampleChunk
bm_envelopes
bm_wavfile
bm_flacfile
bm_filterModulation
bm_filterStereoMono
bm_stringResonator
)
bm_opf_high_vs_low
bm_write
bm_clock
bm_pointerIterationOrOffsets
bm_read
bm_mean
bm_meanSquared
bm_cumsum
bm_diff
bm_mathfuns
bm_gain
bm_divide
bm_ramp
bm_ADSR
bm_add
bm_logger
bm_subtract
bm_multiplyAdd
bm_readChunk
bm_resampleChunk
bm_envelopes
bm_wavfile
bm_flacfile
bm_filterModulation
bm_filterStereoMono
bm_stringResonator)
if (TARGET bm_resample)
add_dependencies(sfizz_benchmarks bm_resample)
if(TARGET bm_resample)
add_dependencies(sfizz_benchmarks bm_resample)
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)
target_link_libraries(bm_pan_arm PRIVATE sfizz-jsl)
add_dependencies(sfizz_benchmarks bm_pan_arm)

View file

@ -1,19 +1,19 @@
project (sfizz)
project(sfizz)
if (SFIZZ_JACK)
if(SFIZZ_JACK)
find_package(PkgConfig 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)
target_include_directories (sfizz_jack PRIVATE ${JACK_INCLUDE_DIRS})
target_link_libraries (sfizz_jack PRIVATE sfizz::sfizz absl::flags_parse ${JACK_LIBRARIES})
sfizz_enable_lto_if_needed (sfizz_jack)
install (TARGETS sfizz_jack DESTINATION ${CMAKE_INSTALL_BINDIR}
add_executable(sfizz_jack MidiHelpers.h jack_client.cpp)
target_include_directories(sfizz_jack PRIVATE ${JACK_INCLUDE_DIRS})
target_link_libraries(sfizz_jack PRIVATE sfizz::sfizz absl::flags_parse ${JACK_LIBRARIES})
sfizz_enable_lto_if_needed(sfizz_jack)
install(TARGETS sfizz_jack DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT "jack" OPTIONAL)
endif()
if (SFIZZ_RENDER)
if(SFIZZ_RENDER)
add_library(sfizz-fmidi STATIC
"external/fmidi/sources/fmidi/fmidi.h"
"external/fmidi/sources/fmidi/fmidi_mini.cpp")
@ -22,6 +22,6 @@ if (SFIZZ_RENDER)
add_executable(sfizz_render MidiHelpers.h sfizz_render.cpp)
target_link_libraries(sfizz_render PRIVATE sfizz::sfizz sfizz-fmidi sfizz-sndfile sfizz-cxxopts)
sfizz_enable_lto_if_needed (sfizz_render)
install (TARGETS sfizz_render DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT "render" OPTIONAL)
sfizz_enable_lto_if_needed(sfizz_render)
install(TARGETS sfizz_render DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT "render" OPTIONAL)
endif()

View file

@ -1,37 +1,37 @@
# Added in CMake 3.9
if (CMAKE_VERSION VERSION_LESS 3.9)
message (WARNING "\nIPO checks are only available on CMake 3.9 and later.")
if(CMAKE_VERSION VERSION_LESS 3.9)
message(WARNING "\nIPO checks are only available on CMake 3.9 and later.")
set(ENABLE_LTO OFF CACHE BOOL "" FORCE)
function (SFIZZ_ENABLE_LTO_IF_NEEDED TARGET)
function(SFIZZ_ENABLE_LTO_IF_NEEDED TARGET)
endfunction()
return()
endif()
include (CheckIPOSupported)
check_ipo_supported (RESULT result OUTPUT output)
include(CheckIPOSupported)
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)
endif()
if (result AND ENABLE_LTO AND CMAKE_BUILD_TYPE STREQUAL "Release")
message (STATUS "\nLTO enabled.")
if(result AND ENABLE_LTO AND CMAKE_BUILD_TYPE STREQUAL "Release")
message(STATUS "\nLTO enabled.")
else()
if (${output})
message (WARNING "\nIPO disabled: ${output}")
if(${output})
message(WARNING "\nIPO disabled: ${output}")
else()
message (WARNING "\nIPO was disabled or not in a Release build.")
message(WARNING "\nIPO was disabled or not in a Release build.")
endif()
set(ENABLE_LTO OFF CACHE BOOL "" FORCE)
endif()
function (SFIZZ_ENABLE_LTO_IF_NEEDED TARGET)
if (${ENABLE_LTO})
function(SFIZZ_ENABLE_LTO_IF_NEEDED TARGET)
if(${ENABLE_LTO})
message(STATUS "Enabling LTO on ${TARGET}")
set_property (TARGET ${TARGET} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property(TARGET ${TARGET} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
endfunction()

View file

@ -1,17 +1,17 @@
# Configuration for this plugin
# TODO: generate version from git
set (LV2PLUGIN_VERSION_MINOR 6)
set (LV2PLUGIN_VERSION_MICRO 0)
set (LV2PLUGIN_NAME "sfizz")
set (LV2PLUGIN_COMMENT "SFZ sampler")
set (LV2PLUGIN_URI "http://sfztools.github.io/sfizz")
set (LV2PLUGIN_REPOSITORY "https://github.com/sfztools/sfizz")
set (LV2PLUGIN_AUTHOR "SFZTools")
set (LV2PLUGIN_EMAIL "paul@ferrand.cc")
if (SFIZZ_USE_VCPKG)
set (LV2PLUGIN_SPDX_LICENSE_ID "LGPL-3.0-only")
set(LV2PLUGIN_VERSION_MINOR 6)
set(LV2PLUGIN_VERSION_MICRO 0)
set(LV2PLUGIN_NAME "sfizz")
set(LV2PLUGIN_COMMENT "SFZ sampler")
set(LV2PLUGIN_URI "http://sfztools.github.io/sfizz")
set(LV2PLUGIN_REPOSITORY "https://github.com/sfztools/sfizz")
set(LV2PLUGIN_AUTHOR "SFZTools")
set(LV2PLUGIN_EMAIL "paul@ferrand.cc")
if(SFIZZ_USE_VCPKG)
set(LV2PLUGIN_SPDX_LICENSE_ID "LGPL-3.0-only")
else()
set (LV2PLUGIN_SPDX_LICENSE_ID "ISC")
set(LV2PLUGIN_SPDX_LICENSE_ID "ISC")
endif()
if(SFIZZ_LV2_UI)
@ -30,13 +30,13 @@ else()
set(LV2_UI_TYPE "X11UI")
endif()
if (APPLE)
set (LV2PLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/LV2" CACHE STRING
if(APPLE)
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]")
elseif (MSVC)
set (LV2PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lv2" CACHE STRING
elseif(MSVC)
set(LV2PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lv2" CACHE STRING
"Install destination for LV2 bundle [default: ${CMAKE_INSTALL_PREFIX}/lv2]")
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]")
endif()

View file

@ -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")
# Export the compile_commands.json file
set (CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Only install what's explicitely said
set (CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true)
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
set (CMAKE_CXX_VISIBILITY_PRESET hidden)
set (CMAKE_VISIBILITY_INLINES_HIDDEN ON)
set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
# Set Windows compatibility level to 7
if (WIN32)
if(WIN32)
add_compile_definitions(_WIN32_WINNT=0x601)
endif()
# Set macOS compatibility level
if (APPLE)
if(APPLE)
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9")
endif()
# Do not define macros `min` and `max`
if (WIN32)
if(WIN32)
add_compile_definitions(NOMINMAX)
endif()
@ -46,13 +46,13 @@ if(APPLE)
# and https://stackoverflow.com/a/21692023
# Apparently this is not needed in Travis CI using addons
# but it is in Appveyor instead
list (APPEND CMAKE_PREFIX_PATH /usr/local)
list(APPEND CMAKE_PREFIX_PATH /usr/local)
endif()
# The variable CMAKE_SYSTEM_PROCESSOR is incorrect on Visual studio...
# see https://gitlab.kitware.com/cmake/cmake/issues/15170
if (NOT SFIZZ_SYSTEM_PROCESSOR)
if(NOT SFIZZ_SYSTEM_PROCESSOR)
if(MSVC)
set(SFIZZ_SYSTEM_PROCESSOR "${MSVC_CXX_ARCHITECTURE_ID}")
else()
@ -61,13 +61,13 @@ if (NOT SFIZZ_SYSTEM_PROCESSOR)
endif()
# 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)
if (SFIZZ_SYSTEM_PROCESSOR MATCHES "^(i.86|x86_64)$")
if(SFIZZ_SYSTEM_PROCESSOR MATCHES "^(i.86|x86_64)$")
add_compile_options(-msse2)
elseif(SFIZZ_SYSTEM_PROCESSOR MATCHES "^(arm.*)$")
add_compile_options(-mfpu=neon)
if (NOT ANDROID)
if(NOT ANDROID)
add_compile_options(-mfloat-abi=hard)
endif()
endif()
@ -75,14 +75,14 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
if(SFIZZ_HAVE_FALIGNED_NEW)
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-faligned-new>)
endif()
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
set(CMAKE_CXX_STANDARD 17)
add_compile_options(/Zc:__cplusplus)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
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")
elseif(MSVC)
target_compile_options("${NAME}" PRIVATE "/fp:fast")
@ -98,9 +98,9 @@ add_library(sfizz-cxxopts INTERFACE)
target_include_directories(sfizz-cxxopts INTERFACE "external/cxxopts")
# 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)
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_path(SNDFILE_INCLUDE_DIR "sndfile.hh")
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)
pkg_check_modules(SNDFILE "sndfile" REQUIRED)
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})
else()
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()
# 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_EXTERNAL_SNDFILE "sfizz-sndfile" CACHE STRING "" FORCE)
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.
cmake_dependent_option(USE_LIBCPP "Use libc++ with clang" "${APPLE}"
"CMAKE_CXX_COMPILER_ID MATCHES Clang" OFF)
if (USE_LIBCPP)
if(USE_LIBCPP)
add_compile_options(-stdlib=libc++)
# 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
@ -147,25 +147,25 @@ target_include_directories(sfizz-spline PUBLIC "src/external/spline")
add_library(sfizz-tunings STATIC "src/external/tunings/src/Tunings.cpp")
target_include_directories(sfizz-tunings PUBLIC "src/external/tunings/include")
include (CheckLibraryExists)
add_library (sfizz-atomic INTERFACE)
if (UNIX AND NOT APPLE)
include(CheckLibraryExists)
add_library(sfizz-atomic INTERFACE)
if(UNIX AND NOT APPLE)
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic")
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"
SOURCES "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c"
LINK_LIBRARIES "atomic")
if (SFIZZ_LINK_LIBATOMIC)
target_link_libraries (sfizz-atomic INTERFACE "atomic")
if(SFIZZ_LINK_LIBATOMIC)
target_link_libraries(sfizz-atomic INTERFACE "atomic")
endif()
else()
set(SFIZZ_LINK_LIBATOMIC FALSE)
endif()
# Don't show build information when building a different project
function (show_build_info_if_needed)
if (CMAKE_PROJECT_NAME STREQUAL "sfizz")
message (STATUS "
function(show_build_info_if_needed)
if(CMAKE_PROJECT_NAME STREQUAL "sfizz")
message(STATUS "
Project name: ${PROJECT_NAME}
Build type: ${CMAKE_BUILD_TYPE}
Build processor: ${SFIZZ_SYSTEM_PROCESSOR}
@ -195,4 +195,4 @@ Compiler CXX min size flags: ${CMAKE_CXX_FLAGS_MINSIZEREL}
endif()
endfunction()
find_package (Threads REQUIRED)
find_package(Threads REQUIRED)

View file

@ -1,7 +1,7 @@
macro(sfizz_add_simd_sources SOURCES_VAR PREFIX)
# 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/simd/HelpersNEON.cpp
${PREFIX}/sfizz/simd/HelpersSSE.cpp
@ -9,10 +9,10 @@ macro(sfizz_add_simd_sources SOURCES_VAR PREFIX)
# For CPU-dispatched X86 sources
# 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
# 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(
${PREFIX}/sfizz/effects/impl/ResonantStringAVX.cpp
${PREFIX}/sfizz/effects/impl/ResonantArrayAVX.cpp

View file

@ -7,12 +7,12 @@ if(NOT TARGET uninstall)
add_custom_target(uninstall
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
COMMAND rm -rv "${LV2PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2")
endif()
if (SFIZZ_VST AND VSTPLUGIN_INSTALL_DIR)
if(SFIZZ_VST AND VSTPLUGIN_INSTALL_DIR)
add_custom_command(TARGET uninstall
COMMAND rm -rv "${VSTPLUGIN_INSTALL_DIR}/${PROJECT_NAME}.vst3")
endif()

View file

@ -1,22 +1,22 @@
set (VSTPLUGIN_NAME "sfizz")
set (VSTPLUGIN_VENDOR "Paul Ferrand")
set (VSTPLUGIN_URL "http://sfztools.github.io/sfizz")
set (VSTPLUGIN_EMAIL "paul@ferrand.cc")
set(VSTPLUGIN_NAME "sfizz")
set(VSTPLUGIN_VENDOR "Paul Ferrand")
set(VSTPLUGIN_URL "http://sfztools.github.io/sfizz")
set(VSTPLUGIN_EMAIL "paul@ferrand.cc")
if (APPLE)
set (VSTPLUGIN_INSTALL_DIR "$ENV{HOME}/Library/Audio/Plug-Ins/VST3" CACHE STRING
if(APPLE)
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]")
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]")
elseif (MSVC)
set (VSTPLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/vst3" CACHE STRING
elseif(MSVC)
set(VSTPLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/vst3" CACHE STRING
"Install destination for VST bundle [default: ${CMAKE_INSTALL_PREFIX}/vst3]")
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]")
endif()
if (NOT VST3_SYSTEM_PROCESSOR)
if(NOT VST3_SYSTEM_PROCESSOR)
set(VST3_SYSTEM_PROCESSOR "${SFIZZ_SYSTEM_PROCESSOR}")
endif()

View file

@ -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 (PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
# LV2 plugin specific settings
include (LV2Config)
include(LV2Config)
# Keep non build turtle files in IDE
set (LV2PLUGIN_TTL_SRC_FILES
set(LV2PLUGIN_TTL_SRC_FILES
manifest.ttl.in
${PROJECT_NAME}.ttl.in
)
if (SFIZZ_LV2_UI)
if(SFIZZ_LV2_UI)
list(APPEND LV2PLUGIN_TTL_SRC_FILES
${PROJECT_NAME}_ui.ttl.in)
endif()
source_group("Turtle Files" FILES
${LV2PLUGIN_TTL_SRC_FILES}
)
add_library (${LV2PLUGIN_PRJ_NAME} MODULE
add_library(${LV2PLUGIN_PRJ_NAME} MODULE
${PROJECT_NAME}.c
atomic_compat.h
${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)
add_library (${LV2PLUGIN_PRJ_NAME}_ui MODULE
if(SFIZZ_LV2_UI)
add_library(${LV2PLUGIN_PRJ_NAME}_ui MODULE
${PROJECT_NAME}_ui.cpp
vstgui_helpers.h
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()
# 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
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
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,-u,lv2_descriptor")
if (SFIZZ_LV2_UI)
if(SFIZZ_LV2_UI)
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,-u,lv2ui_descriptor")
endif()
endif()
target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE . external/ardour)
sfizz_enable_lto_if_needed (${LV2PLUGIN_PRJ_NAME})
if (MINGW)
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME})
if(MINGW)
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
endif()
if (SFIZZ_LV2_UI)
if(SFIZZ_LV2_UI)
target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour)
sfizz_enable_lto_if_needed (${LV2PLUGIN_PRJ_NAME}_ui)
if (MINGW)
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static")
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME}_ui)
if(MINGW)
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static")
endif()
endif()
# 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/<plugin_name>.<ext>
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 LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
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 LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
if (SFIZZ_LV2_UI)
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 LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
if(SFIZZ_LV2_UI)
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 LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
endif()
# Generate *.ttl files from *.in sources,
# create the destination directory if it doesn't exists and copy needed files
file (MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
configure_file (manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl)
configure_file (${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl)
if (SFIZZ_LV2_UI)
configure_file (${PROJECT_NAME}_ui.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_ui.ttl)
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
configure_file(manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl)
configure_file(${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl)
if(SFIZZ_LV2_UI)
configure_file(${PROJECT_NAME}_ui.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_ui.ttl)
endif()
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")
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")
file(COPY "lgpl-3.0.txt" DESTINATION ${PROJECT_BINARY_DIR})
endif()
@ -90,13 +90,13 @@ set(LV2_RESOURCES
execute_process(
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/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")
endforeach()
# Copy editor resources
if (SFIZZ_LV2_UI)
execute_process (
if(SFIZZ_LV2_UI)
execute_process(
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
copy_editor_resources(
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
@ -104,7 +104,7 @@ if (SFIZZ_LV2_UI)
endif()
# Installation
if (NOT MSVC)
if(NOT MSVC)
install(DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2PLUGIN_INSTALL_DIR}
COMPONENT "lv2")
bundle_dylibs(lv2

View file

@ -1,9 +1,9 @@
include (GNUInstallDirs)
include(GNUInstallDirs)
add_subdirectory(external/kiss_fft)
add_subdirectory(external/cpuid)
set (FAUST_FILES
set(FAUST_FILES
sfizz/dsp/filters/filters_modulable.dsp
sfizz/dsp/filters/rbj_filters.dsp
sfizz/dsp/filters/sallenkey_modulable.dsp
@ -14,9 +14,9 @@ set (FAUST_FILES
sfizz/effects/dsp/gate.dsp
sfizz/effects/dsp/disto_stage.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/AudioBuffer.h
sfizz/AudioReader.h
@ -118,7 +118,7 @@ set (SFIZZ_HEADERS
sfizz.h
sfizz.hpp)
set (SFIZZ_SOURCES
set(SFIZZ_SOURCES
sfizz/Synth.cpp
sfizz/FileId.cpp
sfizz/FilePool.cpp
@ -184,11 +184,11 @@ set (SFIZZ_SOURCES
sfizz/effects/impl/ResonantArraySSE.cpp
sfizz/effects/impl/ResonantArrayAVX.cpp)
include (SfizzSIMDSourceFiles)
sfizz_add_simd_sources (SFIZZ_SOURCES ".")
include(SfizzSIMDSourceFiles)
sfizz_add_simd_sources(SFIZZ_SOURCES ".")
# Parser core library
set (SFIZZ_PARSER_HEADERS
set(SFIZZ_PARSER_HEADERS
sfizz/Defaults.h
sfizz/LeakDetector.h
sfizz/Range.h
@ -201,7 +201,7 @@ set (SFIZZ_PARSER_HEADERS
sfizz/SfzHelpers.h
sfizz/StringViewHelpers.h)
set (SFIZZ_PARSER_SOURCES
set(SFIZZ_PARSER_SOURCES
sfizz/Parser.cpp
sfizz/Opcode.cpp
sfizz/OpcodeCleanup.cpp
@ -209,94 +209,94 @@ set (SFIZZ_PARSER_SOURCES
sfizz/parser/Parser.cpp
sfizz/parser/ParserPrivate.cpp)
set (SFIZZ_PARSER_OTHER sfizz/OpcodeCleanup.re)
source_group ("Other Files" FILES ${SFIZZ_PARSER_OTHER})
set(SFIZZ_PARSER_OTHER sfizz/OpcodeCleanup.re)
source_group("Other Files" FILES ${SFIZZ_PARSER_OTHER})
# Sfizz parser library
add_library (sfizz_parser STATIC)
target_sources (sfizz_parser PRIVATE
add_library(sfizz_parser STATIC)
target_sources(sfizz_parser PRIVATE
${SFIZZ_PARSER_HEADERS} ${SFIZZ_PARSER_SOURCES} ${SFIZZ_PARSER_OTHER})
target_include_directories (sfizz_parser PUBLIC sfizz)
target_include_directories (sfizz_parser PUBLIC external)
target_link_libraries (sfizz_parser PUBLIC absl::strings PRIVATE absl::flat_hash_map)
target_include_directories(sfizz_parser PUBLIC sfizz)
target_include_directories(sfizz_parser PUBLIC external)
target_link_libraries(sfizz_parser PUBLIC absl::strings PRIVATE absl::flat_hash_map)
# OSC messaging library
set (SFIZZ_MESSAGING_HEADERS
set(SFIZZ_MESSAGING_HEADERS
sfizz/Messaging.h
sfizz/Messaging.hpp
sfizz_message.h)
set (SFIZZ_MESSAGING_SOURCES
set(SFIZZ_MESSAGING_SOURCES
sfizz/Messaging.cpp)
add_library (sfizz_messaging STATIC)
target_sources (sfizz_messaging PRIVATE
add_library(sfizz_messaging STATIC)
target_sources(sfizz_messaging PRIVATE
${SFIZZ_MESSAGING_HEADERS} ${SFIZZ_MESSAGING_SOURCES})
target_include_directories (sfizz_messaging PUBLIC ".")
target_link_libraries (sfizz_messaging PUBLIC absl::strings)
target_include_directories(sfizz_messaging PUBLIC ".")
target_link_libraries(sfizz_messaging PUBLIC absl::strings)
# Sfizz static library
add_library(sfizz_static STATIC)
target_sources(sfizz_static PRIVATE
${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 external)
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)
set_target_properties (sfizz_static PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp;sfizz_message.h")
target_include_directories(sfizz_static PUBLIC .)
target_include_directories(sfizz_static PUBLIC external)
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)
set_target_properties(sfizz_static PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp;sfizz_message.h")
if(SFIZZ_USE_SNDFILE)
target_compile_definitions (sfizz_static PUBLIC SFIZZ_USE_SNDFILE=1)
target_link_libraries (sfizz_static PUBLIC st_audiofile)
target_compile_definitions(sfizz_static PUBLIC SFIZZ_USE_SNDFILE=1)
target_link_libraries(sfizz_static PUBLIC st_audiofile)
endif()
if (WIN32)
target_compile_definitions (sfizz_static PRIVATE _USE_MATH_DEFINES)
if(WIN32)
target_compile_definitions(sfizz_static PRIVATE _USE_MATH_DEFINES)
endif()
if (SFIZZ_RELEASE_ASSERTS)
target_compile_definitions (sfizz_static PRIVATE "SFIZZ_ENABLE_RELEASE_ASSERT=1")
if(SFIZZ_RELEASE_ASSERTS)
target_compile_definitions(sfizz_static PRIVATE "SFIZZ_ENABLE_RELEASE_ASSERT=1")
endif()
sfizz_enable_fast_math(sfizz_static)
if(WIN32)
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()
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::sfizz ALIAS sfizz_static)
add_library(sfizz::parser ALIAS sfizz_parser)
add_library(sfizz::sfizz ALIAS sfizz_static)
# Shared library and installation target
if (SFIZZ_SHARED)
add_library (sfizz_shared SHARED)
if(SFIZZ_SHARED)
add_library(sfizz_shared SHARED)
target_sources(sfizz_shared PRIVATE
${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 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_include_directories(sfizz_shared PRIVATE .)
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)
if(SFIZZ_USE_SNDFILE)
target_compile_definitions (sfizz_shared PUBLIC SFIZZ_USE_SNDFILE=1)
target_link_libraries (sfizz_shared PUBLIC st_audiofile)
target_compile_definitions(sfizz_shared PUBLIC SFIZZ_USE_SNDFILE=1)
target_link_libraries(sfizz_shared PUBLIC st_audiofile)
endif()
if (WIN32)
target_compile_definitions (sfizz_shared PRIVATE _USE_MATH_DEFINES)
if(WIN32)
target_compile_definitions(sfizz_shared PRIVATE _USE_MATH_DEFINES)
endif()
if (SFIZZ_RELEASE_ASSERTS)
target_compile_definitions (sfizz_shared PRIVATE "SFIZZ_ENABLE_RELEASE_ASSERT=1")
if(SFIZZ_RELEASE_ASSERTS)
target_compile_definitions(sfizz_shared PRIVATE "SFIZZ_ENABLE_RELEASE_ASSERT=1")
endif()
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_fast_math(sfizz_shared)
if (NOT MSVC)
install (TARGETS sfizz_shared
if(NOT MSVC)
install(TARGETS sfizz_shared
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT "runtime"
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT "runtime"
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT "development"
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT "development")
configure_file (${PROJECT_SOURCE_DIR}/scripts/sfizz.pc.in sfizz.pc @ONLY)
install (FILES ${CMAKE_BINARY_DIR}/src/sfizz.pc
configure_file(${PROJECT_SOURCE_DIR}/scripts/sfizz.pc.in sfizz.pc @ONLY)
install(FILES ${CMAKE_BINARY_DIR}/src/sfizz.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
COMPONENT "development")
endif()

View file

@ -1,14 +1,14 @@
set (VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
set (VSTPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
set(VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
set(VSTPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
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 "${CMAKE_CURRENT_SOURCE_DIR}/external/sfzt_auwrapper")
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 "${CMAKE_CURRENT_SOURCE_DIR}/external/sfzt_auwrapper")
# 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
include("cmake/Vst3.cmake")
@ -71,24 +71,24 @@ plugin_add_vst3sdk(${VSTPLUGIN_PRJ_NAME})
plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME})
# 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.tcc")
add_library(sfizz_ring_buffer STATIC
"external/ring_buffer/ring_buffer/ring_buffer.cpp"
${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_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
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version")
endif()
sfizz_enable_lto_if_needed (${VSTPLUGIN_PRJ_NAME})
if (MINGW)
set_target_properties (${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
sfizz_enable_lto_if_needed(${VSTPLUGIN_PRJ_NAME})
if(MINGW)
set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
endif()
# Link system dependencies
@ -102,8 +102,8 @@ else()
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE ${GLIB_LIBRARIES})
endif()
# Create the bundle (see "VST 3 Locations / Format")
execute_process (
# Create the bundle(see "VST 3 Locations / Format")
execute_process(
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources")
copy_editor_resources(
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
@ -140,7 +140,7 @@ else()
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}")
endif()
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
gw_target_warn(${VSTPLUGIN_PRJ_NAME} PRIVATE
"-Wno-extra"
"-Wno-multichar"
@ -154,12 +154,12 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
endif()
# To help debugging the link only
if (FALSE)
if(FALSE)
target_link_options(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined")
endif()
# Installation
if (NOT MSVC)
if(NOT MSVC)
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}"
DESTINATION "${VSTPLUGIN_INSTALL_DIR}"
COMPONENT "vst")
@ -261,7 +261,7 @@ elseif(SFIZZ_AU)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/aucocoaclassprefix.h"
"#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
execute_process(
@ -293,7 +293,7 @@ elseif(SFIZZ_AU)
DESTINATION "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License")
# Add the resource fork
if (FALSE)
if(FALSE)
execute_process(COMMAND "xcrun" "--find" "Rez"
OUTPUT_VARIABLE OSX_REZ_COMMAND OUTPUT_STRIP_TRAILING_WHITESPACE)
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
@ -316,7 +316,7 @@ elseif(SFIZZ_AU)
"${AUWRAPPER_BASEDIR}/auresource.r")
endif()
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
gw_target_warn(${AUPLUGIN_PRJ_NAME} PRIVATE
"-Wno-extra"
"-Wno-multichar"