From 8b56f89688ab7f84c7fb92bf4509d8a0f713831d Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Mon, 14 Dec 2020 07:49:02 +0100 Subject: [PATCH 1/3] Update cmake files formatting --- benchmarks/CMakeLists.txt | 79 ++++++++++++----------- clients/CMakeLists.txt | 22 +++---- cmake/CheckIPO.cmake | 28 ++++---- cmake/LV2Config.cmake | 32 +++++----- cmake/SfizzConfig.cmake | 58 ++++++++--------- cmake/SfizzSIMDSourceFiles.cmake | 6 +- cmake/SfizzUninstall.cmake | 4 +- cmake/VSTConfig.cmake | 22 +++---- lv2/CMakeLists.txt | 74 ++++++++++----------- src/CMakeLists.txt | 106 +++++++++++++++---------------- vst/CMakeLists.txt | 42 ++++++------ 11 files changed, 236 insertions(+), 237 deletions(-) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 2f33e648..ee39bea5 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -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) diff --git a/clients/CMakeLists.txt b/clients/CMakeLists.txt index ae3080a3..d975c257 100644 --- a/clients/CMakeLists.txt +++ b/clients/CMakeLists.txt @@ -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() diff --git a/cmake/CheckIPO.cmake b/cmake/CheckIPO.cmake index 5b524df7..058a5f8a 100644 --- a/cmake/CheckIPO.cmake +++ b/cmake/CheckIPO.cmake @@ -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() diff --git a/cmake/LV2Config.cmake b/cmake/LV2Config.cmake index 0cfc911f..ab7a1652 100644 --- a/cmake/LV2Config.cmake +++ b/cmake/LV2Config.cmake @@ -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() diff --git a/cmake/SfizzConfig.cmake b/cmake/SfizzConfig.cmake index cfc910b0..6935b874 100644 --- a/cmake/SfizzConfig.cmake +++ b/cmake/SfizzConfig.cmake @@ -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($<$:-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$<$: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) diff --git a/cmake/SfizzSIMDSourceFiles.cmake b/cmake/SfizzSIMDSourceFiles.cmake index 83957c5d..9e588e93 100644 --- a/cmake/SfizzSIMDSourceFiles.cmake +++ b/cmake/SfizzSIMDSourceFiles.cmake @@ -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 diff --git a/cmake/SfizzUninstall.cmake b/cmake/SfizzUninstall.cmake index 6c1d7f12..6286832c 100644 --- a/cmake/SfizzUninstall.cmake +++ b/cmake/SfizzUninstall.cmake @@ -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() diff --git a/cmake/VSTConfig.cmake b/cmake/VSTConfig.cmake index c4c8f44a..8d23c1df 100644 --- a/cmake/VSTConfig.cmake +++ b/cmake/VSTConfig.cmake @@ -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() diff --git a/lv2/CMakeLists.txt b/lv2/CMakeLists.txt index 743b26d2..a5b8b61a 100644 --- a/lv2/CMakeLists.txt +++ b/lv2/CMakeLists.txt @@ -1,85 +1,85 @@ -set (LV2PLUGIN_PRJ_NAME "${PROJECT_NAME}_lv2") +set(LV2PLUGIN_PRJ_NAME "${PROJECT_NAME}_lv2") # Set the build directory as /lv2/.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 # /lv2/_lv2. to # /lv2/.lv2/. -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 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ca0ebed0..caf58f07 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -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() diff --git a/vst/CMakeLists.txt b/vst/CMakeLists.txt index 02421af5..6fef1424 100644 --- a/vst/CMakeLists.txt +++ b/vst/CMakeLists.txt @@ -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" From 96dc4791e44bba964d1aaa19de9cc8aac23dd6f7 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Mon, 14 Dec 2020 07:53:34 +0100 Subject: [PATCH 2/3] Fix the preprocessor, cxxopts missing --- devtools/CMakeLists.txt | 2 +- devtools/Preprocessor.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/devtools/CMakeLists.txt b/devtools/CMakeLists.txt index e5ea35f6..d64f6ba4 100644 --- a/devtools/CMakeLists.txt +++ b/devtools/CMakeLists.txt @@ -15,4 +15,4 @@ if(JACK_FOUND AND TARGET Qt5::Widgets) endif() add_executable(sfizz_preprocessor Preprocessor.cpp) -target_link_libraries(sfizz_preprocessor sfizz_parser) +target_link_libraries(sfizz_preprocessor PRIVATE sfizz_parser sfizz-cxxopts) diff --git a/devtools/Preprocessor.cpp b/devtools/Preprocessor.cpp index f9dbfba6..9476d356 100644 --- a/devtools/Preprocessor.cpp +++ b/devtools/Preprocessor.cpp @@ -13,8 +13,8 @@ */ #include "parser/Parser.h" -#include "../tests/cxxopts.hpp" -#include "absl/strings/string_view.h" +#include +#include #include class MyParserListener : public sfz::Parser::Listener { From 3a9accba4b6bed660d4f5532f066f7bb0b52896d Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Mon, 14 Dec 2020 08:20:01 +0100 Subject: [PATCH 3/3] Put dependency libraries in namespaces --- benchmarks/CMakeLists.txt | 33 +++++++++---------- clients/CMakeLists.txt | 9 +++--- cmake/SfizzConfig.cmake | 47 ++++++++++++++++------------ demos/CMakeLists.txt | 10 +++--- devtools/CMakeLists.txt | 4 +-- editor/CMakeLists.txt | 2 +- editor/cmake/Vstgui.cmake | 34 ++++++++++---------- lv2/CMakeLists.txt | 2 +- src/CMakeLists.txt | 4 +-- src/external/cpuid/CMakeLists.txt | 9 +++--- src/external/kiss_fft/CMakeLists.txt | 7 +++-- tests/CMakeLists.txt | 2 +- vst/CMakeLists.txt | 4 +-- vst/cmake/Vst3.cmake | 2 +- 14 files changed, 91 insertions(+), 78 deletions(-) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index ee39bea5..a72c9f6c 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -12,13 +12,14 @@ find_path(SAMPLERATE_INCLUDE_DIR "samplerate.h") message(STATUS "Checking samplerate library: ${SAMPLERATE_LIBRARY}") message(STATUS "Checking samplerate includes: ${SAMPLERATE_INCLUDE_DIR}") if(SAMPLERATE_LIBRARY AND SAMPLERATE_INCLUDE_DIR) - add_library(sfizz-samplerate INTERFACE) - target_include_directories(sfizz-samplerate INTERFACE "${SAMPLERATE_INCLUDE_DIR}") - target_link_libraries(sfizz-samplerate INTERFACE "${SAMPLERATE_LIBRARY}") + add_library(sfizz_samplerate INTERFACE) + add_library(sfizz::samplerate ALIAS sfizz_samplerate) + target_include_directories(sfizz_samplerate INTERFACE "${SAMPLERATE_INCLUDE_DIR}") + target_link_libraries(sfizz_samplerate INTERFACE "${SAMPLERATE_LIBRARY}") endif() add_library(bm_simd STATIC ${BENCHMARK_SIMD_SOURCES}) -target_link_libraries(bm_simd PRIVATE absl::span sfizz-cpuid) +target_link_libraries(bm_simd PRIVATE absl::span sfizz::cpuid) target_include_directories(bm_simd PRIVATE ../src/external) add_library(bm_ftz STATIC ../src/sfizz/ScopedFTZ.cpp) @@ -72,37 +73,37 @@ 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) +target_link_libraries(bm_resample PRIVATE sfizz::samplerate sfizz::sndfile sfizz::cpuid) endif() sfizz_add_benchmark(bm_envelopes BM_envelopes.cpp) sfizz_add_benchmark(bm_wavfile BM_wavfile.cpp) -target_link_libraries(bm_wavfile PRIVATE sfizz-sndfile) +target_link_libraries(bm_wavfile PRIVATE sfizz::sndfile) sfizz_add_benchmark(bm_flacfile BM_flacfile.cpp) -target_link_libraries(bm_flacfile PRIVATE sfizz-sndfile) +target_link_libraries(bm_flacfile PRIVATE sfizz::sndfile) sfizz_add_benchmark(bm_audioReaders BM_audioReaders.cpp ../src/sfizz/AudioReader.cpp) -target_link_libraries(bm_audioReaders PRIVATE st_audiofile sfizz-sndfile) +target_link_libraries(bm_audioReaders PRIVATE st_audiofile sfizz::sndfile) sfizz_add_benchmark(bm_readChunk BM_readChunk.cpp) -target_link_libraries(bm_readChunk PRIVATE sfizz-sndfile) +target_link_libraries(bm_readChunk PRIVATE sfizz::sndfile) sfizz_add_benchmark(bm_readChunkFlac BM_readChunkFlac.cpp) -target_link_libraries(bm_readChunkFlac PRIVATE sfizz-sndfile) +target_link_libraries(bm_readChunkFlac PRIVATE sfizz::sndfile) sfizz_add_benchmark(bm_resampleChunk BM_resampleChunk.cpp) -target_link_libraries(bm_resampleChunk PRIVATE sfizz-sndfile) +target_link_libraries(bm_resampleChunk PRIVATE sfizz::sndfile) sfizz_add_benchmark(bm_interpolators BM_interpolators.cpp) sfizz_add_benchmark(bm_filterModulation BM_filterModulation.cpp ../src/sfizz/SfzFilter.cpp) -target_link_libraries(bm_filterModulation PRIVATE sfizz-sndfile) +target_link_libraries(bm_filterModulation PRIVATE sfizz::sndfile) sfizz_add_benchmark(bm_filterStereoMono BM_filterStereoMono.cpp ../src/sfizz/SfzFilter.cpp) -target_link_libraries(bm_filterStereoMono PRIVATE sfizz-sndfile) +target_link_libraries(bm_filterStereoMono PRIVATE sfizz::sndfile) sfizz_add_benchmark(bm_stringResonator BM_stringResonator.cpp ../src/sfizz/effects/impl/ResonantArray.cpp @@ -111,7 +112,7 @@ sfizz_add_benchmark(bm_stringResonator BM_stringResonator.cpp ../src/sfizz/effects/impl/ResonantString.cpp ../src/sfizz/effects/impl/ResonantStringSSE.cpp ../src/sfizz/effects/impl/ResonantStringAVX.cpp) -target_link_libraries(bm_stringResonator PRIVATE sfizz-sndfile) +target_link_libraries(bm_stringResonator PRIVATE sfizz::sndfile) add_custom_target(sfizz_benchmarks) add_dependencies(sfizz_benchmarks @@ -148,7 +149,7 @@ endif() 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) + target_link_libraries(bm_pan_arm PRIVATE sfizz::jsl) add_dependencies(sfizz_benchmarks bm_pan_arm) endif() diff --git a/clients/CMakeLists.txt b/clients/CMakeLists.txt index d975c257..7b9e3453 100644 --- a/clients/CMakeLists.txt +++ b/clients/CMakeLists.txt @@ -14,14 +14,15 @@ if(SFIZZ_JACK) endif() if(SFIZZ_RENDER) - add_library(sfizz-fmidi STATIC + add_library(sfizz_fmidi STATIC "external/fmidi/sources/fmidi/fmidi.h" "external/fmidi/sources/fmidi/fmidi_mini.cpp") - target_include_directories(sfizz-fmidi PUBLIC "external/fmidi/sources") - target_compile_definitions(sfizz-fmidi PUBLIC "FMIDI_STATIC=1" "FMIDI_DISABLE_DESCRIBE_API=1") + add_library(sfizz::fmidi ALIAS sfizz_fmidi) + target_include_directories(sfizz_fmidi PUBLIC "external/fmidi/sources") + target_compile_definitions(sfizz_fmidi PUBLIC "FMIDI_STATIC=1" "FMIDI_DISABLE_DESCRIBE_API=1") 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) install(TARGETS sfizz_render DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT "render" OPTIONAL) endif() diff --git a/cmake/SfizzConfig.cmake b/cmake/SfizzConfig.cmake index 6935b874..cfe1e559 100644 --- a/cmake/SfizzConfig.cmake +++ b/cmake/SfizzConfig.cmake @@ -1,5 +1,6 @@ include(CMakeDependentOption) include(CheckCXXCompilerFlag) +include(CheckLibraryExists) include(GNUWarnings) set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ standard to be used") @@ -90,29 +91,32 @@ function(sfizz_enable_fast_math NAME) endfunction() # The jsl utility library for C++ -add_library(sfizz-jsl INTERFACE) -target_include_directories(sfizz-jsl INTERFACE "external/jsl/include") +add_library(sfizz_jsl INTERFACE) +add_library(sfizz::jsl ALIAS sfizz_jsl) +target_include_directories(sfizz_jsl INTERFACE "external/jsl/include") # The cxxopts library -add_library(sfizz-cxxopts INTERFACE) -target_include_directories(sfizz-cxxopts INTERFACE "external/cxxopts") +add_library(sfizz_cxxopts INTERFACE) +add_library(sfizz::cxxopts ALIAS sfizz_cxxopts) +target_include_directories(sfizz_cxxopts INTERFACE "external/cxxopts") # The sndfile library if(SFIZZ_USE_SNDFILE OR SFIZZ_DEMOS OR SFIZZ_BENCHMARKS OR SFIZZ_RENDER) - add_library(sfizz-sndfile INTERFACE) + add_library(sfizz_sndfile INTERFACE) + add_library(sfizz::sndfile ALIAS sfizz_sndfile) 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}") - target_link_libraries(sfizz-sndfile INTERFACE SndFile::sndfile) + target_include_directories(sfizz_sndfile INTERFACE "${SNDFILE_INCLUDE_DIR}") + target_link_libraries(sfizz_sndfile INTERFACE SndFile::sndfile) else() find_package(PkgConfig 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) - target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_STATIC_LIBRARIES}) + target_link_libraries(sfizz_sndfile INTERFACE ${SNDFILE_STATIC_LIBRARIES}) else() - target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_LIBRARIES}) + target_link_libraries(sfizz_sndfile INTERFACE ${SNDFILE_LIBRARIES}) endif() link_directories(${SNDFILE_LIBRARY_DIRS}) endif() @@ -121,7 +125,7 @@ endif() # The st_audiofile library 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) + set(ST_AUDIO_FILE_EXTERNAL_SNDFILE "sfizz::sndfile" CACHE STRING "" FORCE) else() set(ST_AUDIO_FILE_USE_SNDFILE OFF CACHE BOOL "" FORCE) set(ST_AUDIO_FILE_EXTERNAL_SNDFILE "" CACHE STRING "" FORCE) @@ -138,17 +142,20 @@ if(USE_LIBCPP) add_link_options(-lc++abi) # New command on CMake master, not in 3.12 release endif() -add_library(sfizz-pugixml STATIC "src/external/pugixml/src/pugixml.cpp") -target_include_directories(sfizz-pugixml PUBLIC "src/external/pugixml/src") +add_library(sfizz_pugixml STATIC "src/external/pugixml/src/pugixml.cpp") +add_library(sfizz::pugixml ALIAS sfizz_pugixml) +target_include_directories(sfizz_pugixml PUBLIC "src/external/pugixml/src") -add_library(sfizz-spline STATIC "src/external/spline/spline/spline.cpp") -target_include_directories(sfizz-spline PUBLIC "src/external/spline") +add_library(sfizz_spline STATIC "src/external/spline/spline/spline.cpp") +add_library(sfizz::spline ALIAS sfizz_spline) +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") +add_library(sfizz_tunings STATIC "src/external/tunings/src/Tunings.cpp") +add_library(sfizz::tunings ALIAS sfizz_tunings) +target_include_directories(sfizz_tunings PUBLIC "src/external/tunings/include") -include(CheckLibraryExists) -add_library(sfizz-atomic INTERFACE) +add_library(sfizz_atomic INTERFACE) +add_library(sfizz::atomic ALIAS sfizz_atomic) 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; }") @@ -156,7 +163,7 @@ if(UNIX AND NOT APPLE) SOURCES "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c" LINK_LIBRARIES "atomic") if(SFIZZ_LINK_LIBATOMIC) - target_link_libraries(sfizz-atomic INTERFACE "atomic") + target_link_libraries(sfizz_atomic INTERFACE "atomic") endif() else() set(SFIZZ_LINK_LIBATOMIC FALSE) diff --git a/demos/CMakeLists.txt b/demos/CMakeLists.txt index 16ebcce6..ba349140 100644 --- a/demos/CMakeLists.txt +++ b/demos/CMakeLists.txt @@ -37,10 +37,10 @@ if(TARGET Qt5::Widgets) endif() add_executable(eq_apply EQ.cpp) -target_link_libraries(eq_apply PRIVATE sfizz::sfizz sfizz-sndfile sfizz-cxxopts) +target_link_libraries(eq_apply PRIVATE sfizz::sfizz sfizz::sndfile sfizz::cxxopts) add_executable(filter_apply Filter.cpp) -target_link_libraries(filter_apply PRIVATE sfizz::sfizz sfizz-sndfile sfizz-cxxopts) +target_link_libraries(filter_apply PRIVATE sfizz::sfizz sfizz::sndfile sfizz::cxxopts) add_executable(sfizz_plot_curve PlotCurve.cpp) target_link_libraries(sfizz_plot_curve PRIVATE sfizz::sfizz) @@ -49,13 +49,13 @@ add_executable(sfizz_plot_wavetables PlotWavetables.cpp) target_link_libraries(sfizz_plot_wavetables PRIVATE sfizz::sfizz) add_executable(sfizz_plot_lfo PlotLFO.cpp) -target_link_libraries(sfizz_plot_lfo PRIVATE sfizz::sfizz sfizz-sndfile sfizz-cxxopts) +target_link_libraries(sfizz_plot_lfo PRIVATE sfizz::sfizz sfizz::sndfile sfizz::cxxopts) add_executable(sfizz_file_instrument FileInstrument.cpp) -target_link_libraries(sfizz_file_instrument PRIVATE sfizz::sfizz sfizz-sndfile) +target_link_libraries(sfizz_file_instrument PRIVATE sfizz::sfizz sfizz::sndfile) add_executable(sfizz_file_wavetable FileWavetable.cpp) target_link_libraries(sfizz_file_wavetable PRIVATE sfizz::sfizz) add_executable(sfizz_tuning Tuning.cpp) -target_link_libraries(sfizz_tuning PRIVATE sfizz::sfizz sfizz-cxxopts) +target_link_libraries(sfizz_tuning PRIVATE sfizz::sfizz sfizz::cxxopts) diff --git a/devtools/CMakeLists.txt b/devtools/CMakeLists.txt index d64f6ba4..ac2790e6 100644 --- a/devtools/CMakeLists.txt +++ b/devtools/CMakeLists.txt @@ -10,9 +10,9 @@ find_package(Qt5 COMPONENTS Widgets) if(JACK_FOUND AND TARGET Qt5::Widgets) add_executable(sfizz_capture_eg CaptureEG.h CaptureEG.cpp) target_include_directories(sfizz_capture_eg PRIVATE . ${JACK_INCLUDE_DIRS}) - target_link_libraries(sfizz_capture_eg PRIVATE sfizz-sndfile Qt5::Widgets ${JACK_LIBRARIES}) + target_link_libraries(sfizz_capture_eg PRIVATE sfizz::sndfile Qt5::Widgets ${JACK_LIBRARIES}) set_target_properties(sfizz_capture_eg PROPERTIES AUTOUIC ON) endif() add_executable(sfizz_preprocessor Preprocessor.cpp) -target_link_libraries(sfizz_preprocessor PRIVATE sfizz_parser sfizz-cxxopts) +target_link_libraries(sfizz_preprocessor PRIVATE sfizz_parser sfizz::cxxopts) diff --git a/editor/CMakeLists.txt b/editor/CMakeLists.txt index 0244666b..9517c51e 100644 --- a/editor/CMakeLists.txt +++ b/editor/CMakeLists.txt @@ -43,7 +43,7 @@ add_library(sfizz_editor STATIC EXCLUDE_FROM_ALL src/editor/utility/vstgui_before.h) target_include_directories(sfizz_editor PUBLIC "src") target_link_libraries(sfizz_editor PUBLIC sfizz_messaging) -target_link_libraries(sfizz_editor PRIVATE sfizz-vstgui) +target_link_libraries(sfizz_editor PRIVATE sfizz::vstgui) target_link_libraries(sfizz_editor PUBLIC absl::strings) if(APPLE) find_library(APPLE_APPKIT_LIBRARY "AppKit") diff --git a/editor/cmake/Vstgui.cmake b/editor/cmake/Vstgui.cmake index a3cf5dc0..41cafa99 100644 --- a/editor/cmake/Vstgui.cmake +++ b/editor/cmake/Vstgui.cmake @@ -1,4 +1,4 @@ -add_library(sfizz-vstgui STATIC EXCLUDE_FROM_ALL +add_library(sfizz_vstgui STATIC EXCLUDE_FROM_ALL "${VSTGUI_BASEDIR}/vstgui/lib/animation/animations.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/animation/animator.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/animation/timingfunctions.cpp" @@ -58,8 +58,10 @@ add_library(sfizz-vstgui STATIC EXCLUDE_FROM_ALL "${VSTGUI_BASEDIR}/vstgui/lib/platform/platformfactory.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/vstguidebug.cpp") +add_library(sfizz::vstgui ALIAS sfizz_vstgui) + if(WIN32) - target_sources(sfizz-vstgui PRIVATE + target_sources(sfizz_vstgui PRIVATE "${VSTGUI_BASEDIR}/vstgui/lib/platform/common/fileresourceinputstream.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/direct2d/d2dbitmap.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/direct2d/d2ddrawcontext.cpp" @@ -78,7 +80,7 @@ if(WIN32) "${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/winstring.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/wintimer.cpp") elseif(APPLE) - target_sources(sfizz-vstgui PRIVATE + target_sources(sfizz_vstgui PRIVATE "${VSTGUI_BASEDIR}/vstgui/lib/platform/common/fileresourceinputstream.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/platform/common/genericoptionmenu.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/platform/common/generictextedit.cpp" @@ -104,7 +106,7 @@ elseif(APPLE) "${VSTGUI_BASEDIR}/vstgui/lib/platform/mac/mactimer.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/platform/mac/quartzgraphicspath.cpp") else() - target_sources(sfizz-vstgui PRIVATE + target_sources(sfizz_vstgui PRIVATE "${VSTGUI_BASEDIR}/vstgui/lib/platform/common/fileresourceinputstream.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/platform/common/generictextedit.cpp" "${VSTGUI_BASEDIR}/vstgui/lib/platform/linux/cairobitmap.cpp" @@ -122,12 +124,12 @@ else() "${VSTGUI_BASEDIR}/vstgui/lib/platform/linux/x11utils.cpp") endif() -target_include_directories(sfizz-vstgui PUBLIC "${VSTGUI_BASEDIR}") +target_include_directories(sfizz_vstgui PUBLIC "${VSTGUI_BASEDIR}") if(WIN32) if (NOT MSVC) # autolinked on MSVC with pragmas - target_link_libraries(sfizz-vstgui PRIVATE + target_link_libraries(sfizz_vstgui PRIVATE "opengl32" "d2d1" "dwrite" @@ -136,7 +138,7 @@ if(WIN32) "shlwapi") endif() elseif(APPLE) - target_link_libraries(sfizz-vstgui PRIVATE + target_link_libraries(sfizz_vstgui PRIVATE "${APPLE_COREFOUNDATION_LIBRARY}" "${APPLE_FOUNDATION_LIBRARY}" "${APPLE_COCOA_LIBRARY}" @@ -161,7 +163,7 @@ else() pkg_check_modules(CAIRO REQUIRED cairo) pkg_check_modules(FONTCONFIG REQUIRED fontconfig) pkg_check_modules(GLIB REQUIRED glib-2.0) - target_include_directories(sfizz-vstgui PRIVATE + target_include_directories(sfizz_vstgui PRIVATE ${X11_INCLUDE_DIRS} ${FREETYPE_INCLUDE_DIRS} ${LIBXCB_INCLUDE_DIRS} @@ -174,7 +176,7 @@ else() ${CAIRO_INCLUDE_DIRS} ${FONTCONFIG_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS}) - target_link_libraries(sfizz-vstgui PRIVATE + target_link_libraries(sfizz_vstgui PRIVATE ${X11_LIBRARIES} ${FREETYPE_LIBRARIES} ${LIBXCB_LIBRARIES} @@ -189,31 +191,31 @@ else() ${GLIB_LIBRARIES}) find_library(DL_LIBRARY "dl") if(DL_LIBRARY) - target_link_libraries(sfizz-vstgui PRIVATE "${DL_LIBRARY}") + target_link_libraries(sfizz_vstgui PRIVATE "${DL_LIBRARY}") endif() endif() if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - target_compile_definitions(sfizz-vstgui PUBLIC "DEVELOPMENT") + target_compile_definitions(sfizz_vstgui PUBLIC "DEVELOPMENT") endif() if(${CMAKE_BUILD_TYPE} MATCHES "Release") - target_compile_definitions(sfizz-vstgui PUBLIC "RELEASE") + target_compile_definitions(sfizz_vstgui PUBLIC "RELEASE") endif() if(CMAKE_SYSTEM_NAME STREQUAL "Windows") # higher C++ requirement on Windows - set_property(TARGET sfizz-vstgui PROPERTY CXX_STANDARD 14) + set_property(TARGET sfizz_vstgui PROPERTY CXX_STANDARD 14) # Windows 10 RS2 DDI for custom fonts - target_compile_definitions(sfizz-vstgui PRIVATE "NTDDI_VERSION=0x0A000003") + target_compile_definitions(sfizz_vstgui PRIVATE "NTDDI_VERSION=0x0A000003") # disable custom fonts while dwrite3 API is unavailable in MinGW if(MINGW) - target_compile_definitions(sfizz-vstgui PRIVATE "VSTGUI_WIN32_CUSTOMFONT_SUPPORT=0") + target_compile_definitions(sfizz_vstgui PRIVATE "VSTGUI_WIN32_CUSTOMFONT_SUPPORT=0") endif() endif() if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") - gw_target_warn(sfizz-vstgui PRIVATE + gw_target_warn(sfizz_vstgui PRIVATE "-Wno-deprecated-copy" "-Wno-deprecated-declarations" "-Wno-extra" diff --git a/lv2/CMakeLists.txt b/lv2/CMakeLists.txt index a5b8b61a..c84a93ab 100644 --- a/lv2/CMakeLists.txt +++ b/lv2/CMakeLists.txt @@ -29,7 +29,7 @@ if(SFIZZ_LV2_UI) ${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() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index caf58f07..ed93df85 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -242,7 +242,7 @@ target_sources(sfizz_static PRIVATE 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) +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) @@ -273,7 +273,7 @@ if(SFIZZ_SHARED) ${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_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) diff --git a/src/external/cpuid/CMakeLists.txt b/src/external/cpuid/CMakeLists.txt index d4e779be..c2a25fe5 100644 --- a/src/external/cpuid/CMakeLists.txt +++ b/src/external/cpuid/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required (VERSION 3.5) -project(sfizz-cpuid) +project(sfizz_cpuid) -add_library(sfizz-cpuid STATIC src/cpuid/cpuinfo.cpp src/cpuid/version.cpp) -set_property(TARGET sfizz-cpuid PROPERTY CXX_STANDARD 11) -target_include_directories(sfizz-cpuid PUBLIC src PRIVATE platform/src) +add_library(sfizz_cpuid STATIC src/cpuid/cpuinfo.cpp src/cpuid/version.cpp) +add_library(sfizz::cpuid ALIAS sfizz_cpuid) +set_property(TARGET sfizz_cpuid PROPERTY CXX_STANDARD 11) +target_include_directories(sfizz_cpuid PUBLIC src PRIVATE platform/src) diff --git a/src/external/kiss_fft/CMakeLists.txt b/src/external/kiss_fft/CMakeLists.txt index dc5c22e9..e43afb1d 100644 --- a/src/external/kiss_fft/CMakeLists.txt +++ b/src/external/kiss_fft/CMakeLists.txt @@ -2,11 +2,12 @@ cmake_minimum_required(VERSION 3.5) -project(sfizz-kissfft VERSION "1.3.0" LANGUAGES C) +project(sfizz_kissfft VERSION "1.3.0" LANGUAGES C) -add_library(sfizz-kissfft STATIC +add_library(sfizz_kissfft STATIC kiss_fft.c tools/kiss_fftr.c) -target_include_directories(sfizz-kissfft +add_library(sfizz::kissfft ALIAS sfizz_kissfft) +target_include_directories(sfizz_kissfft PUBLIC "." PUBLIC "tools") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index afee85a8..8d4d34a2 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -48,7 +48,7 @@ set(SFIZZ_TEST_SOURCES ) add_executable(sfizz_tests ${SFIZZ_TEST_SOURCES}) -target_link_libraries(sfizz_tests PRIVATE sfizz::sfizz sfizz-jsl) +target_link_libraries(sfizz_tests PRIVATE sfizz::sfizz sfizz::jsl) sfizz_enable_lto_if_needed(sfizz_tests) sfizz_enable_fast_math(sfizz_tests) # target_link_libraries(sfizz_tests PRIVATE absl::strings absl::str_format absl::flat_hash_map cnpy absl::span absl::algorithm) diff --git a/vst/CMakeLists.txt b/vst/CMakeLists.txt index 6fef1424..468b6f1f 100644 --- a/vst/CMakeLists.txt +++ b/vst/CMakeLists.txt @@ -60,7 +60,7 @@ endif() target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE ${PROJECT_NAME}::${PROJECT_NAME} PRIVATE sfizz_editor - PRIVATE sfizz-pugixml) + PRIVATE sfizz::pugixml) target_include_directories(${VSTPLUGIN_PRJ_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES @@ -198,7 +198,7 @@ elseif(SFIZZ_AU) target_link_libraries(${AUPLUGIN_PRJ_NAME} PRIVATE ${PROJECT_NAME}::${PROJECT_NAME} PRIVATE sfizz_editor - PRIVATE sfizz-pugixml) + PRIVATE sfizz::pugixml) target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") set_target_properties(${AUPLUGIN_PRJ_NAME} PROPERTIES diff --git a/vst/cmake/Vst3.cmake b/vst/cmake/Vst3.cmake index 20eee6b3..449467ce 100644 --- a/vst/cmake/Vst3.cmake +++ b/vst/cmake/Vst3.cmake @@ -63,7 +63,7 @@ endfunction() # --- VSTGUI --- function(plugin_add_vstgui NAME) - target_link_libraries("${NAME}" PRIVATE sfizz-vstgui) + target_link_libraries("${NAME}" PRIVATE sfizz::vstgui) target_sources("${NAME}" PRIVATE "${VST3SDK_BASEDIR}/public.sdk/source/vst/vstguieditor.cpp") target_compile_definitions("${NAME}" PRIVATE "SMTG_MODULE_IS_BUNDLE=1") endfunction()