mirror of
https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI.git
synced 2026-08-29 10:09:32 +02:00
96 lines
3.1 KiB
CMake
96 lines
3.1 KiB
CMake
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()
|