CMake clean up:
- use a different namespace for plugins - avoid unneeded virtual directories
This commit is contained in:
parent
82c4296141
commit
a302f024ec
8 changed files with 173 additions and 106 deletions
|
|
@ -40,6 +40,9 @@ option_ex(PLUGIN_VST3 "Enable VST3 plug-in build" ON)
|
||||||
option_ex(SFIZZ_USE_SYSTEM_LV2 "Use LV2 headers 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_VST3SDK "Use VST3SDK source files preinstalled on system" OFF)
|
||||||
|
|
||||||
|
# This is useful with some IDE like QtCreator to avoid them to create additional virtual directories
|
||||||
|
option_ex(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS "Use CMake source_group by passing empty name" OFF)
|
||||||
|
|
||||||
set(MIDI_CC_COUNT 512 CACHE STRING "Maximum amount of Control Change Messages")
|
set(MIDI_CC_COUNT 512 CACHE STRING "Maximum amount of Control Change Messages")
|
||||||
|
|
||||||
if(PLUGIN_LV2 AND SFIZZ_SNDFILE_STATIC)
|
if(PLUGIN_LV2 AND SFIZZ_SNDFILE_STATIC)
|
||||||
|
|
|
||||||
|
|
@ -15,28 +15,38 @@ set(PLUGINSCOMMON_SOURCES
|
||||||
common/plugin/SfizzSettings.h
|
common/plugin/SfizzSettings.h
|
||||||
common/plugin/SfizzSettings.cpp
|
common/plugin/SfizzSettings.cpp
|
||||||
)
|
)
|
||||||
source_group("Sources" FILES ${PLUGINSCOMMON_SOURCES})
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
||||||
add_library(plugins-common STATIC EXCLUDE_FROM_ALL ${PLUGINSCOMMON_SOURCES})
|
source_group("" FILES ${PLUGINSCOMMON_SOURCES})
|
||||||
|
endif()
|
||||||
|
add_library(plugins_common STATIC EXCLUDE_FROM_ALL ${PLUGINSCOMMON_SOURCES})
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
target_sources(plugins-common PRIVATE
|
target_sources(plugins_common PRIVATE
|
||||||
"common/plugin/SfizzForeignPaths.mm"
|
"common/plugin/SfizzForeignPaths.mm"
|
||||||
"common/plugin/SfizzSettings.mm"
|
"common/plugin/SfizzSettings.mm"
|
||||||
"common/plugin/NativeHelpers.mm")
|
"common/plugin/NativeHelpers.mm"
|
||||||
set_property(
|
)
|
||||||
SOURCE "common/plugin/SfizzForeignPaths.mm"
|
set_property(SOURCE
|
||||||
|
"common/plugin/SfizzForeignPaths.mm"
|
||||||
"common/plugin/SfizzSettings.mm"
|
"common/plugin/SfizzSettings.mm"
|
||||||
"common/plugin/NativeHelpers.mm"
|
"common/plugin/NativeHelpers.mm"
|
||||||
APPEND_STRING
|
APPEND_STRING
|
||||||
PROPERTY COMPILE_FLAGS " -fobjc-arc")
|
PROPERTY COMPILE_FLAGS " -fobjc-arc"
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
target_include_directories(plugins-common PUBLIC "common")
|
target_include_directories(plugins_common PUBLIC "common")
|
||||||
target_link_libraries(plugins-common
|
target_link_libraries(plugins_common
|
||||||
PUBLIC sfizz::spin_mutex
|
PUBLIC
|
||||||
PUBLIC sfizz::simde sfizz::filesystem absl::strings
|
sfizz::spin_mutex
|
||||||
PRIVATE sfizz::pugixml
|
sfizz::simde
|
||||||
PRIVATE sfizz::internal sfizz::sfizz)
|
sfizz::filesystem
|
||||||
add_library(sfizz::plugins-common ALIAS plugins-common)
|
absl::strings
|
||||||
|
PRIVATE
|
||||||
|
sfizz::pugixml
|
||||||
|
sfizz::internal
|
||||||
|
sfizz::sfizz
|
||||||
|
)
|
||||||
|
add_library(plugins::common ALIAS plugins_common)
|
||||||
|
|
||||||
add_custom_target(generate_plugins_git_build_id
|
add_custom_target(generate_plugins_git_build_id
|
||||||
COMMAND
|
COMMAND
|
||||||
|
|
@ -48,10 +58,15 @@ add_custom_target(generate_plugins_git_build_id
|
||||||
BYPRODUCTS
|
BYPRODUCTS
|
||||||
"${PROJECT_BINARY_DIR}/git-build-id/PluginGitBuildId.c"
|
"${PROJECT_BINARY_DIR}/git-build-id/PluginGitBuildId.c"
|
||||||
)
|
)
|
||||||
add_library(plugins_git_build_id STATIC EXCLUDE_FROM_ALL
|
set(PLUGINS_GIT_BUILD_ID_SOURCES
|
||||||
"${PROJECT_SOURCE_DIR}/plugins/git-build-id/PluginGitBuildId.h"
|
"${PROJECT_SOURCE_DIR}/plugins/git-build-id/PluginGitBuildId.h"
|
||||||
"${PROJECT_BINARY_DIR}/git-build-id/PluginGitBuildId.c"
|
"${PROJECT_BINARY_DIR}/git-build-id/PluginGitBuildId.c"
|
||||||
)
|
)
|
||||||
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
||||||
|
source_group("" FILES ${PLUGINS_GIT_BUILD_ID_SOURCES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_library(plugins_git_build_id STATIC EXCLUDE_FROM_ALL ${PLUGINS_GIT_BUILD_ID_SOURCES})
|
||||||
target_include_directories(plugins_git_build_id PUBLIC "${PROJECT_SOURCE_DIR}/plugins/git-build-id")
|
target_include_directories(plugins_git_build_id PUBLIC "${PROJECT_SOURCE_DIR}/plugins/git-build-id")
|
||||||
add_dependencies(plugins_git_build_id generate_plugins_git_build_id)
|
add_dependencies(plugins_git_build_id generate_plugins_git_build_id)
|
||||||
add_library(plugins::git_build_id ALIAS plugins_git_build_id)
|
add_library(plugins::git_build_id ALIAS plugins_git_build_id)
|
||||||
|
|
@ -60,7 +75,7 @@ add_library(plugins::git_build_id ALIAS plugins_git_build_id)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
elseif(ANDROID)
|
elseif(ANDROID)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
target_link_libraries(plugins-common PRIVATE
|
target_link_libraries(plugins_common PRIVATE
|
||||||
"${APPLE_FOUNDATION_LIBRARY}")
|
"${APPLE_FOUNDATION_LIBRARY}")
|
||||||
else()
|
else()
|
||||||
endif()
|
endif()
|
||||||
|
|
|
||||||
|
|
@ -88,47 +88,52 @@ set(EDITOR_SOURCES
|
||||||
src/editor/utility/vstgui_after.h
|
src/editor/utility/vstgui_after.h
|
||||||
src/editor/utility/vstgui_before.h
|
src/editor/utility/vstgui_before.h
|
||||||
)
|
)
|
||||||
source_group("Sources" FILES ${EDITOR_SOURCES})
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
||||||
source_group("Editor UI" FILES ${EDITOR_UI_FILES})
|
source_group("" FILES ${EDITOR_SOURCES})
|
||||||
source_group("Editor Themes" FILES ${EDITOR_THEMES})
|
source_group("" FILES ${EDITOR_UI_FILES})
|
||||||
|
source_group("" FILES ${EDITOR_THEMES})
|
||||||
|
endif()
|
||||||
|
|
||||||
add_library(sfizz_editor STATIC EXCLUDE_FROM_ALL
|
add_library(plugins_editor STATIC EXCLUDE_FROM_ALL
|
||||||
${EDITOR_SOURCES}
|
${EDITOR_SOURCES}
|
||||||
${EDITOR_THEMES}
|
${EDITOR_THEMES}
|
||||||
${EDITOR_UI_FILES}
|
${EDITOR_UI_FILES}
|
||||||
)
|
)
|
||||||
add_library(sfizz::editor ALIAS sfizz_editor)
|
add_library(plugins::editor ALIAS plugins_editor)
|
||||||
|
|
||||||
target_include_directories(sfizz_editor PUBLIC src)
|
target_include_directories(plugins_editor PUBLIC src)
|
||||||
target_link_libraries(sfizz_editor PUBLIC sfizz::messaging sfizz::plugins-common)
|
target_link_libraries(plugins_editor PUBLIC
|
||||||
target_link_libraries(sfizz_editor PRIVATE
|
sfizz::messaging
|
||||||
sfizz::vstgui
|
plugins::common
|
||||||
|
)
|
||||||
|
target_link_libraries(plugins_editor PRIVATE
|
||||||
|
plugins::vstgui
|
||||||
plugins::git_build_id
|
plugins::git_build_id
|
||||||
)
|
)
|
||||||
target_compile_definitions(sfizz_editor PRIVATE
|
target_compile_definitions(plugins_editor PRIVATE
|
||||||
"SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\"")
|
"SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\"")
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
find_library(APPLE_APPKIT_LIBRARY "AppKit")
|
find_library(APPLE_APPKIT_LIBRARY "AppKit")
|
||||||
find_library(APPLE_CORESERVICES_LIBRARY "CoreServices")
|
find_library(APPLE_CORESERVICES_LIBRARY "CoreServices")
|
||||||
find_library(APPLE_FOUNDATION_LIBRARY "Foundation")
|
find_library(APPLE_FOUNDATION_LIBRARY "Foundation")
|
||||||
target_sources(sfizz_editor PRIVATE
|
target_sources(plugins_editor PRIVATE
|
||||||
src/editor/NativeHelpers.mm
|
src/editor/NativeHelpers.mm
|
||||||
src/editor/VSTGUIHelpers.mm)
|
src/editor/VSTGUIHelpers.mm)
|
||||||
target_link_libraries(sfizz_editor PRIVATE
|
target_link_libraries(plugins_editor PRIVATE
|
||||||
"${APPLE_APPKIT_LIBRARY}"
|
"${APPLE_APPKIT_LIBRARY}"
|
||||||
"${APPLE_CORESERVICES_LIBRARY}"
|
"${APPLE_CORESERVICES_LIBRARY}"
|
||||||
"${APPLE_FOUNDATION_LIBRARY}")
|
"${APPLE_FOUNDATION_LIBRARY}")
|
||||||
target_compile_options(sfizz_editor PRIVATE "-fobjc-arc")
|
target_compile_options(plugins_editor PRIVATE "-fobjc-arc")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# dependencies
|
# dependencies
|
||||||
add_library(sfizz_colorspaces INTERFACE)
|
add_library(plugins_colorspaces INTERFACE)
|
||||||
add_library(sfizz::colorspaces ALIAS sfizz_colorspaces)
|
add_library(plugins::colorspaces ALIAS plugins_colorspaces)
|
||||||
target_include_directories(sfizz_colorspaces INTERFACE "external/color-spaces")
|
target_include_directories(plugins_colorspaces INTERFACE "external/color-spaces")
|
||||||
|
|
||||||
add_library(sfizz_stb_image INTERFACE)
|
add_library(plugins_stb_image INTERFACE)
|
||||||
add_library(sfizz::stb_image ALIAS sfizz_stb_image)
|
add_library(plugins::stb_image ALIAS plugins_stb_image)
|
||||||
target_include_directories(sfizz_stb_image INTERFACE "external/stb_image")
|
target_include_directories(plugins_stb_image INTERFACE "external/stb_image")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
#
|
#
|
||||||
|
|
@ -137,12 +142,12 @@ elseif(APPLE)
|
||||||
else()
|
else()
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules(sfizz-gio "gio-2.0" REQUIRED)
|
pkg_check_modules(sfizz-gio "gio-2.0" REQUIRED)
|
||||||
target_include_directories(sfizz_editor PRIVATE ${sfizz-gio_INCLUDE_DIRS})
|
target_include_directories(plugins_editor PRIVATE ${sfizz-gio_INCLUDE_DIRS})
|
||||||
target_link_libraries(sfizz_editor PRIVATE ${sfizz-gio_LIBRARIES})
|
target_link_libraries(plugins_editor PRIVATE ${sfizz-gio_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(sfizz_editor PRIVATE
|
target_link_libraries(plugins_editor PRIVATE
|
||||||
sfizz::colorspaces
|
plugins::colorspaces
|
||||||
sfizz::stb_image
|
plugins::stb_image
|
||||||
sfizz::bit_array
|
sfizz::bit_array
|
||||||
sfizz::filesystem
|
sfizz::filesystem
|
||||||
sfizz::pugixml
|
sfizz::pugixml
|
||||||
|
|
@ -155,7 +160,10 @@ if(NOT CMAKE_CROSSCOMPILING)
|
||||||
tools/layout-maker/sources/reader.h
|
tools/layout-maker/sources/reader.h
|
||||||
tools/layout-maker/sources/main.cpp
|
tools/layout-maker/sources/main.cpp
|
||||||
)
|
)
|
||||||
source_group("Sources" FILES ${LAYOUTMAKER_SOURCES})
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
||||||
|
source_group("" FILES ${LAYOUTMAKER_SOURCES})
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(layout-maker ${LAYOUTMAKER_SOURCES})
|
add_executable(layout-maker ${LAYOUTMAKER_SOURCES})
|
||||||
target_link_libraries(layout-maker PRIVATE absl::strings)
|
target_link_libraries(layout-maker PRIVATE absl::strings)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ string(REGEX MATCH "\#define VSTGUI_VERSION_MINOR ([0-9]*)" _ ${VSTGUIBASE_HEAD
|
||||||
set(VSTGUI_VERSION_MINOR ${CMAKE_MATCH_1})
|
set(VSTGUI_VERSION_MINOR ${CMAKE_MATCH_1})
|
||||||
set(VSTGUI_VERSION "${VSTGUI_VERSION_MAJOR}.${VSTGUI_VERSION_MINOR}")
|
set(VSTGUI_VERSION "${VSTGUI_VERSION_MAJOR}.${VSTGUI_VERSION_MINOR}")
|
||||||
|
|
||||||
add_library(sfizz_vstgui STATIC EXCLUDE_FROM_ALL
|
add_library(plugins_vstgui STATIC EXCLUDE_FROM_ALL
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/animation/animations.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/animation/animations.cpp"
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/animation/animator.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/animation/animator.cpp"
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/animation/timingfunctions.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/animation/timingfunctions.cpp"
|
||||||
|
|
@ -72,10 +72,10 @@ add_library(sfizz_vstgui STATIC EXCLUDE_FROM_ALL
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/vstguidebug.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/vstguidebug.cpp"
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/vstguiinit.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/vstguiinit.cpp"
|
||||||
)
|
)
|
||||||
add_library(sfizz::vstgui ALIAS sfizz_vstgui)
|
add_library(plugins::vstgui ALIAS plugins_vstgui)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
target_sources(sfizz_vstgui PRIVATE
|
target_sources(plugins_vstgui PRIVATE
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/direct2d/d2dbitmap.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/direct2d/d2dbitmap.cpp"
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/direct2d/d2dbitmapcache.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/direct2d/d2dbitmapcache.cpp"
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/direct2d/d2ddrawcontext.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/direct2d/d2ddrawcontext.cpp"
|
||||||
|
|
@ -98,7 +98,7 @@ if(WIN32)
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/wintimer.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/win32/wintimer.cpp"
|
||||||
)
|
)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
target_sources(sfizz_vstgui PRIVATE
|
target_sources(plugins_vstgui PRIVATE
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/mac/cocoa/autoreleasepool.mm"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/mac/cocoa/autoreleasepool.mm"
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/mac/cocoa/cocoahelpers.mm"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/mac/cocoa/cocoahelpers.mm"
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/mac/cocoa/cocoaopenglview.mm"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/mac/cocoa/cocoaopenglview.mm"
|
||||||
|
|
@ -119,7 +119,7 @@ elseif(APPLE)
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/mac/quartzgraphicspath.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/mac/quartzgraphicspath.cpp"
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
target_sources(sfizz_vstgui PRIVATE
|
target_sources(plugins_vstgui PRIVATE
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/linux/cairobitmap.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/linux/cairobitmap.cpp"
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/linux/cairocontext.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/linux/cairocontext.cpp"
|
||||||
"${VSTGUI_BASEDIR}/vstgui/lib/platform/linux/cairofont.cpp"
|
"${VSTGUI_BASEDIR}/vstgui/lib/platform/linux/cairofont.cpp"
|
||||||
|
|
@ -136,12 +136,12 @@ else()
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_include_directories(sfizz_vstgui PUBLIC "${VSTGUI_BASEDIR}")
|
target_include_directories(plugins_vstgui PUBLIC "${VSTGUI_BASEDIR}")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if (NOT MSVC)
|
if (NOT MSVC)
|
||||||
# autolinked on MSVC with pragmas
|
# autolinked on MSVC with pragmas
|
||||||
target_link_libraries(sfizz_vstgui PRIVATE
|
target_link_libraries(plugins_vstgui PRIVATE
|
||||||
"opengl32"
|
"opengl32"
|
||||||
"d2d1"
|
"d2d1"
|
||||||
"dwrite"
|
"dwrite"
|
||||||
|
|
@ -151,7 +151,7 @@ if(WIN32)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
target_link_libraries(sfizz_vstgui PRIVATE
|
target_link_libraries(plugins_vstgui PRIVATE
|
||||||
"${APPLE_COREFOUNDATION_LIBRARY}"
|
"${APPLE_COREFOUNDATION_LIBRARY}"
|
||||||
"${APPLE_FOUNDATION_LIBRARY}"
|
"${APPLE_FOUNDATION_LIBRARY}"
|
||||||
"${APPLE_COCOA_LIBRARY}"
|
"${APPLE_COCOA_LIBRARY}"
|
||||||
|
|
@ -178,7 +178,7 @@ else()
|
||||||
pkg_check_modules(PANGO REQUIRED pangocairo pangoft2)
|
pkg_check_modules(PANGO REQUIRED pangocairo pangoft2)
|
||||||
pkg_check_modules(FONTCONFIG REQUIRED fontconfig)
|
pkg_check_modules(FONTCONFIG REQUIRED fontconfig)
|
||||||
pkg_check_modules(GLIB REQUIRED glib-2.0)
|
pkg_check_modules(GLIB REQUIRED glib-2.0)
|
||||||
target_include_directories(sfizz_vstgui PRIVATE
|
target_include_directories(plugins_vstgui PRIVATE
|
||||||
${X11_INCLUDE_DIRS}
|
${X11_INCLUDE_DIRS}
|
||||||
${FREETYPE_INCLUDE_DIRS}
|
${FREETYPE_INCLUDE_DIRS}
|
||||||
${LIBXCB_INCLUDE_DIRS}
|
${LIBXCB_INCLUDE_DIRS}
|
||||||
|
|
@ -193,7 +193,7 @@ else()
|
||||||
${FONTCONFIG_INCLUDE_DIRS}
|
${FONTCONFIG_INCLUDE_DIRS}
|
||||||
${GLIB_INCLUDE_DIRS}
|
${GLIB_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
target_link_libraries(sfizz_vstgui PRIVATE
|
target_link_libraries(plugins_vstgui PRIVATE
|
||||||
${X11_LIBRARIES}
|
${X11_LIBRARIES}
|
||||||
${FREETYPE_LIBRARIES}
|
${FREETYPE_LIBRARIES}
|
||||||
${LIBXCB_LIBRARIES}
|
${LIBXCB_LIBRARIES}
|
||||||
|
|
@ -210,21 +210,21 @@ else()
|
||||||
)
|
)
|
||||||
find_library(DL_LIBRARY "dl")
|
find_library(DL_LIBRARY "dl")
|
||||||
if(DL_LIBRARY)
|
if(DL_LIBRARY)
|
||||||
target_link_libraries(sfizz_vstgui PRIVATE "${DL_LIBRARY}")
|
target_link_libraries(plugins_vstgui PRIVATE "${DL_LIBRARY}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${CMAKE_BUILD_TYPE} MATCHES "Debug")
|
if(${CMAKE_BUILD_TYPE} MATCHES "Debug")
|
||||||
target_compile_definitions(sfizz_vstgui PUBLIC "DEVELOPMENT")
|
target_compile_definitions(plugins_vstgui PUBLIC "DEVELOPMENT")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${CMAKE_BUILD_TYPE} MATCHES "Release")
|
if(${CMAKE_BUILD_TYPE} MATCHES "Release")
|
||||||
target_compile_definitions(sfizz_vstgui PUBLIC "RELEASE")
|
target_compile_definitions(plugins_vstgui PUBLIC "RELEASE")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||||
# Windows 10 RS2 DDI for custom fonts
|
# Windows 10 RS2 DDI for custom fonts
|
||||||
target_compile_definitions(sfizz_vstgui PRIVATE "NTDDI_VERSION=0x0A000003")
|
target_compile_definitions(plugins_vstgui PRIVATE "NTDDI_VERSION=0x0A000003")
|
||||||
# disable custom fonts if dwrite3 API is unavailable in MinGW
|
# disable custom fonts if dwrite3 API is unavailable in MinGW
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
check_cxx_source_compiles("
|
check_cxx_source_compiles("
|
||||||
|
|
@ -240,13 +240,13 @@ int main()
|
||||||
}" SFIZZ_MINGW_SUPPORTS_DWRITE3)
|
}" SFIZZ_MINGW_SUPPORTS_DWRITE3)
|
||||||
if(NOT SFIZZ_MINGW_SUPPORTS_DWRITE3)
|
if(NOT SFIZZ_MINGW_SUPPORTS_DWRITE3)
|
||||||
message(WARNING "This version of MinGW does not support DirectWrite 3. Custom font support is disabled.")
|
message(WARNING "This version of MinGW does not support DirectWrite 3. Custom font support is disabled.")
|
||||||
target_compile_definitions(sfizz_vstgui PRIVATE "VSTGUI_WIN32_CUSTOMFONT_SUPPORT=0")
|
target_compile_definitions(plugins_vstgui PRIVATE "VSTGUI_WIN32_CUSTOMFONT_SUPPORT=0")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||||
gw_target_warn(sfizz_vstgui PRIVATE
|
gw_target_warn(plugins_vstgui PRIVATE
|
||||||
"-Wno-deprecated-copy"
|
"-Wno-deprecated-copy"
|
||||||
"-Wno-deprecated-declarations"
|
"-Wno-deprecated-declarations"
|
||||||
"-Wno-extra"
|
"-Wno-extra"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
set(LV2_PLUGIN_PRJ_NAME "${PROJECT_NAME}_lv2")
|
set(LV2_PLUGIN_PRJ_NAME "plugins_lv2")
|
||||||
|
|
||||||
# Set the build directory as <build_dir>/lv2/<plugin_name>.lv2/
|
# Set the build directory as <build_dir>/lv2/<plugin_name>.lv2/
|
||||||
set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
|
set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
|
||||||
|
|
@ -7,30 +7,47 @@ set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.lv2")
|
||||||
include(LV2Config)
|
include(LV2Config)
|
||||||
|
|
||||||
# Keep non build turtle files in IDE
|
# Keep non build turtle files in IDE
|
||||||
set(LV2_PLUGIN_TTL_SRC_FILES
|
set(LV2_PLUGIN_TTL_SOURCES
|
||||||
manifest.ttl.in
|
manifest.ttl.in
|
||||||
${PROJECT_NAME}.ttl.in
|
${PROJECT_NAME}.ttl.in
|
||||||
)
|
)
|
||||||
if(PLUGIN_LV2_UI)
|
if(PLUGIN_LV2_UI)
|
||||||
list(APPEND LV2_PLUGIN_TTL_SRC_FILES
|
list(APPEND LV2_PLUGIN_TTL_SOURCES ${PROJECT_NAME}_ui.ttl.in)
|
||||||
${PROJECT_NAME}_ui.ttl.in)
|
|
||||||
endif()
|
endif()
|
||||||
source_group("Turtle Files" FILES
|
set(LV2_PLUGIN_SOURCES
|
||||||
${LV2_PLUGIN_TTL_SRC_FILES}
|
|
||||||
)
|
|
||||||
add_library(${LV2_PLUGIN_PRJ_NAME} MODULE
|
|
||||||
${PROJECT_NAME}.cpp
|
${PROJECT_NAME}.cpp
|
||||||
${PROJECT_NAME}_lv2_common.cpp
|
${PROJECT_NAME}_lv2_common.cpp
|
||||||
${LV2_PLUGIN_TTL_SRC_FILES})
|
${LV2_PLUGIN_TTL_SOURCES}
|
||||||
target_link_libraries(${LV2_PLUGIN_PRJ_NAME} PRIVATE sfizz::sfizz sfizz::import sfizz::plugins-common)
|
)
|
||||||
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
||||||
|
source_group("" FILES ${LV2_PLUGIN_SOURCES})
|
||||||
|
endif()
|
||||||
|
source_group("Turtle Files" FILES ${LV2_PLUGIN_TTL_SOURCES})
|
||||||
|
|
||||||
|
add_library(${LV2_PLUGIN_PRJ_NAME} MODULE ${LV2_PLUGIN_SOURCES})
|
||||||
|
target_link_libraries(${LV2_PLUGIN_PRJ_NAME} PRIVATE
|
||||||
|
sfizz::sfizz
|
||||||
|
sfizz::import
|
||||||
|
plugins::common
|
||||||
|
)
|
||||||
if(PLUGIN_LV2_UI)
|
if(PLUGIN_LV2_UI)
|
||||||
add_library(${LV2_PLUGIN_PRJ_NAME}_ui MODULE
|
set(LV2_PLUGIN_UI_FILES
|
||||||
${PROJECT_NAME}_ui.cpp
|
${PROJECT_NAME}_ui.cpp
|
||||||
${PROJECT_NAME}_lv2_common.cpp
|
${PROJECT_NAME}_lv2_common.cpp
|
||||||
vstgui_helpers.h
|
vstgui_helpers.h
|
||||||
vstgui_helpers.cpp)
|
vstgui_helpers.cpp
|
||||||
target_link_libraries(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE sfizz::editor sfizz::vstgui sfizz::plugins-common)
|
)
|
||||||
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
||||||
|
source_group("" FILES ${LV2_PLUGIN_UI_FILES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_library(${LV2_PLUGIN_PRJ_NAME}_ui MODULE ${LV2_PLUGIN_UI_FILES})
|
||||||
|
|
||||||
|
target_link_libraries(${LV2_PLUGIN_PRJ_NAME}_ui PRIVATE
|
||||||
|
plugins::editor
|
||||||
|
plugins::vstgui
|
||||||
|
plugins::common
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PLUGIN_LV2_PSA)
|
if(PLUGIN_LV2_PSA)
|
||||||
|
|
|
||||||
|
|
@ -23,27 +23,32 @@ function(copy_puredata_resources TARGET SOURCE_DIR DESTINATION_DIR)
|
||||||
add_dependencies("${TARGET}" "${TARGET}_puredata_resources")
|
add_dependencies("${TARGET}" "${TARGET}_puredata_resources")
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
add_pd_external(sfizz_puredata "sfizz_puredata.c")
|
add_pd_external(plugins_puredata "sfizz_puredata.c")
|
||||||
target_compile_definitions(sfizz_puredata PRIVATE
|
|
||||||
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
||||||
|
source_group("" FILES sfizz_puredata.c)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_compile_definitions(plugins_puredata PRIVATE
|
||||||
"MIDI_CC_COUNT=${MIDI_CC_COUNT}"
|
"MIDI_CC_COUNT=${MIDI_CC_COUNT}"
|
||||||
"SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\""
|
"SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\""
|
||||||
)
|
)
|
||||||
target_link_libraries(sfizz_puredata PRIVATE
|
target_link_libraries(plugins_puredata PRIVATE
|
||||||
sfizz::import
|
sfizz::import
|
||||||
sfizz::sfizz
|
sfizz::sfizz
|
||||||
plugins::git_build_id
|
plugins::git_build_id
|
||||||
)
|
)
|
||||||
set_target_properties(sfizz_puredata PROPERTIES
|
set_target_properties(plugins_puredata PROPERTIES
|
||||||
OUTPUT_NAME "sfizz"
|
OUTPUT_NAME "sfizz"
|
||||||
LIBRARY_OUTPUT_DIRECTORY "${PUREDATA_BINARY_DIR}/$<0:>")
|
LIBRARY_OUTPUT_DIRECTORY "${PUREDATA_BINARY_DIR}/$<0:>")
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
set_property(TARGET sfizz_puredata APPEND_STRING
|
set_property(TARGET plugins_puredata APPEND_STRING
|
||||||
PROPERTY LINK_FLAGS " -static")
|
PROPERTY LINK_FLAGS " -static")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Copy resources
|
# Copy resources
|
||||||
copy_puredata_resources(sfizz_puredata
|
copy_puredata_resources(plugins_puredata
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
"${PUREDATA_BINARY_DIR}")
|
"${PUREDATA_BINARY_DIR}")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,18 +18,21 @@ configure_file(VstPluginDefs.h.in "${CMAKE_CURRENT_BINARY_DIR}/VstPluginDefs.h")
|
||||||
include("cmake/Vst3.cmake")
|
include("cmake/Vst3.cmake")
|
||||||
|
|
||||||
# Add the ring buffer
|
# Add the ring buffer
|
||||||
set(RINGBUFFER_HEADERS
|
set(RINGBUFFER_SOURCES
|
||||||
"external/ring_buffer/ring_buffer/ring_buffer.h"
|
"external/ring_buffer/ring_buffer/ring_buffer.h"
|
||||||
"external/ring_buffer/ring_buffer/ring_buffer.tcc")
|
"external/ring_buffer/ring_buffer/ring_buffer.tcc"
|
||||||
add_library(sfizz-ring-buffer STATIC EXCLUDE_FROM_ALL
|
|
||||||
"external/ring_buffer/ring_buffer/ring_buffer.cpp"
|
"external/ring_buffer/ring_buffer/ring_buffer.cpp"
|
||||||
${RINGBUFFER_HEADERS})
|
)
|
||||||
source_group("Header Files" FILES ${RINGBUFFER_HEADERS})
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
||||||
target_include_directories(sfizz-ring-buffer PUBLIC "external/ring_buffer")
|
source_group("" FILES ${RINGBUFFER_SOURCES})
|
||||||
add_library(sfizz::ring-buffer ALIAS sfizz-ring-buffer)
|
endif()
|
||||||
|
|
||||||
|
add_library(plugins_ring_buffer STATIC EXCLUDE_FROM_ALL ${RINGBUFFER_SOURCES})
|
||||||
|
target_include_directories(plugins_ring_buffer PUBLIC "external/ring_buffer")
|
||||||
|
add_library(plugins::ring-buffer ALIAS plugins_ring_buffer)
|
||||||
|
|
||||||
# Build the VST shared code
|
# Build the VST shared code
|
||||||
add_library(sfizz-vst3-core STATIC EXCLUDE_FROM_ALL
|
set(VST3_CORE_SOURCES
|
||||||
SfizzVstProcessor.cpp
|
SfizzVstProcessor.cpp
|
||||||
SfizzVstProcessor.h
|
SfizzVstProcessor.h
|
||||||
SfizzVstController.cpp
|
SfizzVstController.cpp
|
||||||
|
|
@ -47,38 +50,54 @@ add_library(sfizz-vst3-core STATIC EXCLUDE_FROM_ALL
|
||||||
OrderedEventProcessor.hpp
|
OrderedEventProcessor.hpp
|
||||||
IdleUpdateHandler.h
|
IdleUpdateHandler.h
|
||||||
X11RunLoop.h
|
X11RunLoop.h
|
||||||
X11RunLoop.cpp)
|
X11RunLoop.cpp
|
||||||
target_include_directories(sfizz-vst3-core
|
)
|
||||||
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
||||||
target_link_libraries(sfizz-vst3-core
|
source_group("" FILES ${VST3_CORE_SOURCES})
|
||||||
PRIVATE sfizz::sfizz
|
endif()
|
||||||
PRIVATE sfizz::import
|
|
||||||
PRIVATE sfizz::editor
|
add_library(plugins_vst3_core STATIC EXCLUDE_FROM_ALL ${VST3_CORE_SOURCES})
|
||||||
PRIVATE sfizz::plugins-common
|
|
||||||
PRIVATE sfizz::pugixml sfizz::filesystem
|
target_include_directories(plugins_vst3_core PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
PRIVATE sfizz::ring-buffer
|
target_link_libraries(plugins_vst3_core PRIVATE
|
||||||
PRIVATE absl::strings absl::optional absl::container_common
|
sfizz::sfizz
|
||||||
|
sfizz::filesystem
|
||||||
|
sfizz::import
|
||||||
|
sfizz::pugixml
|
||||||
|
plugins::common
|
||||||
|
plugins::editor
|
||||||
|
plugins::ring-buffer
|
||||||
|
absl::strings
|
||||||
|
absl::optional
|
||||||
|
absl::container_common
|
||||||
vst3sdk
|
vst3sdk
|
||||||
vst3sdk_vstgui)
|
vst3sdk_vstgui
|
||||||
gw_target_warn(sfizz-vst3-core PRIVATE
|
)
|
||||||
|
gw_target_warn(plugins_vst3_core PRIVATE
|
||||||
"-Wno-ignored-qualifiers"
|
"-Wno-ignored-qualifiers"
|
||||||
"-Wno-unused-parameter")
|
"-Wno-unused-parameter")
|
||||||
add_library(sfizz::vst3-core ALIAS sfizz-vst3-core)
|
add_library(plugins::vst3_core ALIAS plugins_vst3_core)
|
||||||
|
|
||||||
# --- VST3 plugin --- #
|
# --- VST3 plugin --- #
|
||||||
|
|
||||||
if(PLUGIN_VST3)
|
if(PLUGIN_VST3)
|
||||||
set(VST3_PLUGIN_PRJ_NAME "${PROJECT_NAME}_vst3")
|
set(VST3_PLUGIN_PRJ_NAME "plugins_vst3")
|
||||||
set(VST3_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
|
set(VST3_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.vst3")
|
||||||
|
|
||||||
|
if(SFIZZ_CMAKE_USE_EMPTY_SOURCE_GROUPS)
|
||||||
|
source_group("" FILES VstPluginFactory.cpp)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_library(${VST3_PLUGIN_PRJ_NAME} MODULE "VstPluginFactory.cpp")
|
add_library(${VST3_PLUGIN_PRJ_NAME} MODULE "VstPluginFactory.cpp")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
target_sources(${VST3_PLUGIN_PRJ_NAME} PRIVATE vst3.def)
|
target_sources(${VST3_PLUGIN_PRJ_NAME} PRIVATE vst3.def)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_include_directories(${VST3_PLUGIN_PRJ_NAME}
|
target_include_directories(${VST3_PLUGIN_PRJ_NAME}
|
||||||
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
target_link_libraries(${VST3_PLUGIN_PRJ_NAME}
|
target_link_libraries(${VST3_PLUGIN_PRJ_NAME}
|
||||||
PRIVATE sfizz-vst3-core)
|
PRIVATE plugins_vst3_core)
|
||||||
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
|
set_target_properties(${VST3_PLUGIN_PRJ_NAME} PROPERTIES
|
||||||
OUTPUT_NAME "${PROJECT_NAME}"
|
OUTPUT_NAME "${PROJECT_NAME}"
|
||||||
PREFIX "")
|
PREFIX "")
|
||||||
|
|
@ -156,7 +175,7 @@ endif()
|
||||||
if(PLUGIN_AU AND NOT APPLE)
|
if(PLUGIN_AU AND NOT APPLE)
|
||||||
message(WARNING "Audio Unit is available only for macOS builds")
|
message(WARNING "Audio Unit is available only for macOS builds")
|
||||||
elseif(PLUGIN_AU)
|
elseif(PLUGIN_AU)
|
||||||
set(AU_PLUGIN_PRJ_NAME "${PROJECT_NAME}_au")
|
set(AU_PLUGIN_PRJ_NAME "plugins_au")
|
||||||
set(AU_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.component")
|
set(AU_PLUGIN_BUNDLE_NAME "${PROJECT_NAME}.component")
|
||||||
|
|
||||||
add_library(${AU_PLUGIN_PRJ_NAME} MODULE
|
add_library(${AU_PLUGIN_PRJ_NAME} MODULE
|
||||||
|
|
@ -179,7 +198,7 @@ elseif(PLUGIN_AU)
|
||||||
"${APPLE_COREMIDI_LIBRARY}")
|
"${APPLE_COREMIDI_LIBRARY}")
|
||||||
|
|
||||||
target_link_libraries(${AU_PLUGIN_PRJ_NAME}
|
target_link_libraries(${AU_PLUGIN_PRJ_NAME}
|
||||||
PRIVATE sfizz-vst3-core)
|
PRIVATE plugins_vst3_core)
|
||||||
set_target_properties(${AU_PLUGIN_PRJ_NAME} PROPERTIES
|
set_target_properties(${AU_PLUGIN_PRJ_NAME} PROPERTIES
|
||||||
OUTPUT_NAME "${PROJECT_NAME}"
|
OUTPUT_NAME "${PROJECT_NAME}"
|
||||||
PREFIX "")
|
PREFIX "")
|
||||||
|
|
@ -331,7 +350,7 @@ if(PLUGIN_VST2)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(${VST2_PLUGIN_PRJ_NAME}
|
target_link_libraries(${VST2_PLUGIN_PRJ_NAME}
|
||||||
PRIVATE sfizz-vst3-core)
|
PRIVATE plugins_vst3_core)
|
||||||
set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES
|
set_target_properties(${VST2_PLUGIN_PRJ_NAME} PROPERTIES
|
||||||
OUTPUT_NAME "${PROJECT_NAME}"
|
OUTPUT_NAME "${PROJECT_NAME}"
|
||||||
PREFIX "")
|
PREFIX "")
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ if(WIN32)
|
||||||
"${VST3SDK_BASEDIR}/public.sdk/source/vst/vstgui_win32_bundle_support.cpp")
|
"${VST3SDK_BASEDIR}/public.sdk/source/vst/vstgui_win32_bundle_support.cpp")
|
||||||
target_compile_definitions(vst3sdk_vstgui PRIVATE "SMTG_MODULE_IS_BUNDLE=1")
|
target_compile_definitions(vst3sdk_vstgui PRIVATE "SMTG_MODULE_IS_BUNDLE=1")
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(vst3sdk_vstgui PUBLIC vst3sdk sfizz::vstgui)
|
target_link_libraries(vst3sdk_vstgui PUBLIC vst3sdk plugins::vstgui)
|
||||||
|
|
||||||
function(plugin_add_vstgui NAME)
|
function(plugin_add_vstgui NAME)
|
||||||
target_link_libraries("${NAME}" PRIVATE vst3sdk_vstgui)
|
target_link_libraries("${NAME}" PRIVATE vst3sdk_vstgui)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue