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) project(sfizz)
# Check SIMD # Check SIMD
include (SfizzSIMDSourceFiles) include(SfizzSIMDSourceFiles)
set(BENCHMARK_SIMD_SOURCES) set(BENCHMARK_SIMD_SOURCES)
sfizz_add_simd_sources(BENCHMARK_SIMD_SOURCES "../src") sfizz_add_simd_sources(BENCHMARK_SIMD_SOURCES "../src")
find_package(benchmark CONFIG REQUIRED) find_package(benchmark CONFIG REQUIRED)
@ -28,8 +28,8 @@ macro(sfizz_add_benchmark TARGET)
PRIVATE absl::span absl::algorithm PRIVATE absl::span absl::algorithm
PRIVATE benchmark::benchmark benchmark::benchmark_main PRIVATE benchmark::benchmark benchmark::benchmark_main
PRIVATE bm_simd bm_ftz) PRIVATE bm_simd bm_ftz)
if (LIBATOMIC_FOUND) if(LIBATOMIC_FOUND)
target_link_libraries ("${TARGET}" PRIVATE atomic) target_link_libraries("${TARGET}" PRIVATE atomic)
endif() endif()
target_include_directories("${TARGET}" PRIVATE ../src/sfizz ../src/external) target_include_directories("${TARGET}" PRIVATE ../src/sfizz ../src/external)
sfizz_enable_fast_math("${TARGET}") sfizz_enable_fast_math("${TARGET}")
@ -72,7 +72,7 @@ target_link_libraries(bm_smoothers PRIVATE sfizz::sfizz)
sfizz_add_benchmark(bm_powerFollower BM_powerFollower.cpp) sfizz_add_benchmark(bm_powerFollower BM_powerFollower.cpp)
target_link_libraries(bm_powerFollower PRIVATE sfizz::sfizz) target_link_libraries(bm_powerFollower PRIVATE sfizz::sfizz)
if (TARGET sfizz-samplerate) if(TARGET sfizz-samplerate)
sfizz_add_benchmark(bm_resample BM_resample.cpp ${BENCHMARK_SIMD_SOURCES}) sfizz_add_benchmark(bm_resample BM_resample.cpp ${BENCHMARK_SIMD_SOURCES})
target_link_libraries(bm_resample PRIVATE sfizz-samplerate sfizz-sndfile sfizz-cpuid) target_link_libraries(bm_resample PRIVATE sfizz-samplerate sfizz-sndfile sfizz-cpuid)
endif() endif()
@ -140,14 +140,13 @@ add_dependencies(sfizz_benchmarks
bm_flacfile bm_flacfile
bm_filterModulation bm_filterModulation
bm_filterStereoMono bm_filterStereoMono
bm_stringResonator bm_stringResonator)
)
if (TARGET bm_resample) if(TARGET bm_resample)
add_dependencies(sfizz_benchmarks bm_resample) add_dependencies(sfizz_benchmarks bm_resample)
endif() endif()
if (SFIZZ_SYSTEM_PROCESSOR MATCHES "armv7l") if(SFIZZ_SYSTEM_PROCESSOR MATCHES "armv7l")
sfizz_add_benchmark(bm_pan_arm BM_pan_arm.cpp ../src/sfizz/Panning.cpp) sfizz_add_benchmark(bm_pan_arm BM_pan_arm.cpp ../src/sfizz/Panning.cpp)
target_link_libraries(bm_pan_arm PRIVATE sfizz-jsl) target_link_libraries(bm_pan_arm PRIVATE sfizz-jsl)
add_dependencies(sfizz_benchmarks bm_pan_arm) add_dependencies(sfizz_benchmarks bm_pan_arm)

View file

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

View file

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

