-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
111 lines (88 loc) · 3.65 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# ##############################################################################
# CMakeLists file for RustGain Generated by Mads Kjeldgaard 2024-03-05
# ##############################################################################
# ##############################################################################
# basic project config
cmake_minimum_required(VERSION 3.15)
set(project_name "RustGain")
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake_modules ${CMAKE_MODULE_PATH})
set(CMAKE_CXX_STANDARD 17)
# CPM
include("${CMAKE_MODULE_PATH}/CPM.cmake")
# Download SC Source code and include
cpmaddpackage(
NAME
SCSource
GITHUB_REPOSITORY
supercollider/supercollider
GIT_TAG
develop
DOWNLOAD_ONLY
YES)
set(SC_PATH "${SCSource_SOURCE_DIR}")
# Rust stuff
include("${CMAKE_SOURCE_DIR}/cmake_modules/Rust.cmake")
# ##############################################################################
# load modules
include(SuperColliderServerPlugin RESULT_VARIABLE server_plugin_found)
if(NOT server_plugin_found)
message(FATAL_ERROR "Could not find server plugin functions module")
endif()
include(SuperColliderCompilerConfig RESULT_VARIABLE compiler_config_found)
if(NOT compiler_config_found)
message(FATAL_ERROR "Could not find compiler config module")
endif()
# Windows - puts redistributable DLLs in install directory
include(InstallRequiredSystemLibraries)
sc_check_sc_path("${SC_PATH}")
message(STATUS "Found SuperCollider: ${SC_PATH}")
set(SC_PATH
"${SC_PATH}"
CACHE
PATH
"Path to SuperCollider source. Relative paths are treated as relative to this script"
FORCE)
include("${SC_PATH}/SCVersion.txt")
message(STATUS "Building plugins for SuperCollider version: ${SC_VERSION}")
# set project here to avoid SCVersion.txt clobbering our version info
project(${project_name})
sc_do_initial_compiler_config() # do after setting project so compiler ID is
# available
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX)
message(
WARNING "No install prefix provided, defaulting to $BUILD_DIR/install")
set(CMAKE_INSTALL_PREFIX
"${CMAKE_BINARY_DIR}/install"
CACHE PATH "Install prefix" FORCE)
endif()
message(STATUS "Install directory set to: ${CMAKE_INSTALL_PREFIX}")
# Rust
# ##############################################################################
# options
option(SUPERNOVA "Build plugins for supernova" ON)
option(SCSYNTH "Build plugins for scsynth" ON)
option(NATIVE "Optimize for native architecture" OFF)
option(STRICT "Use strict warning flags" OFF)
option(NOVA_SIMD "Build plugins with nova-simd support." ON)
# ##############################################################################
# include libraries
if(NOVA_SIMD)
add_definitions(-DNOVA_SIMD)
include_directories(${SC_PATH}/external_libraries/nova-simd)
endif()
# ##############################################################################
# Begin target RustGain
set(RustGain_cpp_files plugins/RustGain/RustGain.cpp
plugins/RustGain/RustGain.hpp)
set(RustGain_sc_files plugins/RustGain/RustGain.sc)
set(RustGain_schelp_files plugins/RustGain/RustGain.schelp)
sc_add_server_plugin_with_rust(
"RustGain/RustGain" # desination directory
"RustGain" # target name
"${RustGain_cpp_files}" "${RustGain_sc_files}" "${RustGain_schelp_files}" "myscplug")
# End target RustGain
# ##############################################################################
# ##############################################################################
# END PLUGIN TARGET DEFINITION
# ##############################################################################
message(STATUS "Generating plugin targets done")