From 4c819222a018dedd4a799520796dacdf40c84230 Mon Sep 17 00:00:00 2001 From: redtide Date: Tue, 7 Mar 2023 17:35:56 +0100 Subject: [PATCH] More optional system preinstalled dependencies Catch2, ghc-filesystem, lv2 headers and VST3SDK sources preinstalled system packages can be used, optionally and where available, to build sfizz via CMake options: SFIZZ_USE_SYSTEM_CATCH SFIZZ_USE_SYSTEM_GHC_FS SFIZZ_USE_SYSTEM_LV2 SFIZZ_USE_SYSTEM_VST3SDK --- CMakeLists.txt | 4 ++++ cmake/SfizzConfig.cmake | 2 ++ cmake/SfizzDeps.cmake | 19 ++++++++++++++++++- plugins/editor/CMakeLists.txt | 9 ++++++++- plugins/editor/src/editor/DlgAbout.h | 18 +++++++++++++++--- plugins/lv2/CMakeLists.txt | 15 +++++++++++++++ .../external/ardour/ardour/lv2_extensions.h | 2 +- .../{ => vendor}/lv2/atom/atom-test-utils.c | 0 plugins/lv2/{ => vendor}/lv2/atom/atom-test.c | 0 plugins/lv2/{ => vendor}/lv2/atom/atom.h | 0 plugins/lv2/{ => vendor}/lv2/atom/atom.ttl | 0 .../lv2/atom/forge-overflow-test.c | 0 plugins/lv2/{ => vendor}/lv2/atom/forge.h | 0 .../{ => vendor}/lv2/atom/lv2-atom.doap.ttl | 0 .../lv2/{ => vendor}/lv2/atom/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/atom/util.h | 0 .../lv2/{ => vendor}/lv2/buf-size/buf-size.h | 0 .../{ => vendor}/lv2/buf-size/buf-size.ttl | 0 .../lv2/buf-size/lv2-buf-size.doap.ttl | 0 .../{ => vendor}/lv2/buf-size/manifest.ttl | 0 .../lv2/{ => vendor}/lv2/core/attributes.h | 0 plugins/lv2/{ => vendor}/lv2/core/lv2.h | 0 plugins/lv2/{ => vendor}/lv2/core/lv2_util.h | 0 .../{ => vendor}/lv2/core/lv2core.doap.ttl | 0 plugins/lv2/{ => vendor}/lv2/core/lv2core.ttl | 0 .../lv2/{ => vendor}/lv2/core/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/core/meta.ttl | 0 .../lv2/data-access/data-access.h | 0 .../lv2/data-access/data-access.ttl | 0 .../lv2/data-access/lv2-data-access.doap.ttl | 0 .../{ => vendor}/lv2/data-access/manifest.ttl | 0 .../lv2/dynmanifest/dynmanifest.h | 0 .../lv2/dynmanifest/dynmanifest.ttl | 0 .../lv2/dynmanifest/lv2-dynmanifest.doap.ttl | 0 .../{ => vendor}/lv2/dynmanifest/manifest.ttl | 0 .../{ => vendor}/lv2/event/event-helpers.h | 0 plugins/lv2/{ => vendor}/lv2/event/event.h | 0 plugins/lv2/{ => vendor}/lv2/event/event.ttl | 0 .../{ => vendor}/lv2/event/lv2-event.doap.ttl | 0 .../lv2/{ => vendor}/lv2/event/manifest.ttl | 0 .../lv2/instance-access/instance-access.h | 0 .../lv2/instance-access/instance-access.ttl | 0 .../lv2-instance-access.doap.ttl | 0 .../lv2/instance-access/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/log/log.h | 0 plugins/lv2/{ => vendor}/lv2/log/log.ttl | 0 plugins/lv2/{ => vendor}/lv2/log/logger.h | 0 .../lv2/{ => vendor}/lv2/log/lv2-log.doap.ttl | 0 plugins/lv2/{ => vendor}/lv2/log/manifest.ttl | 0 .../{ => vendor}/lv2/midi/lv2-midi.doap.ttl | 0 .../lv2/{ => vendor}/lv2/midi/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/midi/midi.h | 0 plugins/lv2/{ => vendor}/lv2/midi/midi.ttl | 0 .../{ => vendor}/lv2/morph/lv2-morph.doap.ttl | 0 .../lv2/{ => vendor}/lv2/morph/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/morph/morph.h | 0 plugins/lv2/{ => vendor}/lv2/morph/morph.ttl | 0 .../lv2/options/lv2-options.doap.ttl | 0 .../lv2/{ => vendor}/lv2/options/manifest.ttl | 0 .../lv2/{ => vendor}/lv2/options/options.h | 0 .../lv2/{ => vendor}/lv2/options/options.ttl | 0 .../lv2/parameters/lv2-parameters.doap.ttl | 0 .../{ => vendor}/lv2/parameters/manifest.ttl | 0 .../{ => vendor}/lv2/parameters/parameters.h | 0 .../lv2/parameters/parameters.ttl | 0 .../{ => vendor}/lv2/patch/lv2-patch.doap.ttl | 0 .../lv2/{ => vendor}/lv2/patch/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/patch/patch.h | 0 plugins/lv2/{ => vendor}/lv2/patch/patch.ttl | 0 .../lv2/port-groups/lv2-port-groups.doap.ttl | 0 .../{ => vendor}/lv2/port-groups/manifest.ttl | 0 .../lv2/port-groups/port-groups.h | 0 .../lv2/port-groups/port-groups.ttl | 0 .../lv2/port-props/lv2-port-props.doap.ttl | 0 .../{ => vendor}/lv2/port-props/manifest.ttl | 0 .../{ => vendor}/lv2/port-props/port-props.h | 0 .../lv2/port-props/port-props.ttl | 0 .../lv2/presets/lv2-presets.doap.ttl | 0 .../lv2/{ => vendor}/lv2/presets/manifest.ttl | 0 .../lv2/{ => vendor}/lv2/presets/presets.h | 0 .../lv2/{ => vendor}/lv2/presets/presets.ttl | 0 .../lv2/resize-port/lv2-resize-port.doap.ttl | 0 .../{ => vendor}/lv2/resize-port/manifest.ttl | 0 .../lv2/resize-port/resize-port.h | 0 .../lv2/resize-port/resize-port.ttl | 0 .../{ => vendor}/lv2/state/lv2-state.doap.ttl | 0 .../lv2/{ => vendor}/lv2/state/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/state/state.h | 0 plugins/lv2/{ => vendor}/lv2/state/state.ttl | 0 .../{ => vendor}/lv2/time/lv2-time.doap.ttl | 0 .../lv2/{ => vendor}/lv2/time/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/time/time.h | 0 plugins/lv2/{ => vendor}/lv2/time/time.ttl | 0 .../lv2/{ => vendor}/lv2/ui/lv2-ui.doap.ttl | 0 plugins/lv2/{ => vendor}/lv2/ui/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/ui/ui.h | 0 plugins/lv2/{ => vendor}/lv2/ui/ui.ttl | 0 .../{ => vendor}/lv2/units/lv2-units.doap.ttl | 0 .../lv2/{ => vendor}/lv2/units/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/units/units.h | 0 plugins/lv2/{ => vendor}/lv2/units/units.ttl | 0 .../lv2/uri-map/lv2-uri-map.doap.ttl | 0 .../lv2/{ => vendor}/lv2/uri-map/manifest.ttl | 0 .../lv2/{ => vendor}/lv2/uri-map/uri-map.h | 0 .../lv2/{ => vendor}/lv2/uri-map/uri-map.ttl | 0 .../{ => vendor}/lv2/urid/lv2-urid.doap.ttl | 0 .../lv2/{ => vendor}/lv2/urid/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/urid/urid.h | 0 plugins/lv2/{ => vendor}/lv2/urid/urid.ttl | 0 .../lv2/worker/lv2-worker.doap.ttl | 0 .../lv2/{ => vendor}/lv2/worker/manifest.ttl | 0 plugins/lv2/{ => vendor}/lv2/worker/worker.h | 0 .../lv2/{ => vendor}/lv2/worker/worker.ttl | 0 plugins/vst/CMakeLists.txt | 9 ++++++++- tests/CMakeLists.txt | 9 ++++++++- 115 files changed, 79 insertions(+), 8 deletions(-) rename plugins/lv2/{ => vendor}/lv2/atom/atom-test-utils.c (100%) rename plugins/lv2/{ => vendor}/lv2/atom/atom-test.c (100%) rename plugins/lv2/{ => vendor}/lv2/atom/atom.h (100%) rename plugins/lv2/{ => vendor}/lv2/atom/atom.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/atom/forge-overflow-test.c (100%) rename plugins/lv2/{ => vendor}/lv2/atom/forge.h (100%) rename plugins/lv2/{ => vendor}/lv2/atom/lv2-atom.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/atom/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/atom/util.h (100%) rename plugins/lv2/{ => vendor}/lv2/buf-size/buf-size.h (100%) rename plugins/lv2/{ => vendor}/lv2/buf-size/buf-size.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/buf-size/lv2-buf-size.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/buf-size/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/core/attributes.h (100%) rename plugins/lv2/{ => vendor}/lv2/core/lv2.h (100%) rename plugins/lv2/{ => vendor}/lv2/core/lv2_util.h (100%) rename plugins/lv2/{ => vendor}/lv2/core/lv2core.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/core/lv2core.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/core/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/core/meta.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/data-access/data-access.h (100%) rename plugins/lv2/{ => vendor}/lv2/data-access/data-access.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/data-access/lv2-data-access.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/data-access/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/dynmanifest/dynmanifest.h (100%) rename plugins/lv2/{ => vendor}/lv2/dynmanifest/dynmanifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/dynmanifest/lv2-dynmanifest.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/dynmanifest/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/event/event-helpers.h (100%) rename plugins/lv2/{ => vendor}/lv2/event/event.h (100%) rename plugins/lv2/{ => vendor}/lv2/event/event.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/event/lv2-event.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/event/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/instance-access/instance-access.h (100%) rename plugins/lv2/{ => vendor}/lv2/instance-access/instance-access.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/instance-access/lv2-instance-access.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/instance-access/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/log/log.h (100%) rename plugins/lv2/{ => vendor}/lv2/log/log.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/log/logger.h (100%) rename plugins/lv2/{ => vendor}/lv2/log/lv2-log.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/log/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/midi/lv2-midi.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/midi/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/midi/midi.h (100%) rename plugins/lv2/{ => vendor}/lv2/midi/midi.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/morph/lv2-morph.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/morph/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/morph/morph.h (100%) rename plugins/lv2/{ => vendor}/lv2/morph/morph.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/options/lv2-options.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/options/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/options/options.h (100%) rename plugins/lv2/{ => vendor}/lv2/options/options.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/parameters/lv2-parameters.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/parameters/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/parameters/parameters.h (100%) rename plugins/lv2/{ => vendor}/lv2/parameters/parameters.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/patch/lv2-patch.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/patch/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/patch/patch.h (100%) rename plugins/lv2/{ => vendor}/lv2/patch/patch.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/port-groups/lv2-port-groups.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/port-groups/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/port-groups/port-groups.h (100%) rename plugins/lv2/{ => vendor}/lv2/port-groups/port-groups.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/port-props/lv2-port-props.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/port-props/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/port-props/port-props.h (100%) rename plugins/lv2/{ => vendor}/lv2/port-props/port-props.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/presets/lv2-presets.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/presets/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/presets/presets.h (100%) rename plugins/lv2/{ => vendor}/lv2/presets/presets.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/resize-port/lv2-resize-port.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/resize-port/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/resize-port/resize-port.h (100%) rename plugins/lv2/{ => vendor}/lv2/resize-port/resize-port.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/state/lv2-state.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/state/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/state/state.h (100%) rename plugins/lv2/{ => vendor}/lv2/state/state.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/time/lv2-time.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/time/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/time/time.h (100%) rename plugins/lv2/{ => vendor}/lv2/time/time.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/ui/lv2-ui.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/ui/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/ui/ui.h (100%) rename plugins/lv2/{ => vendor}/lv2/ui/ui.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/units/lv2-units.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/units/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/units/units.h (100%) rename plugins/lv2/{ => vendor}/lv2/units/units.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/uri-map/lv2-uri-map.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/uri-map/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/uri-map/uri-map.h (100%) rename plugins/lv2/{ => vendor}/lv2/uri-map/uri-map.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/urid/lv2-urid.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/urid/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/urid/urid.h (100%) rename plugins/lv2/{ => vendor}/lv2/urid/urid.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/worker/lv2-worker.doap.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/worker/manifest.ttl (100%) rename plugins/lv2/{ => vendor}/lv2/worker/worker.h (100%) rename plugins/lv2/{ => vendor}/lv2/worker/worker.ttl (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index b68fc10a..f469b2a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,10 +37,14 @@ option_ex (SFIZZ_SHARED "Enable shared library build" ON) option_ex (SFIZZ_USE_SNDFILE "Enable use of the sndfile library" OFF) option_ex (SFIZZ_USE_VCPKG "Assume that sfizz is build using vcpkg" OFF) option_ex (SFIZZ_USE_SYSTEM_ABSEIL "Use Abseil libraries preinstalled on system" OFF) +option_ex (SFIZZ_USE_SYSTEM_GHC_FS "Use GHC Filesystem libraries preinstalled on system" OFF) option_ex (SFIZZ_USE_SYSTEM_SIMDE "Use SIMDe libraries preinstalled on system" OFF) option_ex (SFIZZ_USE_SYSTEM_KISS_FFT "Use KISS FFT libraries preinstalled on system" OFF) option_ex (SFIZZ_USE_SYSTEM_PUGIXML "Use pugixml libraries preinstalled on system" OFF) option_ex (SFIZZ_USE_SYSTEM_CXXOPTS "Use CXXOPTS libraries preinstalled on system" OFF) +option_ex (SFIZZ_USE_SYSTEM_LV2 "Use LV2 headers preinstalled on system" OFF) +option_ex (SFIZZ_USE_SYSTEM_VST3SDK "Use VST3SDK source files preinstalled on system" OFF) +option_ex (SFIZZ_USE_SYSTEM_CATCH "Use Catch libraries preinstalled on system" OFF) option_ex (SFIZZ_STATIC_DEPENDENCIES "Link dependencies statically" OFF) option_ex (SFIZZ_RELEASE_ASSERTS "Forced assertions in release builds" OFF) option_ex (SFIZZ_PROFILE_BUILD "Profile the build time" OFF) diff --git a/cmake/SfizzConfig.cmake b/cmake/SfizzConfig.cmake index e1163fb0..4809a3b2 100644 --- a/cmake/SfizzConfig.cmake +++ b/cmake/SfizzConfig.cmake @@ -4,6 +4,8 @@ include(CheckCXXCompilerFlag) include(CheckCXXSourceCompiles) include(GNUWarnings) +# FIXME: The current Abseil LTS version requires at least C++14, see +# https://github.com/abseil/abseil-cpp/releases/tag/20230125.1 set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ standard to be used") set(CMAKE_C_STANDARD 99 CACHE STRING "C standard to be used") diff --git a/cmake/SfizzDeps.cmake b/cmake/SfizzDeps.cmake index 44a87134..e3ddb5ca 100644 --- a/cmake/SfizzDeps.cmake +++ b/cmake/SfizzDeps.cmake @@ -53,6 +53,10 @@ endif() # Add Abseil if(SFIZZ_USE_SYSTEM_ABSEIL) find_package(absl REQUIRED) + # Workaround for silent Abseil module, see #1117 + if(absl_FOUND) + message(STATUS "Found system Abseil libraries, version ${absl_VERSION}") + endif() else() function(sfizz_add_vendor_abseil) set(BUILD_SHARED_LIBS OFF) # only changed at local scope @@ -71,6 +75,8 @@ if(SFIZZ_USE_SYSTEM_CXXOPTS) find_path(CXXOPTS_INCLUDE_DIR "cxxopts.hpp") if(NOT CXXOPTS_INCLUDE_DIR) message(FATAL_ERROR "Cannot find cxxopts") + else() + message(STATUS "Found system cxxopts") endif() add_library(sfizz_cxxopts INTERFACE) target_include_directories(sfizz_cxxopts INTERFACE "${CXXOPTS_INCLUDE_DIR}") @@ -241,9 +247,20 @@ if(FALSE) target_include_directories(sfizz_filesystem INTERFACE "external/filesystem/include") else() # static library + if(SFIZZ_USE_SYSTEM_GHC_FS) + find_path(GHC_INCLUDE_DIR "ghc/fs_std.hpp") + if(NOT GHC_INCLUDE_DIR) + message(FATAL_ERROR "Cannot find ghc-filesystem") + else() + message(STATUS "Found system ghc-filesystem") + endif() + set(SFIZZ_FILESYSTEM_INCLUDE_DIR "${GHC_INCLUDE_DIR}") + else() + set(SFIZZ_FILESYSTEM_INCLUDE_DIR "external/filesystem/include") + endif() file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/fs_std_impl.cpp" "#include ") add_library(sfizz_filesystem_impl STATIC "${CMAKE_CURRENT_BINARY_DIR}/fs_std_impl.cpp") - target_include_directories(sfizz_filesystem_impl PUBLIC "external/filesystem/include") + target_include_directories(sfizz_filesystem_impl PUBLIC ${SFIZZ_FILESYSTEM_INCLUDE_DIR}) # Add the needed linker option for GCC 8 if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0 diff --git a/plugins/editor/CMakeLists.txt b/plugins/editor/CMakeLists.txt index 4eda6a9b..7b5e32bd 100644 --- a/plugins/editor/CMakeLists.txt +++ b/plugins/editor/CMakeLists.txt @@ -1,4 +1,11 @@ -set(VSTGUI_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/vstgui4") +if(SFIZZ_USE_SYSTEM_VST3SDK) + find_package(PkgConfig REQUIRED) + pkg_check_modules(VST3SDK "vst3sdk" REQUIRED) + set(VSTGUI_BASEDIR "${VST3SDK_INCLUDE_DIRS}/vstgui4") +else() + set(VSTGUI_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/vstgui4") +endif() + include("cmake/Vstgui.cmake") set(EDITOR_RESOURCES diff --git a/plugins/editor/src/editor/DlgAbout.h b/plugins/editor/src/editor/DlgAbout.h index 1571ac4d..65a95b7d 100644 --- a/plugins/editor/src/editor/DlgAbout.h +++ b/plugins/editor/src/editor/DlgAbout.h @@ -11,9 +11,21 @@ #include "utility/vstgui_after.h" #include +#define VSTGUI_MORE_THAN_4_10 ((VSTGUI_VERSION_MAJOR > 4) \ + || (VSTGUI_VERSION_MAJOR == 4 && VSTGUI_VERSION_MINOR > 10)) + +#if VSTGUI_MORE_THAN_4_10 + #define OVERRIDE override + // FIXME: Use KeyboardEvent instead + #define IKEYBOARDHOOK OldKeyboardHookAdapter +#else + #define OVERRIDE + #define IKEYBOARDHOOK IKeyboardHook +#endif + using namespace VSTGUI; -class SAboutDialog : public CViewContainer, public IControlListener, public IKeyboardHook{ +class SAboutDialog : public CViewContainer, public IControlListener, public IKEYBOARDHOOK { enum { kTagButtonSfztools, @@ -28,8 +40,8 @@ public: void setPluginFormat(const std::string& pluginFormat); void setPluginHost(const std::string& pluginHost); - int32_t onKeyDown (const VstKeyCode& code, CFrame* frame) override; - int32_t onKeyUp (const VstKeyCode& code, CFrame* frame) override; + int32_t onKeyDown(const VstKeyCode& code, CFrame* frame) OVERRIDE; + int32_t onKeyUp(const VstKeyCode& code, CFrame* frame) OVERRIDE; protected: CMouseEventResult onMouseDown(CPoint& where, const CButtonState& buttons) override; diff --git a/plugins/lv2/CMakeLists.txt b/plugins/lv2/CMakeLists.txt index 48924d78..13dfe3e0 100644 --- a/plugins/lv2/CMakeLists.txt +++ b/plugins/lv2/CMakeLists.txt @@ -50,13 +50,28 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") # target_link_libraries(${LV2PLUGIN_PRJ_NAME}_ui "-Wl,-u,lv2ui_descriptor") endif() endif() + target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE . external/ardour) +if(SFIZZ_USE_SYSTEM_LV2) + find_path(LV2_INCLUDE_DIR "lv2.h") + if(NOT LV2_INCLUDE_DIR) + message(FATAL_ERROR "Cannot find lv2 include directory") + else() + message(STATUS "Found system lv2") + endif() +else() + target_include_directories(${LV2PLUGIN_PRJ_NAME} PRIVATE vendor) +endif() 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) target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE . external/ardour) + if(NOT SFIZZ_USE_SYSTEM_LV2) + target_include_directories(${LV2PLUGIN_PRJ_NAME}_ui PRIVATE vendor) + endif() sfizz_enable_lto_if_needed(${LV2PLUGIN_PRJ_NAME}_ui) if(MINGW) set_target_properties(${LV2PLUGIN_PRJ_NAME}_ui PROPERTIES LINK_FLAGS "-static") diff --git a/plugins/lv2/external/ardour/ardour/lv2_extensions.h b/plugins/lv2/external/ardour/ardour/lv2_extensions.h index 75a4cd72..fde2934e 100644 --- a/plugins/lv2/external/ardour/ardour/lv2_extensions.h +++ b/plugins/lv2/external/ardour/ardour/lv2_extensions.h @@ -17,7 +17,7 @@ #ifndef _ardour_lv2_extensions_h_ #define _ardour_lv2_extensions_h_ -#include "lv2/core/lv2.h" +#include /** @defgroup lv2inlinedisplay Inline-Display diff --git a/plugins/lv2/lv2/atom/atom-test-utils.c b/plugins/lv2/vendor/lv2/atom/atom-test-utils.c similarity index 100% rename from plugins/lv2/lv2/atom/atom-test-utils.c rename to plugins/lv2/vendor/lv2/atom/atom-test-utils.c diff --git a/plugins/lv2/lv2/atom/atom-test.c b/plugins/lv2/vendor/lv2/atom/atom-test.c similarity index 100% rename from plugins/lv2/lv2/atom/atom-test.c rename to plugins/lv2/vendor/lv2/atom/atom-test.c diff --git a/plugins/lv2/lv2/atom/atom.h b/plugins/lv2/vendor/lv2/atom/atom.h similarity index 100% rename from plugins/lv2/lv2/atom/atom.h rename to plugins/lv2/vendor/lv2/atom/atom.h diff --git a/plugins/lv2/lv2/atom/atom.ttl b/plugins/lv2/vendor/lv2/atom/atom.ttl similarity index 100% rename from plugins/lv2/lv2/atom/atom.ttl rename to plugins/lv2/vendor/lv2/atom/atom.ttl diff --git a/plugins/lv2/lv2/atom/forge-overflow-test.c b/plugins/lv2/vendor/lv2/atom/forge-overflow-test.c similarity index 100% rename from plugins/lv2/lv2/atom/forge-overflow-test.c rename to plugins/lv2/vendor/lv2/atom/forge-overflow-test.c diff --git a/plugins/lv2/lv2/atom/forge.h b/plugins/lv2/vendor/lv2/atom/forge.h similarity index 100% rename from plugins/lv2/lv2/atom/forge.h rename to plugins/lv2/vendor/lv2/atom/forge.h diff --git a/plugins/lv2/lv2/atom/lv2-atom.doap.ttl b/plugins/lv2/vendor/lv2/atom/lv2-atom.doap.ttl similarity index 100% rename from plugins/lv2/lv2/atom/lv2-atom.doap.ttl rename to plugins/lv2/vendor/lv2/atom/lv2-atom.doap.ttl diff --git a/plugins/lv2/lv2/atom/manifest.ttl b/plugins/lv2/vendor/lv2/atom/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/atom/manifest.ttl rename to plugins/lv2/vendor/lv2/atom/manifest.ttl diff --git a/plugins/lv2/lv2/atom/util.h b/plugins/lv2/vendor/lv2/atom/util.h similarity index 100% rename from plugins/lv2/lv2/atom/util.h rename to plugins/lv2/vendor/lv2/atom/util.h diff --git a/plugins/lv2/lv2/buf-size/buf-size.h b/plugins/lv2/vendor/lv2/buf-size/buf-size.h similarity index 100% rename from plugins/lv2/lv2/buf-size/buf-size.h rename to plugins/lv2/vendor/lv2/buf-size/buf-size.h diff --git a/plugins/lv2/lv2/buf-size/buf-size.ttl b/plugins/lv2/vendor/lv2/buf-size/buf-size.ttl similarity index 100% rename from plugins/lv2/lv2/buf-size/buf-size.ttl rename to plugins/lv2/vendor/lv2/buf-size/buf-size.ttl diff --git a/plugins/lv2/lv2/buf-size/lv2-buf-size.doap.ttl b/plugins/lv2/vendor/lv2/buf-size/lv2-buf-size.doap.ttl similarity index 100% rename from plugins/lv2/lv2/buf-size/lv2-buf-size.doap.ttl rename to plugins/lv2/vendor/lv2/buf-size/lv2-buf-size.doap.ttl diff --git a/plugins/lv2/lv2/buf-size/manifest.ttl b/plugins/lv2/vendor/lv2/buf-size/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/buf-size/manifest.ttl rename to plugins/lv2/vendor/lv2/buf-size/manifest.ttl diff --git a/plugins/lv2/lv2/core/attributes.h b/plugins/lv2/vendor/lv2/core/attributes.h similarity index 100% rename from plugins/lv2/lv2/core/attributes.h rename to plugins/lv2/vendor/lv2/core/attributes.h diff --git a/plugins/lv2/lv2/core/lv2.h b/plugins/lv2/vendor/lv2/core/lv2.h similarity index 100% rename from plugins/lv2/lv2/core/lv2.h rename to plugins/lv2/vendor/lv2/core/lv2.h diff --git a/plugins/lv2/lv2/core/lv2_util.h b/plugins/lv2/vendor/lv2/core/lv2_util.h similarity index 100% rename from plugins/lv2/lv2/core/lv2_util.h rename to plugins/lv2/vendor/lv2/core/lv2_util.h diff --git a/plugins/lv2/lv2/core/lv2core.doap.ttl b/plugins/lv2/vendor/lv2/core/lv2core.doap.ttl similarity index 100% rename from plugins/lv2/lv2/core/lv2core.doap.ttl rename to plugins/lv2/vendor/lv2/core/lv2core.doap.ttl diff --git a/plugins/lv2/lv2/core/lv2core.ttl b/plugins/lv2/vendor/lv2/core/lv2core.ttl similarity index 100% rename from plugins/lv2/lv2/core/lv2core.ttl rename to plugins/lv2/vendor/lv2/core/lv2core.ttl diff --git a/plugins/lv2/lv2/core/manifest.ttl b/plugins/lv2/vendor/lv2/core/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/core/manifest.ttl rename to plugins/lv2/vendor/lv2/core/manifest.ttl diff --git a/plugins/lv2/lv2/core/meta.ttl b/plugins/lv2/vendor/lv2/core/meta.ttl similarity index 100% rename from plugins/lv2/lv2/core/meta.ttl rename to plugins/lv2/vendor/lv2/core/meta.ttl diff --git a/plugins/lv2/lv2/data-access/data-access.h b/plugins/lv2/vendor/lv2/data-access/data-access.h similarity index 100% rename from plugins/lv2/lv2/data-access/data-access.h rename to plugins/lv2/vendor/lv2/data-access/data-access.h diff --git a/plugins/lv2/lv2/data-access/data-access.ttl b/plugins/lv2/vendor/lv2/data-access/data-access.ttl similarity index 100% rename from plugins/lv2/lv2/data-access/data-access.ttl rename to plugins/lv2/vendor/lv2/data-access/data-access.ttl diff --git a/plugins/lv2/lv2/data-access/lv2-data-access.doap.ttl b/plugins/lv2/vendor/lv2/data-access/lv2-data-access.doap.ttl similarity index 100% rename from plugins/lv2/lv2/data-access/lv2-data-access.doap.ttl rename to plugins/lv2/vendor/lv2/data-access/lv2-data-access.doap.ttl diff --git a/plugins/lv2/lv2/data-access/manifest.ttl b/plugins/lv2/vendor/lv2/data-access/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/data-access/manifest.ttl rename to plugins/lv2/vendor/lv2/data-access/manifest.ttl diff --git a/plugins/lv2/lv2/dynmanifest/dynmanifest.h b/plugins/lv2/vendor/lv2/dynmanifest/dynmanifest.h similarity index 100% rename from plugins/lv2/lv2/dynmanifest/dynmanifest.h rename to plugins/lv2/vendor/lv2/dynmanifest/dynmanifest.h diff --git a/plugins/lv2/lv2/dynmanifest/dynmanifest.ttl b/plugins/lv2/vendor/lv2/dynmanifest/dynmanifest.ttl similarity index 100% rename from plugins/lv2/lv2/dynmanifest/dynmanifest.ttl rename to plugins/lv2/vendor/lv2/dynmanifest/dynmanifest.ttl diff --git a/plugins/lv2/lv2/dynmanifest/lv2-dynmanifest.doap.ttl b/plugins/lv2/vendor/lv2/dynmanifest/lv2-dynmanifest.doap.ttl similarity index 100% rename from plugins/lv2/lv2/dynmanifest/lv2-dynmanifest.doap.ttl rename to plugins/lv2/vendor/lv2/dynmanifest/lv2-dynmanifest.doap.ttl diff --git a/plugins/lv2/lv2/dynmanifest/manifest.ttl b/plugins/lv2/vendor/lv2/dynmanifest/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/dynmanifest/manifest.ttl rename to plugins/lv2/vendor/lv2/dynmanifest/manifest.ttl diff --git a/plugins/lv2/lv2/event/event-helpers.h b/plugins/lv2/vendor/lv2/event/event-helpers.h similarity index 100% rename from plugins/lv2/lv2/event/event-helpers.h rename to plugins/lv2/vendor/lv2/event/event-helpers.h diff --git a/plugins/lv2/lv2/event/event.h b/plugins/lv2/vendor/lv2/event/event.h similarity index 100% rename from plugins/lv2/lv2/event/event.h rename to plugins/lv2/vendor/lv2/event/event.h diff --git a/plugins/lv2/lv2/event/event.ttl b/plugins/lv2/vendor/lv2/event/event.ttl similarity index 100% rename from plugins/lv2/lv2/event/event.ttl rename to plugins/lv2/vendor/lv2/event/event.ttl diff --git a/plugins/lv2/lv2/event/lv2-event.doap.ttl b/plugins/lv2/vendor/lv2/event/lv2-event.doap.ttl similarity index 100% rename from plugins/lv2/lv2/event/lv2-event.doap.ttl rename to plugins/lv2/vendor/lv2/event/lv2-event.doap.ttl diff --git a/plugins/lv2/lv2/event/manifest.ttl b/plugins/lv2/vendor/lv2/event/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/event/manifest.ttl rename to plugins/lv2/vendor/lv2/event/manifest.ttl diff --git a/plugins/lv2/lv2/instance-access/instance-access.h b/plugins/lv2/vendor/lv2/instance-access/instance-access.h similarity index 100% rename from plugins/lv2/lv2/instance-access/instance-access.h rename to plugins/lv2/vendor/lv2/instance-access/instance-access.h diff --git a/plugins/lv2/lv2/instance-access/instance-access.ttl b/plugins/lv2/vendor/lv2/instance-access/instance-access.ttl similarity index 100% rename from plugins/lv2/lv2/instance-access/instance-access.ttl rename to plugins/lv2/vendor/lv2/instance-access/instance-access.ttl diff --git a/plugins/lv2/lv2/instance-access/lv2-instance-access.doap.ttl b/plugins/lv2/vendor/lv2/instance-access/lv2-instance-access.doap.ttl similarity index 100% rename from plugins/lv2/lv2/instance-access/lv2-instance-access.doap.ttl rename to plugins/lv2/vendor/lv2/instance-access/lv2-instance-access.doap.ttl diff --git a/plugins/lv2/lv2/instance-access/manifest.ttl b/plugins/lv2/vendor/lv2/instance-access/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/instance-access/manifest.ttl rename to plugins/lv2/vendor/lv2/instance-access/manifest.ttl diff --git a/plugins/lv2/lv2/log/log.h b/plugins/lv2/vendor/lv2/log/log.h similarity index 100% rename from plugins/lv2/lv2/log/log.h rename to plugins/lv2/vendor/lv2/log/log.h diff --git a/plugins/lv2/lv2/log/log.ttl b/plugins/lv2/vendor/lv2/log/log.ttl similarity index 100% rename from plugins/lv2/lv2/log/log.ttl rename to plugins/lv2/vendor/lv2/log/log.ttl diff --git a/plugins/lv2/lv2/log/logger.h b/plugins/lv2/vendor/lv2/log/logger.h similarity index 100% rename from plugins/lv2/lv2/log/logger.h rename to plugins/lv2/vendor/lv2/log/logger.h diff --git a/plugins/lv2/lv2/log/lv2-log.doap.ttl b/plugins/lv2/vendor/lv2/log/lv2-log.doap.ttl similarity index 100% rename from plugins/lv2/lv2/log/lv2-log.doap.ttl rename to plugins/lv2/vendor/lv2/log/lv2-log.doap.ttl diff --git a/plugins/lv2/lv2/log/manifest.ttl b/plugins/lv2/vendor/lv2/log/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/log/manifest.ttl rename to plugins/lv2/vendor/lv2/log/manifest.ttl diff --git a/plugins/lv2/lv2/midi/lv2-midi.doap.ttl b/plugins/lv2/vendor/lv2/midi/lv2-midi.doap.ttl similarity index 100% rename from plugins/lv2/lv2/midi/lv2-midi.doap.ttl rename to plugins/lv2/vendor/lv2/midi/lv2-midi.doap.ttl diff --git a/plugins/lv2/lv2/midi/manifest.ttl b/plugins/lv2/vendor/lv2/midi/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/midi/manifest.ttl rename to plugins/lv2/vendor/lv2/midi/manifest.ttl diff --git a/plugins/lv2/lv2/midi/midi.h b/plugins/lv2/vendor/lv2/midi/midi.h similarity index 100% rename from plugins/lv2/lv2/midi/midi.h rename to plugins/lv2/vendor/lv2/midi/midi.h diff --git a/plugins/lv2/lv2/midi/midi.ttl b/plugins/lv2/vendor/lv2/midi/midi.ttl similarity index 100% rename from plugins/lv2/lv2/midi/midi.ttl rename to plugins/lv2/vendor/lv2/midi/midi.ttl diff --git a/plugins/lv2/lv2/morph/lv2-morph.doap.ttl b/plugins/lv2/vendor/lv2/morph/lv2-morph.doap.ttl similarity index 100% rename from plugins/lv2/lv2/morph/lv2-morph.doap.ttl rename to plugins/lv2/vendor/lv2/morph/lv2-morph.doap.ttl diff --git a/plugins/lv2/lv2/morph/manifest.ttl b/plugins/lv2/vendor/lv2/morph/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/morph/manifest.ttl rename to plugins/lv2/vendor/lv2/morph/manifest.ttl diff --git a/plugins/lv2/lv2/morph/morph.h b/plugins/lv2/vendor/lv2/morph/morph.h similarity index 100% rename from plugins/lv2/lv2/morph/morph.h rename to plugins/lv2/vendor/lv2/morph/morph.h diff --git a/plugins/lv2/lv2/morph/morph.ttl b/plugins/lv2/vendor/lv2/morph/morph.ttl similarity index 100% rename from plugins/lv2/lv2/morph/morph.ttl rename to plugins/lv2/vendor/lv2/morph/morph.ttl diff --git a/plugins/lv2/lv2/options/lv2-options.doap.ttl b/plugins/lv2/vendor/lv2/options/lv2-options.doap.ttl similarity index 100% rename from plugins/lv2/lv2/options/lv2-options.doap.ttl rename to plugins/lv2/vendor/lv2/options/lv2-options.doap.ttl diff --git a/plugins/lv2/lv2/options/manifest.ttl b/plugins/lv2/vendor/lv2/options/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/options/manifest.ttl rename to plugins/lv2/vendor/lv2/options/manifest.ttl diff --git a/plugins/lv2/lv2/options/options.h b/plugins/lv2/vendor/lv2/options/options.h similarity index 100% rename from plugins/lv2/lv2/options/options.h rename to plugins/lv2/vendor/lv2/options/options.h diff --git a/plugins/lv2/lv2/options/options.ttl b/plugins/lv2/vendor/lv2/options/options.ttl similarity index 100% rename from plugins/lv2/lv2/options/options.ttl rename to plugins/lv2/vendor/lv2/options/options.ttl diff --git a/plugins/lv2/lv2/parameters/lv2-parameters.doap.ttl b/plugins/lv2/vendor/lv2/parameters/lv2-parameters.doap.ttl similarity index 100% rename from plugins/lv2/lv2/parameters/lv2-parameters.doap.ttl rename to plugins/lv2/vendor/lv2/parameters/lv2-parameters.doap.ttl diff --git a/plugins/lv2/lv2/parameters/manifest.ttl b/plugins/lv2/vendor/lv2/parameters/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/parameters/manifest.ttl rename to plugins/lv2/vendor/lv2/parameters/manifest.ttl diff --git a/plugins/lv2/lv2/parameters/parameters.h b/plugins/lv2/vendor/lv2/parameters/parameters.h similarity index 100% rename from plugins/lv2/lv2/parameters/parameters.h rename to plugins/lv2/vendor/lv2/parameters/parameters.h diff --git a/plugins/lv2/lv2/parameters/parameters.ttl b/plugins/lv2/vendor/lv2/parameters/parameters.ttl similarity index 100% rename from plugins/lv2/lv2/parameters/parameters.ttl rename to plugins/lv2/vendor/lv2/parameters/parameters.ttl diff --git a/plugins/lv2/lv2/patch/lv2-patch.doap.ttl b/plugins/lv2/vendor/lv2/patch/lv2-patch.doap.ttl similarity index 100% rename from plugins/lv2/lv2/patch/lv2-patch.doap.ttl rename to plugins/lv2/vendor/lv2/patch/lv2-patch.doap.ttl diff --git a/plugins/lv2/lv2/patch/manifest.ttl b/plugins/lv2/vendor/lv2/patch/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/patch/manifest.ttl rename to plugins/lv2/vendor/lv2/patch/manifest.ttl diff --git a/plugins/lv2/lv2/patch/patch.h b/plugins/lv2/vendor/lv2/patch/patch.h similarity index 100% rename from plugins/lv2/lv2/patch/patch.h rename to plugins/lv2/vendor/lv2/patch/patch.h diff --git a/plugins/lv2/lv2/patch/patch.ttl b/plugins/lv2/vendor/lv2/patch/patch.ttl similarity index 100% rename from plugins/lv2/lv2/patch/patch.ttl rename to plugins/lv2/vendor/lv2/patch/patch.ttl diff --git a/plugins/lv2/lv2/port-groups/lv2-port-groups.doap.ttl b/plugins/lv2/vendor/lv2/port-groups/lv2-port-groups.doap.ttl similarity index 100% rename from plugins/lv2/lv2/port-groups/lv2-port-groups.doap.ttl rename to plugins/lv2/vendor/lv2/port-groups/lv2-port-groups.doap.ttl diff --git a/plugins/lv2/lv2/port-groups/manifest.ttl b/plugins/lv2/vendor/lv2/port-groups/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/port-groups/manifest.ttl rename to plugins/lv2/vendor/lv2/port-groups/manifest.ttl diff --git a/plugins/lv2/lv2/port-groups/port-groups.h b/plugins/lv2/vendor/lv2/port-groups/port-groups.h similarity index 100% rename from plugins/lv2/lv2/port-groups/port-groups.h rename to plugins/lv2/vendor/lv2/port-groups/port-groups.h diff --git a/plugins/lv2/lv2/port-groups/port-groups.ttl b/plugins/lv2/vendor/lv2/port-groups/port-groups.ttl similarity index 100% rename from plugins/lv2/lv2/port-groups/port-groups.ttl rename to plugins/lv2/vendor/lv2/port-groups/port-groups.ttl diff --git a/plugins/lv2/lv2/port-props/lv2-port-props.doap.ttl b/plugins/lv2/vendor/lv2/port-props/lv2-port-props.doap.ttl similarity index 100% rename from plugins/lv2/lv2/port-props/lv2-port-props.doap.ttl rename to plugins/lv2/vendor/lv2/port-props/lv2-port-props.doap.ttl diff --git a/plugins/lv2/lv2/port-props/manifest.ttl b/plugins/lv2/vendor/lv2/port-props/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/port-props/manifest.ttl rename to plugins/lv2/vendor/lv2/port-props/manifest.ttl diff --git a/plugins/lv2/lv2/port-props/port-props.h b/plugins/lv2/vendor/lv2/port-props/port-props.h similarity index 100% rename from plugins/lv2/lv2/port-props/port-props.h rename to plugins/lv2/vendor/lv2/port-props/port-props.h diff --git a/plugins/lv2/lv2/port-props/port-props.ttl b/plugins/lv2/vendor/lv2/port-props/port-props.ttl similarity index 100% rename from plugins/lv2/lv2/port-props/port-props.ttl rename to plugins/lv2/vendor/lv2/port-props/port-props.ttl diff --git a/plugins/lv2/lv2/presets/lv2-presets.doap.ttl b/plugins/lv2/vendor/lv2/presets/lv2-presets.doap.ttl similarity index 100% rename from plugins/lv2/lv2/presets/lv2-presets.doap.ttl rename to plugins/lv2/vendor/lv2/presets/lv2-presets.doap.ttl diff --git a/plugins/lv2/lv2/presets/manifest.ttl b/plugins/lv2/vendor/lv2/presets/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/presets/manifest.ttl rename to plugins/lv2/vendor/lv2/presets/manifest.ttl diff --git a/plugins/lv2/lv2/presets/presets.h b/plugins/lv2/vendor/lv2/presets/presets.h similarity index 100% rename from plugins/lv2/lv2/presets/presets.h rename to plugins/lv2/vendor/lv2/presets/presets.h diff --git a/plugins/lv2/lv2/presets/presets.ttl b/plugins/lv2/vendor/lv2/presets/presets.ttl similarity index 100% rename from plugins/lv2/lv2/presets/presets.ttl rename to plugins/lv2/vendor/lv2/presets/presets.ttl diff --git a/plugins/lv2/lv2/resize-port/lv2-resize-port.doap.ttl b/plugins/lv2/vendor/lv2/resize-port/lv2-resize-port.doap.ttl similarity index 100% rename from plugins/lv2/lv2/resize-port/lv2-resize-port.doap.ttl rename to plugins/lv2/vendor/lv2/resize-port/lv2-resize-port.doap.ttl diff --git a/plugins/lv2/lv2/resize-port/manifest.ttl b/plugins/lv2/vendor/lv2/resize-port/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/resize-port/manifest.ttl rename to plugins/lv2/vendor/lv2/resize-port/manifest.ttl diff --git a/plugins/lv2/lv2/resize-port/resize-port.h b/plugins/lv2/vendor/lv2/resize-port/resize-port.h similarity index 100% rename from plugins/lv2/lv2/resize-port/resize-port.h rename to plugins/lv2/vendor/lv2/resize-port/resize-port.h diff --git a/plugins/lv2/lv2/resize-port/resize-port.ttl b/plugins/lv2/vendor/lv2/resize-port/resize-port.ttl similarity index 100% rename from plugins/lv2/lv2/resize-port/resize-port.ttl rename to plugins/lv2/vendor/lv2/resize-port/resize-port.ttl diff --git a/plugins/lv2/lv2/state/lv2-state.doap.ttl b/plugins/lv2/vendor/lv2/state/lv2-state.doap.ttl similarity index 100% rename from plugins/lv2/lv2/state/lv2-state.doap.ttl rename to plugins/lv2/vendor/lv2/state/lv2-state.doap.ttl diff --git a/plugins/lv2/lv2/state/manifest.ttl b/plugins/lv2/vendor/lv2/state/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/state/manifest.ttl rename to plugins/lv2/vendor/lv2/state/manifest.ttl diff --git a/plugins/lv2/lv2/state/state.h b/plugins/lv2/vendor/lv2/state/state.h similarity index 100% rename from plugins/lv2/lv2/state/state.h rename to plugins/lv2/vendor/lv2/state/state.h diff --git a/plugins/lv2/lv2/state/state.ttl b/plugins/lv2/vendor/lv2/state/state.ttl similarity index 100% rename from plugins/lv2/lv2/state/state.ttl rename to plugins/lv2/vendor/lv2/state/state.ttl diff --git a/plugins/lv2/lv2/time/lv2-time.doap.ttl b/plugins/lv2/vendor/lv2/time/lv2-time.doap.ttl similarity index 100% rename from plugins/lv2/lv2/time/lv2-time.doap.ttl rename to plugins/lv2/vendor/lv2/time/lv2-time.doap.ttl diff --git a/plugins/lv2/lv2/time/manifest.ttl b/plugins/lv2/vendor/lv2/time/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/time/manifest.ttl rename to plugins/lv2/vendor/lv2/time/manifest.ttl diff --git a/plugins/lv2/lv2/time/time.h b/plugins/lv2/vendor/lv2/time/time.h similarity index 100% rename from plugins/lv2/lv2/time/time.h rename to plugins/lv2/vendor/lv2/time/time.h diff --git a/plugins/lv2/lv2/time/time.ttl b/plugins/lv2/vendor/lv2/time/time.ttl similarity index 100% rename from plugins/lv2/lv2/time/time.ttl rename to plugins/lv2/vendor/lv2/time/time.ttl diff --git a/plugins/lv2/lv2/ui/lv2-ui.doap.ttl b/plugins/lv2/vendor/lv2/ui/lv2-ui.doap.ttl similarity index 100% rename from plugins/lv2/lv2/ui/lv2-ui.doap.ttl rename to plugins/lv2/vendor/lv2/ui/lv2-ui.doap.ttl diff --git a/plugins/lv2/lv2/ui/manifest.ttl b/plugins/lv2/vendor/lv2/ui/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/ui/manifest.ttl rename to plugins/lv2/vendor/lv2/ui/manifest.ttl diff --git a/plugins/lv2/lv2/ui/ui.h b/plugins/lv2/vendor/lv2/ui/ui.h similarity index 100% rename from plugins/lv2/lv2/ui/ui.h rename to plugins/lv2/vendor/lv2/ui/ui.h diff --git a/plugins/lv2/lv2/ui/ui.ttl b/plugins/lv2/vendor/lv2/ui/ui.ttl similarity index 100% rename from plugins/lv2/lv2/ui/ui.ttl rename to plugins/lv2/vendor/lv2/ui/ui.ttl diff --git a/plugins/lv2/lv2/units/lv2-units.doap.ttl b/plugins/lv2/vendor/lv2/units/lv2-units.doap.ttl similarity index 100% rename from plugins/lv2/lv2/units/lv2-units.doap.ttl rename to plugins/lv2/vendor/lv2/units/lv2-units.doap.ttl diff --git a/plugins/lv2/lv2/units/manifest.ttl b/plugins/lv2/vendor/lv2/units/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/units/manifest.ttl rename to plugins/lv2/vendor/lv2/units/manifest.ttl diff --git a/plugins/lv2/lv2/units/units.h b/plugins/lv2/vendor/lv2/units/units.h similarity index 100% rename from plugins/lv2/lv2/units/units.h rename to plugins/lv2/vendor/lv2/units/units.h diff --git a/plugins/lv2/lv2/units/units.ttl b/plugins/lv2/vendor/lv2/units/units.ttl similarity index 100% rename from plugins/lv2/lv2/units/units.ttl rename to plugins/lv2/vendor/lv2/units/units.ttl diff --git a/plugins/lv2/lv2/uri-map/lv2-uri-map.doap.ttl b/plugins/lv2/vendor/lv2/uri-map/lv2-uri-map.doap.ttl similarity index 100% rename from plugins/lv2/lv2/uri-map/lv2-uri-map.doap.ttl rename to plugins/lv2/vendor/lv2/uri-map/lv2-uri-map.doap.ttl diff --git a/plugins/lv2/lv2/uri-map/manifest.ttl b/plugins/lv2/vendor/lv2/uri-map/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/uri-map/manifest.ttl rename to plugins/lv2/vendor/lv2/uri-map/manifest.ttl diff --git a/plugins/lv2/lv2/uri-map/uri-map.h b/plugins/lv2/vendor/lv2/uri-map/uri-map.h similarity index 100% rename from plugins/lv2/lv2/uri-map/uri-map.h rename to plugins/lv2/vendor/lv2/uri-map/uri-map.h diff --git a/plugins/lv2/lv2/uri-map/uri-map.ttl b/plugins/lv2/vendor/lv2/uri-map/uri-map.ttl similarity index 100% rename from plugins/lv2/lv2/uri-map/uri-map.ttl rename to plugins/lv2/vendor/lv2/uri-map/uri-map.ttl diff --git a/plugins/lv2/lv2/urid/lv2-urid.doap.ttl b/plugins/lv2/vendor/lv2/urid/lv2-urid.doap.ttl similarity index 100% rename from plugins/lv2/lv2/urid/lv2-urid.doap.ttl rename to plugins/lv2/vendor/lv2/urid/lv2-urid.doap.ttl diff --git a/plugins/lv2/lv2/urid/manifest.ttl b/plugins/lv2/vendor/lv2/urid/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/urid/manifest.ttl rename to plugins/lv2/vendor/lv2/urid/manifest.ttl diff --git a/plugins/lv2/lv2/urid/urid.h b/plugins/lv2/vendor/lv2/urid/urid.h similarity index 100% rename from plugins/lv2/lv2/urid/urid.h rename to plugins/lv2/vendor/lv2/urid/urid.h diff --git a/plugins/lv2/lv2/urid/urid.ttl b/plugins/lv2/vendor/lv2/urid/urid.ttl similarity index 100% rename from plugins/lv2/lv2/urid/urid.ttl rename to plugins/lv2/vendor/lv2/urid/urid.ttl diff --git a/plugins/lv2/lv2/worker/lv2-worker.doap.ttl b/plugins/lv2/vendor/lv2/worker/lv2-worker.doap.ttl similarity index 100% rename from plugins/lv2/lv2/worker/lv2-worker.doap.ttl rename to plugins/lv2/vendor/lv2/worker/lv2-worker.doap.ttl diff --git a/plugins/lv2/lv2/worker/manifest.ttl b/plugins/lv2/vendor/lv2/worker/manifest.ttl similarity index 100% rename from plugins/lv2/lv2/worker/manifest.ttl rename to plugins/lv2/vendor/lv2/worker/manifest.ttl diff --git a/plugins/lv2/lv2/worker/worker.h b/plugins/lv2/vendor/lv2/worker/worker.h similarity index 100% rename from plugins/lv2/lv2/worker/worker.h rename to plugins/lv2/vendor/lv2/worker/worker.h diff --git a/plugins/lv2/lv2/worker/worker.ttl b/plugins/lv2/vendor/lv2/worker/worker.ttl similarity index 100% rename from plugins/lv2/lv2/worker/worker.ttl rename to plugins/lv2/vendor/lv2/worker/worker.ttl diff --git a/plugins/vst/CMakeLists.txt b/plugins/vst/CMakeLists.txt index 59761195..c7025cd2 100644 --- a/plugins/vst/CMakeLists.txt +++ b/plugins/vst/CMakeLists.txt @@ -1,4 +1,11 @@ -set(VST3SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK") +if(SFIZZ_USE_SYSTEM_VST3SDK) + find_package(PkgConfig REQUIRED) + pkg_check_modules(VST3SDK "vst3sdk" REQUIRED) + set(VST3SDK_BASEDIR "${VST3SDK_INCLUDE_DIRS}") +else() + set(VST3SDK_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/VST_SDK/VST3_SDK") +endif() + #set(AUWRAPPER_BASEDIR "${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper") set(AUWRAPPER_BASEDIR "${CMAKE_CURRENT_SOURCE_DIR}/external/sfzt_auwrapper") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index fa708458..8553aca9 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,7 +1,14 @@ ############################### # Test application -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/catch2") +if(SFIZZ_USE_SYSTEM_CATCH) + find_package(Catch2 REQUIRED) + if(Catch2_FOUND) + message(STATUS "Found system Catch2 CMake modules in ${Catch2_DIR}") + endif() +else() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/catch2") +endif() include(CTest) include(Catch)