From 67f971017dbfdd3e6591715e2ff678b7ecebd07c Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Sun, 3 Mar 2019 16:55:53 +0100 Subject: [PATCH] cmake: build VSTs --- CMakeLists.txt | 2 ++ Vsts/CMakeLists.txt | 12 +++++++++ WaveSabreVstLib/CMakeLists.txt | 56 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 Vsts/CMakeLists.txt create mode 100644 WaveSabreVstLib/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index c040615..232a607 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,9 @@ cmake_minimum_required(VERSION 3.11) # shared code add_subdirectory(WaveSabreCore) add_subdirectory(WaveSabrePlayerLib) +add_subdirectory(WaveSabreVstLib) # binaries add_subdirectory(Tests/PlayerTest) add_subdirectory(WaveSabreStandAlonePlayer) +add_subdirectory(Vsts) diff --git a/Vsts/CMakeLists.txt b/Vsts/CMakeLists.txt new file mode 100644 index 0000000..7373592 --- /dev/null +++ b/Vsts/CMakeLists.txt @@ -0,0 +1,12 @@ +file(GLOB children RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*) +foreach(child ${children}) + if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${child}) + file(GLOB sources ${CMAKE_CURRENT_SOURCE_DIR}/${child}/*.h) + aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/${child} sources) + file(WRITE "${CMAKE_BINARY_DIR}/${child}.def" + "LIBRARY ${child}\nEXPORTS\nVSTPluginMain\nmain=VSTPluginMain") + add_library(${child} SHARED + ${sources} ../Data/data.rc ${CMAKE_BINARY_DIR}/${child}.def) + target_link_libraries(${child} WaveSabreCore WaveSabreVstLib) + endif() +endforeach() diff --git a/WaveSabreVstLib/CMakeLists.txt b/WaveSabreVstLib/CMakeLists.txt new file mode 100644 index 0000000..d7fbf99 --- /dev/null +++ b/WaveSabreVstLib/CMakeLists.txt @@ -0,0 +1,56 @@ +add_library(WaveSabreVstLib + ../Vst3.x/public.sdk/source/vst2.x/audioeffect.cpp + ../Vst3.x/public.sdk/source/vst2.x/audioeffectx.cpp + ../Vst3.x/public.sdk/source/vst2.x/vstplugmain.cpp + ../Vst3.x/vstgui.sf/libpng/png.c + ../Vst3.x/vstgui.sf/libpng/pngerror.c + ../Vst3.x/vstgui.sf/libpng/pnggccrd.c + ../Vst3.x/vstgui.sf/libpng/pngget.c + ../Vst3.x/vstgui.sf/libpng/pngmem.c + ../Vst3.x/vstgui.sf/libpng/pngpread.c + ../Vst3.x/vstgui.sf/libpng/pngread.c + ../Vst3.x/vstgui.sf/libpng/pngrio.c + ../Vst3.x/vstgui.sf/libpng/pngrtran.c + ../Vst3.x/vstgui.sf/libpng/pngrutil.c + ../Vst3.x/vstgui.sf/libpng/pngset.c + ../Vst3.x/vstgui.sf/libpng/pngtrans.c + ../Vst3.x/vstgui.sf/libpng/pngvcrd.c + ../Vst3.x/vstgui.sf/libpng/pngwio.c + ../Vst3.x/vstgui.sf/libpng/pngwrite.c + ../Vst3.x/vstgui.sf/libpng/pngwtran.c + ../Vst3.x/vstgui.sf/libpng/pngwutil.c + ../Vst3.x/vstgui.sf/vstgui/aeffguieditor.cpp + ../Vst3.x/vstgui.sf/vstgui/cfileselector.cpp + ../Vst3.x/vstgui.sf/vstgui/vstcontrols.cpp + ../Vst3.x/vstgui.sf/vstgui/vstgui.cpp + ../Vst3.x/vstgui.sf/vstgui/vstguidebug.cpp + ../Vst3.x/vstgui.sf/zlib/adler32.c + ../Vst3.x/vstgui.sf/zlib/compress.c + ../Vst3.x/vstgui.sf/zlib/crc32.c + ../Vst3.x/vstgui.sf/zlib/deflate.c + ../Vst3.x/vstgui.sf/zlib/gzio.c + ../Vst3.x/vstgui.sf/zlib/infback.c + ../Vst3.x/vstgui.sf/zlib/inffast.c + ../Vst3.x/vstgui.sf/zlib/inflate.c + ../Vst3.x/vstgui.sf/zlib/inftrees.c + ../Vst3.x/vstgui.sf/zlib/minigzip.c + ../Vst3.x/vstgui.sf/zlib/trees.c + ../Vst3.x/vstgui.sf/zlib/uncompr.c + ../Vst3.x/vstgui.sf/zlib/zutil.c + include/WaveSabreVstLib.h + src/ImageManager.cpp + src/NoTextCOptionMenu.cpp + src/VstEditor.cpp + src/VstPlug.cpp) + +target_include_directories(WaveSabreVstLib PUBLIC + include + ../WaveSabreCore/include + ../Vst3.x/vstgui.sf/zlib + ../Vst3.x/vstgui.sf/libpng + ../Vst3.x/public.sdk/source/vst2.x + ../Vst3.x) + +if(MSVC) + target_compile_definitions(WaveSabreVstLib PUBLIC _CRT_SECURE_NO_WARNINGS) +endif()