View file

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

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") set(CMAKE_C_STANDARD 99 CACHE STRING "C standard to be used")
# Export the compile_commands.json file # Export the compile_commands.json file
set (CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Only install what's explicitely said # Only install what's explicitely said
set (CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true) set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY true)
set (CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set (CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set (CMAKE_VISIBILITY_INLINES_HIDDEN ON) set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
# Set Windows compatibility level to 7 # Set Windows compatibility level to 7
if (WIN32) if(WIN32)
add_compile_definitions(_WIN32_WINNT=0x601) add_compile_definitions(_WIN32_WINNT=0x601)
endif() endif()
# Set macOS compatibility level # Set macOS compatibility level
if (APPLE) if(APPLE)
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9") set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9")
endif() endif()
# Do not define macros `min` and `max` # Do not define macros `min` and `max`
if (WIN32) if(WIN32)
add_compile_definitions(NOMINMAX) add_compile_definitions(NOMINMAX)
endif() endif()
@ -46,13 +46,13 @@ if(APPLE)
# and https://stackoverflow.com/a/21692023 # and https://stackoverflow.com/a/21692023
# Apparently this is not needed in Travis CI using addons # Apparently this is not needed in Travis CI using addons
# but it is in Appveyor instead # but it is in Appveyor instead
list (APPEND CMAKE_PREFIX_PATH /usr/local) list(APPEND CMAKE_PREFIX_PATH /usr/local)
endif() endif()
# The variable CMAKE_SYSTEM_PROCESSOR is incorrect on Visual studio... # The variable CMAKE_SYSTEM_PROCESSOR is incorrect on Visual studio...
# see https://gitlab.kitware.com/cmake/cmake/issues/15170 # see https://gitlab.kitware.com/cmake/cmake/issues/15170
if (NOT SFIZZ_SYSTEM_PROCESSOR) if(NOT SFIZZ_SYSTEM_PROCESSOR)
if(MSVC) if(MSVC)
set(SFIZZ_SYSTEM_PROCESSOR "${MSVC_CXX_ARCHITECTURE_ID}") set(SFIZZ_SYSTEM_PROCESSOR "${MSVC_CXX_ARCHITECTURE_ID}")
else() else()
@ -61,13 +61,13 @@ if (NOT SFIZZ_SYSTEM_PROCESSOR)
endif() endif()
# Add required flags for the builds # Add required flags for the builds
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
gw_warn(-Wall -Wextra -Wno-multichar -Werror=return-type) gw_warn(-Wall -Wextra -Wno-multichar -Werror=return-type)
if (SFIZZ_SYSTEM_PROCESSOR MATCHES "^(i.86|x86_64)$") if(SFIZZ_SYSTEM_PROCESSOR MATCHES "^(i.86|x86_64)$")
add_compile_options(-msse2) add_compile_options(-msse2)
elseif(SFIZZ_SYSTEM_PROCESSOR MATCHES "^(arm.*)$") elseif(SFIZZ_SYSTEM_PROCESSOR MATCHES "^(arm.*)$")
add_compile_options(-mfpu=neon) add_compile_options(-mfpu=neon)
if (NOT ANDROID) if(NOT ANDROID)
add_compile_options(-mfloat-abi=hard) add_compile_options(-mfloat-abi=hard)
endif() endif()
endif() endif()
@ -75,14 +75,14 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
if(SFIZZ_HAVE_FALIGNED_NEW) if(SFIZZ_HAVE_FALIGNED_NEW)
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-faligned-new>) add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-faligned-new>)
endif() endif()
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
add_compile_options(/Zc:__cplusplus) add_compile_options(/Zc:__cplusplus)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif() endif()
function(sfizz_enable_fast_math NAME) function(sfizz_enable_fast_math NAME)
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options("${NAME}" PRIVATE "-ffast-math") target_compile_options("${NAME}" PRIVATE "-ffast-math")
elseif(MSVC) elseif(MSVC)
target_compile_options("${NAME}" PRIVATE "/fp:fast") target_compile_options("${NAME}" PRIVATE "/fp:fast")
@ -98,9 +98,9 @@ add_library(sfizz-cxxopts INTERFACE)
target_include_directories(sfizz-cxxopts INTERFACE "external/cxxopts") target_include_directories(sfizz-cxxopts INTERFACE "external/cxxopts")
# The sndfile library # The sndfile library
if (SFIZZ_USE_SNDFILE OR SFIZZ_DEMOS OR SFIZZ_BENCHMARKS OR SFIZZ_RENDER) if(SFIZZ_USE_SNDFILE OR SFIZZ_DEMOS OR SFIZZ_BENCHMARKS OR SFIZZ_RENDER)
add_library(sfizz-sndfile INTERFACE) add_library(sfizz-sndfile INTERFACE)
if (SFIZZ_USE_VCPKG OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC") if(SFIZZ_USE_VCPKG OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
find_package(SndFile CONFIG REQUIRED) find_package(SndFile CONFIG REQUIRED)
find_path(SNDFILE_INCLUDE_DIR "sndfile.hh") find_path(SNDFILE_INCLUDE_DIR "sndfile.hh")
target_include_directories(sfizz-sndfile INTERFACE "${SNDFILE_INCLUDE_DIR}") target_include_directories(sfizz-sndfile INTERFACE "${SNDFILE_INCLUDE_DIR}")
@ -109,7 +109,7 @@ if (SFIZZ_USE_SNDFILE OR SFIZZ_DEMOS OR SFIZZ_BENCHMARKS OR SFIZZ_RENDER)
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
pkg_check_modules(SNDFILE "sndfile" REQUIRED) pkg_check_modules(SNDFILE "sndfile" REQUIRED)
target_include_directories(sfizz-sndfile INTERFACE ${SNDFILE_INCLUDE_DIRS}) target_include_directories(sfizz-sndfile INTERFACE ${SNDFILE_INCLUDE_DIRS})
if (SFIZZ_STATIC_DEPENDENCIES) if(SFIZZ_STATIC_DEPENDENCIES)
target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_STATIC_LIBRARIES}) target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_STATIC_LIBRARIES})
else() else()
target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_LIBRARIES}) target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_LIBRARIES})
@ -119,7 +119,7 @@ if (SFIZZ_USE_SNDFILE OR SFIZZ_DEMOS OR SFIZZ_BENCHMARKS OR SFIZZ_RENDER)
endif() endif()
# The st_audiofile library # The st_audiofile library
if (SFIZZ_USE_SNDFILE) if(SFIZZ_USE_SNDFILE)
set(ST_AUDIO_FILE_USE_SNDFILE ON CACHE BOOL "" FORCE) set(ST_AUDIO_FILE_USE_SNDFILE ON CACHE BOOL "" FORCE)
set(ST_AUDIO_FILE_EXTERNAL_SNDFILE "sfizz-sndfile" CACHE STRING "" FORCE) set(ST_AUDIO_FILE_EXTERNAL_SNDFILE "sfizz-sndfile" CACHE STRING "" FORCE)
else() else()
@ -131,7 +131,7 @@ add_subdirectory("external/st_audiofile" EXCLUDE_FROM_ALL)
# If we build with Clang, optionally use libc++. Enabled by default on Apple OS. # If we build with Clang, optionally use libc++. Enabled by default on Apple OS.
cmake_dependent_option(USE_LIBCPP "Use libc++ with clang" "${APPLE}" cmake_dependent_option(USE_LIBCPP "Use libc++ with clang" "${APPLE}"
"CMAKE_CXX_COMPILER_ID MATCHES Clang" OFF) "CMAKE_CXX_COMPILER_ID MATCHES Clang" OFF)
if (USE_LIBCPP) if(USE_LIBCPP)
add_compile_options(-stdlib=libc++) add_compile_options(-stdlib=libc++)
# Presumably need the above for linking too, maybe other options missing as well # Presumably need the above for linking too, maybe other options missing as well
add_link_options(-stdlib=libc++) # New command on CMake master, not in 3.12 release add_link_options(-stdlib=libc++) # New command on CMake master, not in 3.12 release
@ -147,25 +147,25 @@ target_include_directories(sfizz-spline PUBLIC "src/external/spline")
add_library(sfizz-tunings STATIC "src/external/tunings/src/Tunings.cpp") add_library(sfizz-tunings STATIC "src/external/tunings/src/Tunings.cpp")
target_include_directories(sfizz-tunings PUBLIC "src/external/tunings/include") target_include_directories(sfizz-tunings PUBLIC "src/external/tunings/include")
include (CheckLibraryExists) include(CheckLibraryExists)
add_library (sfizz-atomic INTERFACE) add_library(sfizz-atomic INTERFACE)
if (UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic") file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic")
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c" "int main() { return 0; }") file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c" "int main() { return 0; }")
try_compile(SFIZZ_LINK_LIBATOMIC "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic" try_compile(SFIZZ_LINK_LIBATOMIC "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic"
SOURCES "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c" SOURCES "${CMAKE_CURRENT_BINARY_DIR}/check_libatomic/check_libatomic.c"
LINK_LIBRARIES "atomic") LINK_LIBRARIES "atomic")
if (SFIZZ_LINK_LIBATOMIC) if(SFIZZ_LINK_LIBATOMIC)
target_link_libraries (sfizz-atomic INTERFACE "atomic") target_link_libraries(sfizz-atomic INTERFACE "atomic")
endif() endif()
else() else()
set(SFIZZ_LINK_LIBATOMIC FALSE) set(SFIZZ_LINK_LIBATOMIC FALSE)
endif() endif()
# Don't show build information when building a different project # Don't show build information when building a different project
function (show_build_info_if_needed) function(show_build_info_if_needed)
if (CMAKE_PROJECT_NAME STREQUAL "sfizz") if(CMAKE_PROJECT_NAME STREQUAL "sfizz")
message (STATUS " message(STATUS "
Project name: ${PROJECT_NAME} Project name: ${PROJECT_NAME}
Build type: ${CMAKE_BUILD_TYPE} Build type: ${CMAKE_BUILD_TYPE}
Build processor: ${SFIZZ_SYSTEM_PROCESSOR} Build processor: ${SFIZZ_SYSTEM_PROCESSOR}
@ -195,4 +195,4 @@ Compiler CXX min size flags: ${CMAKE_CXX_FLAGS_MINSIZEREL}
endif() endif()
endfunction() endfunction()
find_package (Threads REQUIRED) find_package(Threads REQUIRED)

View file

@ -1,7 +1,7 @@
macro(sfizz_add_simd_sources SOURCES_VAR PREFIX) macro(sfizz_add_simd_sources SOURCES_VAR PREFIX)
# It needs a macro, otherwise the source properties cannot take effect. # It needs a macro, otherwise the source properties cannot take effect.
list (APPEND ${SOURCES_VAR} list(APPEND ${SOURCES_VAR}
${PREFIX}/sfizz/SIMDHelpers.cpp ${PREFIX}/sfizz/SIMDHelpers.cpp
${PREFIX}/sfizz/simd/HelpersNEON.cpp ${PREFIX}/sfizz/simd/HelpersNEON.cpp
${PREFIX}/sfizz/simd/HelpersSSE.cpp ${PREFIX}/sfizz/simd/HelpersSSE.cpp
@ -9,10 +9,10 @@ macro(sfizz_add_simd_sources SOURCES_VAR PREFIX)
# For CPU-dispatched X86 sources # For CPU-dispatched X86 sources
# Always build them for all X86 targets. # Always build them for all X86 targets.
if (SFIZZ_SYSTEM_PROCESSOR MATCHES "^(x86_64|amd64|AMD64|x64|X64|i.86|x86|X86)$") if(SFIZZ_SYSTEM_PROCESSOR MATCHES "^(x86_64|amd64|AMD64|x64|X64|i.86|x86|X86)$")
# on GCC, it requires to set ISA support flags on individual files # on GCC, it requires to set ISA support flags on individual files
# to be able to use the intrinsics # to be able to use the intrinsics
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
set_source_files_properties( set_source_files_properties(
${PREFIX}/sfizz/effects/impl/ResonantStringAVX.cpp ${PREFIX}/sfizz/effects/impl/ResonantStringAVX.cpp
${PREFIX}/sfizz/effects/impl/ResonantArrayAVX.cpp ${PREFIX}/sfizz/effects/impl/ResonantArrayAVX.cpp

View file

@ -7,12 +7,12 @@ if(NOT TARGET uninstall)
add_custom_target(uninstall add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/MakeUninstall.cmake) COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/MakeUninstall.cmake)
if (SFIZZ_LV2 AND LV2PLUGIN_INSTALL_DIR) if(SFIZZ_LV2 AND LV2PLUGIN_INSTALL_DIR)
add_custom_command(TARGET uninstall add_custom_command(TARGET uninstall
COMMAND rm -rv "${LV2PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2") COMMAND rm -rv "${LV2PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.lv2")
endif() endif()
if (SFIZZ_VST AND VSTPLUGIN_INSTALL_DIR) if(SFIZZ_VST AND VSTPLUGIN_INSTALL_DIR)
add_custom_command(TARGET uninstall add_custom_command(TARGET uninstall
COMMAND rm -rv "${VSTPLUGIN_INSTALL_DIR}/${PROJECT_NAME}.vst3") COMMAND rm -rv "${VSTPLUGIN_INSTALL_DIR}/${PROJECT_NAME}.vst3")
endif() endif()

View file

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

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 the build directory as <build_dir>/lv2/<plugin_name>.lv2/
set (PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2") set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
# LV2 plugin specific settings # LV2 plugin specific settings
include (LV2Config) include(LV2Config)
# Keep non build turtle files in IDE # Keep non build turtle files in IDE
set (LV2PLUGIN_TTL_SRC_FILES set(LV2PLUGIN_TTL_SRC_FILES
manifest.ttl.in manifest.ttl.in
${PROJECT_NAME}.ttl.in ${PROJECT_NAME}.ttl.in
) )
if (SFIZZ_LV2_UI) if(SFIZZ_LV2_UI)
list(APPEND LV2PLUGIN_TTL_SRC_FILES list(APPEND LV2PLUGIN_TTL_SRC_FILES
${PROJECT_NAME}_ui.ttl.in) ${PROJECT_NAME}_ui.ttl.in)
endif() endif()
source_group("Turtle Files" FILES source_group("Turtle Files" FILES
${LV2PLUGIN_TTL_SRC_FILES} ${LV2PLUGIN_TTL_SRC_FILES}
) )
add_library (${LV2PLUGIN_PRJ_NAME} MODULE add_library(${LV2PLUGIN_PRJ_NAME} MODULE
${PROJECT_NAME}.c ${PROJECT_NAME}.c
atomic_compat.h atomic_compat.h
${LV2PLUGIN_TTL_SRC_FILES}) ${LV2PLUGIN_TTL_SRC_FILES})
target_link_libraries (${LV2PLUGIN_PRJ_NAME} ${PROJECT_NAME}::${PROJECT_NAME}) target_link_libraries(${LV2PLUGIN_PRJ_NAME} ${PROJECT_NAME}::${PROJECT_NAME})
if (SFIZZ_LV2_UI) if(SFIZZ_LV2_UI)
add_library (${LV2PLUGIN_PRJ_NAME}_ui MODULE add_library(${LV2PLUGIN_PRJ_NAME}_ui MODULE
${PROJECT_NAME}_ui.cpp ${PROJECT_NAME}_ui.cpp
vstgui_helpers.h vstgui_helpers.h
vstgui_helpers.cpp) vstgui_helpers.cpp)
target_link_libraries (${LV2PLUGIN_PRJ_NAME}_ui sfizz_editor sfizz-vstgui) target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui sfizz_editor sfizz-vstgui)
endif() endif()
# Explicitely strip all symbols on Linux but lv2_descriptor() # Explicitely strip all symbols on Linux but lv2_descriptor()
# MacOS linker does not support this apparently https://bugs.webkit.org/show_bug.cgi?id=144555 # MacOS linker does not support this apparently https://bugs.webkit.org/show_bug.cgi?id=144555
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
file(COPY lv2.version DESTINATION ${CMAKE_BINARY_DIR}/lv2) file(COPY lv2.version DESTINATION ${CMAKE_BINARY_DIR}/lv2)
target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,--version-script=lv2.version") target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,--version-script=lv2.version")
# target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,-u,lv2_descriptor") # target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,-u,lv2_descriptor")
if (SFIZZ_LV2_UI) if(SFIZZ_LV2_UI)
file(COPY lv2ui.version DESTINATION ${CMAKE_BINARY_DIR}/lv2) file(COPY lv2ui.version DESTINATION ${CMAKE_BINARY_DIR}/lv2)
target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,--version-script=lv2ui.version") target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,--version-script=lv2ui.version")
# target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,-u,lv2ui_descriptor") # target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,-u,lv2ui_descriptor")
endif() endif()
endif() endif()
target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE . external/ardour) target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE . external/ardour)
sfizz_enable_lto_if_needed (${LV2PLUGIN_PRJ_NAME}) sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME})
if (MINGW) if(MINGW)
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static") set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
endif() endif()
if (SFIZZ_LV2_UI) if(SFIZZ_LV2_UI)
target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour) target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour)
sfizz_enable_lto_if_needed (${LV2PLUGIN_PRJ_NAME}_ui) sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME}_ui)
if (MINGW) if(MINGW)
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static") set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static")
endif() endif()
endif() endif()
# Remove the "lib" prefix, rename the target name and build it in the .lv build dir # Remove the "lib" prefix, rename the target name and build it in the .lv build dir
# <build_dir>/lv2/<plugin_name>_lv2.<ext> to # <build_dir>/lv2/<plugin_name>_lv2.<ext> to
# <build_dir>/lv2/<plugin_name>.lv2/<plugin_name>.<ext> # <build_dir>/lv2/<plugin_name>.lv2/<plugin_name>.<ext>
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES PREFIX "") set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES PREFIX "")
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>") set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
if (SFIZZ_LV2_UI) if(SFIZZ_LV2_UI)
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES PREFIX "") set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES PREFIX "")
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_ui") set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_ui")
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>") set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
endif() endif()
# Generate *.ttl files from *.in sources, # Generate *.ttl files from *.in sources,
# create the destination directory if it doesn't exists and copy needed files # create the destination directory if it doesn't exists and copy needed files
file (MAKE_DIRECTORY ${PROJECT_BINARY_DIR}) file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
configure_file (manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl) configure_file(manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl)
configure_file (${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl) configure_file(${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl)
if (SFIZZ_LV2_UI) if(SFIZZ_LV2_UI)
configure_file (${PROJECT_NAME}_ui.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_ui.ttl) configure_file(${PROJECT_NAME}_ui.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_ui.ttl)
endif() endif()
configure_file (LICENSE.md.in ${PROJECT_BINARY_DIR}/LICENSE.md) configure_file(LICENSE.md.in ${PROJECT_BINARY_DIR}/LICENSE.md)
if (SFIZZ_USE_VCPKG OR SFIZZ_STATIC_DEPENDENCIES OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC") if(SFIZZ_USE_VCPKG OR SFIZZ_STATIC_DEPENDENCIES OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
file(COPY "lgpl-3.0.txt" DESTINATION ${PROJECT_BINARY_DIR}) file(COPY "lgpl-3.0.txt" DESTINATION ${PROJECT_BINARY_DIR})
endif() endif()
@ -90,13 +90,13 @@ set(LV2_RESOURCES
execute_process( execute_process(
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources") COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
foreach(res ${LV2_RESOURCES}) foreach(res ${LV2_RESOURCES})
file (COPY "${CMAKE_CURRENT_SOURCE_DIR}/resources/${res}" file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/resources/${res}"
DESTINATION "${PROJECT_BINARY_DIR}/Contents/Resources") DESTINATION "${PROJECT_BINARY_DIR}/Contents/Resources")
endforeach() endforeach()
# Copy editor resources # Copy editor resources
if (SFIZZ_LV2_UI) if(SFIZZ_LV2_UI)
execute_process ( execute_process(
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources") COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
copy_editor_resources( copy_editor_resources(
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources" "${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
@ -104,7 +104,7 @@ if (SFIZZ_LV2_UI)
endif() endif()
# Installation # Installation
if (NOT MSVC) if(NOT MSVC)
install(DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2PLUGIN_INSTALL_DIR} install(DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2PLUGIN_INSTALL_DIR}
COMPONENT "lv2") COMPONENT "lv2")
bundle_dylibs(lv2 bundle_dylibs(lv2

View file

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

View file

@ -1,14 +1,14 @@
set (VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3") set(VSTPLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
set (VSTPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3") set(VSTPLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
set (VST3SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK") set(VST3SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK")
#set (AUWRAPPER_BASEDIR "${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper") #set(AUWRAPPER_BASEDIR "${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper")
set (AUWRAPPER_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/sfzt_auwrapper") set(AUWRAPPER_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/sfzt_auwrapper")
# VST plugin specific settings # VST plugin specific settings
include (VSTConfig) include(VSTConfig)
configure_file (VstPluginDefs.h.in "${CMAKE_CURRENT_BINARY_DIR}/VstPluginDefs.h") configure_file(VstPluginDefs.h.in "${CMAKE_CURRENT_BINARY_DIR}/VstPluginDefs.h")
# Build VST3 SDK # Build VST3 SDK
include("cmake/Vst3.cmake") include("cmake/Vst3.cmake")
@ -71,24 +71,24 @@ plugin_add_vst3sdk(${VSTPLUGIN_PRJ_NAME})
plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME}) plugin_add_vstgui(${VSTPLUGIN_PRJ_NAME})
# Add the ring buffer # Add the ring buffer
set (RINGBUFFER_HEADERS set(RINGBUFFER_HEADERS
"external/ring_buffer/ring_buffer/ring_buffer.h" "external/ring_buffer/ring_buffer/ring_buffer.h"
"external/ring_buffer/ring_buffer/ring_buffer.tcc") "external/ring_buffer/ring_buffer/ring_buffer.tcc")
add_library(sfizz_ring_buffer STATIC add_library(sfizz_ring_buffer STATIC
"external/ring_buffer/ring_buffer/ring_buffer.cpp" "external/ring_buffer/ring_buffer/ring_buffer.cpp"
${RINGBUFFER_HEADERS}) ${RINGBUFFER_HEADERS})
source_group ("Header Files" FILES ${RINGBUFFER_HEADERS}) source_group("Header Files" FILES ${RINGBUFFER_HEADERS})
target_include_directories(sfizz_ring_buffer INTERFACE "external/ring_buffer") target_include_directories(sfizz_ring_buffer INTERFACE "external/ring_buffer")
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE sfizz_ring_buffer) target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE sfizz_ring_buffer)
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version") "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/vst3.version")
endif() endif()
sfizz_enable_lto_if_needed (${VSTPLUGIN_PRJ_NAME}) sfizz_enable_lto_if_needed(${VSTPLUGIN_PRJ_NAME})
if (MINGW) if(MINGW)
set_target_properties (${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static") set_target_properties(${VSTPLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
endif() endif()
# Link system dependencies # Link system dependencies
@ -102,8 +102,8 @@ else()
target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE ${GLIB_LIBRARIES}) target_link_libraries(${VSTPLUGIN_PRJ_NAME} PRIVATE ${GLIB_LIBRARIES})
endif() endif()
# Create the bundle (see "VST 3 Locations / Format") # Create the bundle(see "VST 3 Locations / Format")
execute_process ( execute_process(
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources") COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}/Contents/Resources")
copy_editor_resources( copy_editor_resources(
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources" "${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
@ -140,7 +140,7 @@ else()
DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}") DESTINATION "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}")
endif() endif()
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
gw_target_warn(${VSTPLUGIN_PRJ_NAME} PRIVATE gw_target_warn(${VSTPLUGIN_PRJ_NAME} PRIVATE
"-Wno-extra" "-Wno-extra"
"-Wno-multichar" "-Wno-multichar"
@ -154,12 +154,12 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
endif() endif()
# To help debugging the link only # To help debugging the link only
if (FALSE) if(FALSE)
target_link_options(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined") target_link_options(${VSTPLUGIN_PRJ_NAME} PRIVATE "-Wl,-no-undefined")
endif() endif()
# Installation # Installation
if (NOT MSVC) if(NOT MSVC)
install(DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}" install(DIRECTORY "${PROJECT_BINARY_DIR}/${VSTPLUGIN_BUNDLE_NAME}"
DESTINATION "${VSTPLUGIN_INSTALL_DIR}" DESTINATION "${VSTPLUGIN_INSTALL_DIR}"
COMPONENT "vst") COMPONENT "vst")
@ -261,7 +261,7 @@ elseif(SFIZZ_AU)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/aucocoaclassprefix.h" file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/aucocoaclassprefix.h"
"#define SMTG_AU_NAMESPACE SMTGAUCocoa${SFIZZ_AU_CLASS_PREFIX_NUMBER}_") "#define SMTG_AU_NAMESPACE SMTGAUCocoa${SFIZZ_AU_CLASS_PREFIX_NUMBER}_")
sfizz_enable_lto_if_needed (${AUPLUGIN_PRJ_NAME}) sfizz_enable_lto_if_needed(${AUPLUGIN_PRJ_NAME})
# Create the bundle # Create the bundle
execute_process( execute_process(
@ -293,7 +293,7 @@ elseif(SFIZZ_AU)
DESTINATION "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License") DESTINATION "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/SharedSupport/License")
# Add the resource fork # Add the resource fork
if (FALSE) if(FALSE)
execute_process(COMMAND "xcrun" "--find" "Rez" execute_process(COMMAND "xcrun" "--find" "Rez"
OUTPUT_VARIABLE OSX_REZ_COMMAND OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_VARIABLE OSX_REZ_COMMAND OUTPUT_STRIP_TRAILING_WHITESPACE)
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include") file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
@ -316,7 +316,7 @@ elseif(SFIZZ_AU)
"${AUWRAPPER_BASEDIR}/auresource.r") "${AUWRAPPER_BASEDIR}/auresource.r")
endif() endif()
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
gw_target_warn(${AUPLUGIN_PRJ_NAME} PRIVATE gw_target_warn(${AUPLUGIN_PRJ_NAME} PRIVATE
"-Wno-extra" "-Wno-extra"
"-Wno-multichar" "-Wno-multichar"