mirror of
https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI.git
synced 2026-08-29 10:09:32 +02:00
Add RVC Realtime VST2/VST3 source project
This commit is contained in:
95
RVCRealtimeVST/CMakeLists.txt
Normal file
95
RVCRealtimeVST/CMakeLists.txt
Normal file
@@ -0,0 +1,95 @@
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
project(RVCRealtime VERSION 0.1.0 LANGUAGES C CXX RC)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
option(RVC_BUILD_SMOKE_TEST "Build the standalone worker smoke test" ON)
|
||||
|
||||
set(IPLUG_DEPLOY_PLUGINS OFF CACHE BOOL "Keep plugin artifacts inside this project" FORCE)
|
||||
set(IPLUG2_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/iPlug2" CACHE PATH "iPlug2 root directory")
|
||||
|
||||
if(NOT EXISTS "${IPLUG2_DIR}/Dependencies/IPlug/VST3_SDK/base/source/baseiids.cpp"
|
||||
OR NOT EXISTS "${IPLUG2_DIR}/Dependencies/IPlug/VST2_SDK/aeffectx.h")
|
||||
message(FATAL_ERROR
|
||||
"Prepared VST SDK files are missing. Run scripts/prepare-dependencies.ps1 "
|
||||
"or use scripts/build.ps1, which runs it automatically.")
|
||||
endif()
|
||||
|
||||
include(${IPLUG2_DIR}/iPlug2.cmake)
|
||||
find_package(iPlug2 REQUIRED)
|
||||
|
||||
iplug_add_plugin(${PROJECT_NAME}
|
||||
SOURCES
|
||||
src/RVCRealtime.cpp
|
||||
src/RVCRealtime.h
|
||||
src/WorkerClient.cpp
|
||||
src/WorkerClient.hpp
|
||||
src/SpscRing.hpp
|
||||
src/RvcParameters.hpp
|
||||
config.h
|
||||
resources/resource.h
|
||||
resources/main.rc
|
||||
RESOURCES
|
||||
resources/fonts/Roboto-Regular.ttf
|
||||
FORMATS
|
||||
VST2
|
||||
VST3
|
||||
UI IGRAPHICS
|
||||
DEFINES
|
||||
UNICODE
|
||||
_UNICODE
|
||||
NOMINMAX)
|
||||
|
||||
if(TARGET RVCRealtime-vst2)
|
||||
target_include_directories(RVCRealtime-vst2 BEFORE PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/third_party/vst2-compat"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/third_party/vst2sdk/include")
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
foreach(target RVCRealtime-vst2 RVCRealtime-vst3)
|
||||
if(TARGET ${target})
|
||||
target_compile_options(${target} PRIVATE /W4 /permissive- /utf-8)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(RVC_BUILD_SMOKE_TEST)
|
||||
add_executable(rvc-worker-smoke
|
||||
tools/worker_smoke.cpp
|
||||
src/WorkerClient.cpp
|
||||
src/WorkerClient.hpp
|
||||
src/SpscRing.hpp
|
||||
src/RvcParameters.hpp
|
||||
config.h)
|
||||
target_include_directories(rvc-worker-smoke PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
target_compile_definitions(rvc-worker-smoke PRIVATE
|
||||
UNICODE
|
||||
_UNICODE
|
||||
NOMINMAX)
|
||||
if(MSVC)
|
||||
target_compile_options(rvc-worker-smoke PRIVATE /W4 /permissive- /utf-8)
|
||||
endif()
|
||||
add_custom_command(TARGET rvc-worker-smoke POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory
|
||||
"$<TARGET_FILE_DIR:rvc-worker-smoke>/RVCRealtime.resources/worker"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/worker/rvc_worker.py"
|
||||
"$<TARGET_FILE_DIR:rvc-worker-smoke>/RVCRealtime.resources/worker/rvc_worker.py")
|
||||
|
||||
add_executable(rvc-vst2-smoke tools/vst2_smoke.cpp)
|
||||
target_include_directories(rvc-vst2-smoke PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/third_party/vst2-compat"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/third_party/vst2sdk/include")
|
||||
target_compile_definitions(rvc-vst2-smoke PRIVATE
|
||||
UNICODE
|
||||
_UNICODE
|
||||
NOMINMAX)
|
||||
if(MSVC)
|
||||
target_compile_options(rvc-vst2-smoke PRIVATE /W4 /permissive- /utf-8)
|
||||
endif()
|
||||
endif()
|
||||
Reference in New Issue
Block a user