commit
b63f7eee9c
20 changed files with 322 additions and 310 deletions
|
|
@ -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)
|
||||
|
|
@ -12,27 +12,28 @@ 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)
|
||||
|
||||
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,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,45 +112,44 @@ 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
|
||||
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)
|
||||
target_link_libraries(bm_pan_arm PRIVATE sfizz::jsl)
|
||||
add_dependencies(sfizz_benchmarks bm_pan_arm)
|
||||
endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,27 +1,28 @@
|
|||
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)
|
||||
add_library(sfizz-fmidi STATIC
|
||||
if(SFIZZ_RENDER)
|
||||
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)
|
||||
sfizz_enable_lto_if_needed (sfizz_render)
|
||||
install (TARGETS sfizz_render DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT "render" OPTIONAL)
|
||||
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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -1,31 +1,32 @@
|
|||
include(CMakeDependentOption)
|
||||
include(CheckCXXCompilerFlag)
|
||||
include(CheckLibraryExists)
|
||||
include(GNUWarnings)
|
||||
|
||||
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 +47,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 +62,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 +76,14 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
|||
if(SFIZZ_HAVE_FALIGNED_NEW)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-faligned-new>)
|
||||
endif()
|
||||
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
add_compile_options(/Zc:__cplusplus)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
endif()
|
||||
|
||||
function(sfizz_enable_fast_math NAME)
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||
target_compile_options("${NAME}" PRIVATE "-ffast-math")
|
||||
elseif(MSVC)
|
||||
target_compile_options("${NAME}" PRIVATE "/fp:fast")
|
||||
|
|
@ -90,38 +91,41 @@ 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)
|
||||
if (SFIZZ_USE_VCPKG OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||
if(SFIZZ_USE_SNDFILE OR SFIZZ_DEMOS OR SFIZZ_BENCHMARKS OR SFIZZ_RENDER)
|
||||
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})
|
||||
if (SFIZZ_STATIC_DEPENDENCIES)
|
||||
target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_STATIC_LIBRARIES})
|
||||
target_include_directories(sfizz_sndfile INTERFACE ${SNDFILE_INCLUDE_DIRS})
|
||||
if(SFIZZ_STATIC_DEPENDENCIES)
|
||||
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()
|
||||
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)
|
||||
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)
|
||||
|
|
@ -131,41 +135,44 @@ 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
|
||||
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)
|
||||
if (UNIX AND NOT APPLE)
|
||||
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; }")
|
||||
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 +202,4 @@ Compiler CXX min size flags: ${CMAKE_CXX_FLAGS_MINSIZEREL}
|
|||
endif()
|
||||
endfunction()
|
||||
|
||||
find_package (Threads REQUIRED)
|
||||
find_package(Threads REQUIRED)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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 sfizz_parser)
|
||||
target_link_libraries(sfizz_preprocessor PRIVATE sfizz_parser sfizz::cxxopts)
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@
|
|||
*/
|
||||
|
||||
#include "parser/Parser.h"
|
||||
#include "../tests/cxxopts.hpp"
|
||||
#include "absl/strings/string_view.h"
|
||||
#include <cxxopts.hpp>
|
||||
#include <absl/strings/string_view.h>
|
||||
#include <iostream>
|
||||
|
||||
class MyParserListener : public sfz::Parser::Listener {
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -1,85 +1,85 @@
|
|||
set (LV2PLUGIN_PRJ_NAME "${PROJECT_NAME}_lv2")
|
||||
set(LV2PLUGIN_PRJ_NAME "${PROJECT_NAME}_lv2")
|
||||
|
||||
# Set the build directory as <build_dir>/lv2/<plugin_name>.lv2/
|
||||
set (PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
|
||||
set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
|
||||
|
||||
# LV2 plugin specific settings
|
||||
include (LV2Config)
|
||||
include(LV2Config)
|
||||
|
||||
# Keep non build turtle files in IDE
|
||||
set (LV2PLUGIN_TTL_SRC_FILES
|
||||
set(LV2PLUGIN_TTL_SRC_FILES
|
||||
manifest.ttl.in
|
||||
${PROJECT_NAME}.ttl.in
|
||||
)
|
||||
if (SFIZZ_LV2_UI)
|
||||
if(SFIZZ_LV2_UI)
|
||||
list(APPEND LV2PLUGIN_TTL_SRC_FILES
|
||||
${PROJECT_NAME}_ui.ttl.in)
|
||||
endif()
|
||||
source_group("Turtle Files" FILES
|
||||
${LV2PLUGIN_TTL_SRC_FILES}
|
||||
)
|
||||
add_library (${LV2PLUGIN_PRJ_NAME} MODULE
|
||||
add_library(${LV2PLUGIN_PRJ_NAME} MODULE
|
||||
${PROJECT_NAME}.c
|
||||
atomic_compat.h
|
||||
${LV2PLUGIN_TTL_SRC_FILES})
|
||||
target_link_libraries (${LV2PLUGIN_PRJ_NAME} ${PROJECT_NAME}::${PROJECT_NAME})
|
||||
target_link_libraries(${LV2PLUGIN_PRJ_NAME} ${PROJECT_NAME}::${PROJECT_NAME})
|
||||
|
||||
if (SFIZZ_LV2_UI)
|
||||
add_library (${LV2PLUGIN_PRJ_NAME}_ui MODULE
|
||||
if(SFIZZ_LV2_UI)
|
||||
add_library(${LV2PLUGIN_PRJ_NAME}_ui MODULE
|
||||
${PROJECT_NAME}_ui.cpp
|
||||
vstgui_helpers.h
|
||||
vstgui_helpers.cpp)
|
||||
target_link_libraries (${LV2PLUGIN_PRJ_NAME}_ui sfizz_editor sfizz-vstgui)
|
||||
target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui sfizz_editor sfizz::vstgui)
|
||||
endif()
|
||||
|
||||
# Explicitely strip all symbols on Linux but lv2_descriptor()
|
||||
# MacOS linker does not support this apparently https://bugs.webkit.org/show_bug.cgi?id=144555
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
file(COPY lv2.version DESTINATION ${CMAKE_BINARY_DIR}/lv2)
|
||||
target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,--version-script=lv2.version")
|
||||
# target_link_libraries(${LV2PLUGIN_PRJ_NAME} "-Wl,-u,lv2_descriptor")
|
||||
if (SFIZZ_LV2_UI)
|
||||
if(SFIZZ_LV2_UI)
|
||||
file(COPY lv2ui.version DESTINATION ${CMAKE_BINARY_DIR}/lv2)
|
||||
target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,--version-script=lv2ui.version")
|
||||
# target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,-u,lv2ui_descriptor")
|
||||
endif()
|
||||
endif()
|
||||
target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE . external/ardour)
|
||||
sfizz_enable_lto_if_needed (${LV2PLUGIN_PRJ_NAME})
|
||||
if (MINGW)
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME})
|
||||
if(MINGW)
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES LINK_FLAGS "-static")
|
||||
endif()
|
||||
if (SFIZZ_LV2_UI)
|
||||
if(SFIZZ_LV2_UI)
|
||||
target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour)
|
||||
sfizz_enable_lto_if_needed (${LV2PLUGIN_PRJ_NAME}_ui)
|
||||
if (MINGW)
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static")
|
||||
sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME}_ui)
|
||||
if(MINGW)
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Remove the "lib" prefix, rename the target name and build it in the .lv build dir
|
||||
# <build_dir>/lv2/<plugin_name>_lv2.<ext> to
|
||||
# <build_dir>/lv2/<plugin_name>.lv2/<plugin_name>.<ext>
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES PREFIX "")
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES PREFIX "")
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
|
||||
|
||||
if (SFIZZ_LV2_UI)
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES PREFIX "")
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_ui")
|
||||
set_target_properties (${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
|
||||
if(SFIZZ_LV2_UI)
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES PREFIX "")
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES OUTPUT_NAME "${PROJECT_NAME}_ui")
|
||||
set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Contents/Binary/$<0:>")
|
||||
endif()
|
||||
|
||||
# Generate *.ttl files from *.in sources,
|
||||
# create the destination directory if it doesn't exists and copy needed files
|
||||
file (MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||
configure_file (manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl)
|
||||
configure_file (${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl)
|
||||
if (SFIZZ_LV2_UI)
|
||||
configure_file (${PROJECT_NAME}_ui.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_ui.ttl)
|
||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||
configure_file(manifest.ttl.in ${PROJECT_BINARY_DIR}/manifest.ttl)
|
||||
configure_file(${PROJECT_NAME}.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.ttl)
|
||||
if(SFIZZ_LV2_UI)
|
||||
configure_file(${PROJECT_NAME}_ui.ttl.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_ui.ttl)
|
||||
endif()
|
||||
configure_file (LICENSE.md.in ${PROJECT_BINARY_DIR}/LICENSE.md)
|
||||
if (SFIZZ_USE_VCPKG OR SFIZZ_STATIC_DEPENDENCIES OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||
configure_file(LICENSE.md.in ${PROJECT_BINARY_DIR}/LICENSE.md)
|
||||
if(SFIZZ_USE_VCPKG OR SFIZZ_STATIC_DEPENDENCIES OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||
file(COPY "lgpl-3.0.txt" DESTINATION ${PROJECT_BINARY_DIR})
|
||||
endif()
|
||||
|
||||
|
|
@ -90,13 +90,13 @@ set(LV2_RESOURCES
|
|||
execute_process(
|
||||
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
|
||||
foreach(res ${LV2_RESOURCES})
|
||||
file (COPY "${CMAKE_CURRENT_SOURCE_DIR}/resources/${res}"
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/resources/${res}"
|
||||
DESTINATION "${PROJECT_BINARY_DIR}/Contents/Resources")
|
||||
endforeach()
|
||||
|
||||
# Copy editor resources
|
||||
if (SFIZZ_LV2_UI)
|
||||
execute_process (
|
||||
if(SFIZZ_LV2_UI)
|
||||
execute_process(
|
||||
COMMAND "${CMAKE_COMMAND}" -E make_directory "${PROJECT_BINARY_DIR}/Contents/Resources")
|
||||
copy_editor_resources(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../editor/resources"
|
||||
|
|
@ -104,7 +104,7 @@ if (SFIZZ_LV2_UI)
|
|||
endif()
|
||||
|
||||
# Installation
|
||||
if (NOT MSVC)
|
||||
if(NOT MSVC)
|
||||
install(DIRECTORY ${PROJECT_BINARY_DIR} DESTINATION ${LV2PLUGIN_INSTALL_DIR}
|
||||
COMPONENT "lv2")
|
||||
bundle_dylibs(lv2
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
9
src/external/cpuid/CMakeLists.txt
vendored
9
src/external/cpuid/CMakeLists.txt
vendored
|
|
@ -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)
|
||||
|
|
|
|||
7
src/external/kiss_fft/CMakeLists.txt
vendored
7
src/external/kiss_fft/CMakeLists.txt
vendored
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
@ -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
|
||||
|
|
@ -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")
|
||||
|
|
@ -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
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue