Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

816 lines
22KB

  1. cmake_minimum_required(VERSION 3.15)
  2. project(carla)
  3. set(CMAKE_POLICY_DEFAULT_CMP0025 NEW)
  4. set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)
  5. set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
  6. set(CMAKE_C_STANDARD 11)
  7. set(CMAKE_CXX_STANDARD 11)
  8. set(CMAKE_C_VISIBILITY_PRESET hidden)
  9. set(CMAKE_CXX_VISIBILITY_PRESET hidden)
  10. set(CMAKE_VISIBILITY_INLINES_HIDDEN TRUE)
  11. set_property(GLOBAL PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
  12. #######################################################################################################################
  13. # required dependencies
  14. find_package(Threads REQUIRED)
  15. if(NOT (APPLE OR HAIKU OR WIN32))
  16. set(CARLA_LIBDL dl)
  17. set(CARLA_LIBM m)
  18. set(CARLA_LIBRT rt)
  19. endif()
  20. #######################################################################################################################
  21. # optional dependencies
  22. find_package(PkgConfig)
  23. if(PKGCONFIG_FOUND)
  24. pkg_check_modules(FLUIDSYNTH IMPORTED_TARGET fluidsynth)
  25. pkg_check_modules(LIBLO IMPORTED_TARGET liblo)
  26. pkg_check_modules(SNDFILE IMPORTED_TARGET sndfile)
  27. else()
  28. set(FLUIDSYNTH_FOUND FALSE)
  29. set(LIBLO_FOUND FALSE)
  30. set(SNDFILE_FOUND FALSE)
  31. endif()
  32. if(PKGCONFIG_FOUND AND NOT WIN32)
  33. pkg_check_modules(LIBMAGIC IMPORTED_TARGET libmagic)
  34. else()
  35. set(LIBMAGIC_FOUND FALSE)
  36. endif()
  37. if(PKGCONFIG_FOUND AND NOT (APPLE OR WIN32))
  38. pkg_check_modules(X11 IMPORTED_TARGET x11)
  39. else()
  40. set(X11_FOUND FALSE)
  41. endif()
  42. add_library(carla-none INTERFACE)
  43. if(NOT FLUIDSYNTH_FOUND)
  44. add_library(PkgConfig::FLUIDSYNTH ALIAS carla-none)
  45. endif()
  46. if(NOT LIBLO_FOUND)
  47. add_library(PkgConfig::LIBLO ALIAS carla-none)
  48. endif()
  49. if(NOT LIBMAGIC_FOUND)
  50. add_library(PkgConfig::LIBMAGIC ALIAS carla-none)
  51. endif()
  52. if(NOT SNDFILE_FOUND)
  53. add_library(PkgConfig::SNDFILE ALIAS carla-none)
  54. endif()
  55. if(NOT X11_FOUND)
  56. add_library(PkgConfig::X11 ALIAS carla-none)
  57. endif()
  58. #######################################################################################################################
  59. # utilities
  60. function(set_common_target_properties TARGET)
  61. target_compile_definitions(${TARGET}
  62. PRIVATE
  63. BUILDING_CARLA
  64. HAVE_YSFX
  65. $<$<BOOL:${FLUIDSYNTH_FOUND}>:HAVE_FLUIDSYNTH>
  66. $<$<BOOL:${LIBLO_FOUND}>:HAVE_LIBLO>
  67. $<$<BOOL:${LIBMAGIC_FOUND}>:HAVE_LIBMAGIC>
  68. $<$<BOOL:${SNDFILE_FOUND}>:HAVE_SNDFILE>
  69. $<$<BOOL:${X11_FOUND}>:HAVE_X11>
  70. )
  71. target_compile_options(${TARGET}
  72. PRIVATE
  73. $<$<BOOL:${MSVC}>:/wd4244 /wd4267 /wd4273>
  74. )
  75. if(CMAKE_C_COMPILER_ID MATCHES "GNU")
  76. target_link_options(${TARGET}
  77. PRIVATE
  78. -Wl,--no-undefined
  79. )
  80. endif()
  81. set_target_properties(${TARGET}
  82. PROPERTIES
  83. POSITION_INDEPENDENT_CODE ON
  84. )
  85. if(APPLE AND NOT $ENV{HOMEBREW_NO_AUTO_UPDATE})
  86. set_property(${TARGET} PROPERTY APPEND OSX_ARCHITECTURES arm64)
  87. endif()
  88. endfunction()
  89. #######################################################################################################################
  90. # audio_decoder
  91. add_library(carla-audio-decoder STATIC)
  92. add_library(carla::audio-decoder ALIAS carla-audio-decoder)
  93. set_common_target_properties(carla-audio-decoder)
  94. target_include_directories(carla-audio-decoder
  95. PRIVATE
  96. ../source/includes
  97. ../source/modules
  98. ../source/utils
  99. )
  100. target_link_libraries(carla-audio-decoder
  101. PRIVATE
  102. PkgConfig::SNDFILE
  103. )
  104. target_sources(carla-audio-decoder
  105. PRIVATE
  106. ../source/modules/audio_decoder/ad_dr_mp3.c
  107. ../source/modules/audio_decoder/ad_ffmpeg.c
  108. ../source/modules/audio_decoder/ad_minimp3.c
  109. ../source/modules/audio_decoder/ad_plugin.c
  110. ../source/modules/audio_decoder/ad_soundfile.c
  111. )
  112. #######################################################################################################################
  113. # jackbridge
  114. add_library(carla-jackbridge STATIC)
  115. add_library(carla::jackbridge ALIAS carla-jackbridge)
  116. set_common_target_properties(carla-jackbridge)
  117. target_include_directories(carla-jackbridge
  118. PRIVATE
  119. ../source/includes
  120. ../source/utils
  121. )
  122. target_link_libraries(carla-jackbridge
  123. PRIVATE
  124. ${CARLA_LIBDL}
  125. ${CARLA_LIBRT}
  126. )
  127. target_sources(carla-jackbridge
  128. PRIVATE
  129. ../source/jackbridge/JackBridge1.cpp
  130. ../source/jackbridge/JackBridge2.cpp
  131. )
  132. #######################################################################################################################
  133. # lilv
  134. # serd
  135. add_library(carla-lilv_serd STATIC)
  136. set_common_target_properties(carla-lilv_serd)
  137. target_compile_options(carla-lilv_serd
  138. PRIVATE
  139. $<$<BOOL:${MSVC}>:/wd4005 /wd4090 /wd4133>
  140. $<$<C_COMPILER_ID:GNU>:-Wno-format-overflow>
  141. $<$<C_COMPILER_ID:GNU>:-Wno-implicit-fallthrough>
  142. )
  143. target_include_directories(carla-lilv_serd
  144. PRIVATE
  145. ../source/includes
  146. ../source/modules/lilv/config
  147. ../source/modules/lilv/serd-0.24.0
  148. )
  149. target_sources(carla-lilv_serd
  150. PRIVATE
  151. ../source/modules/lilv/serd.c
  152. )
  153. # sord
  154. add_library(carla-lilv_sord STATIC)
  155. set_common_target_properties(carla-lilv_sord)
  156. target_compile_options(carla-lilv_sord
  157. PRIVATE
  158. $<$<BOOL:${MSVC}>:/wd4005 /wd4090 /wd4133>
  159. $<$<C_COMPILER_ID:GNU>:-Wno-unused-parameter>
  160. # workaround compiler bug, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109585
  161. $<$<C_COMPILER_ID:GNU>:-fno-strict-aliasing>
  162. )
  163. target_include_directories(carla-lilv_sord
  164. PRIVATE
  165. ../source/includes
  166. ../source/modules/lilv/config
  167. ../source/modules/lilv/sord-0.16.0
  168. ../source/modules/lilv/sord-0.16.0/src
  169. )
  170. target_link_libraries(carla-lilv_sord
  171. PRIVATE
  172. carla-lilv_serd
  173. )
  174. target_sources(carla-lilv_sord
  175. PRIVATE
  176. ../source/modules/lilv/sord.c
  177. )
  178. # sratom
  179. add_library(carla-lilv_sratom STATIC)
  180. set_common_target_properties(carla-lilv_sratom)
  181. target_compile_options(carla-lilv_sratom
  182. PRIVATE
  183. $<$<BOOL:${MSVC}>:/wd4005 /wd4090 /wd4133>
  184. )
  185. target_include_directories(carla-lilv_sratom
  186. PRIVATE
  187. ../source/includes
  188. ../source/modules/lilv/config
  189. ../source/modules/lilv/sratom-0.6.0
  190. )
  191. target_link_libraries(carla-lilv_sratom
  192. PRIVATE
  193. carla-lilv_serd
  194. )
  195. target_sources(carla-lilv_sratom
  196. PRIVATE
  197. ../source/modules/lilv/sratom.c
  198. )
  199. # lilv
  200. add_library(carla-lilv_lilv STATIC)
  201. set_common_target_properties(carla-lilv_lilv)
  202. target_compile_options(carla-lilv_lilv
  203. PRIVATE
  204. $<$<BOOL:${MSVC}>:/wd4005 /wd4090 /wd4133>
  205. $<$<C_COMPILER_ID:GNU>:-Wno-deprecated-declarations>
  206. $<$<C_COMPILER_ID:GNU>:-Wno-discarded-qualifiers>
  207. $<$<C_COMPILER_ID:GNU>:-Wno-format-overflow>
  208. $<$<C_COMPILER_ID:GNU>:-Wno-unused-parameter>
  209. $<$<C_COMPILER_ID:AppleClang>:-Wno-incompatible-pointer-types-discards-qualifiers>
  210. )
  211. target_include_directories(carla-lilv_lilv
  212. PRIVATE
  213. ../source/includes
  214. ../source/modules/lilv/config
  215. ../source/modules/lilv/lilv-0.24.0
  216. ../source/modules/lilv/lilv-0.24.0/src
  217. )
  218. target_link_libraries(carla-lilv_lilv
  219. PRIVATE
  220. carla-lilv_serd
  221. carla-lilv_sord
  222. carla-lilv_sratom
  223. )
  224. target_sources(carla-lilv_lilv
  225. PRIVATE
  226. ../source/modules/lilv/lilv.c
  227. )
  228. # combined target
  229. add_library(carla-lilv INTERFACE)
  230. add_library(carla::lilv ALIAS carla-lilv)
  231. target_link_libraries(carla-lilv
  232. INTERFACE
  233. carla-lilv_serd
  234. carla-lilv_sord
  235. carla-lilv_sratom
  236. carla-lilv_lilv
  237. ${CARLA_LIBDL}
  238. ${CARLA_LIBM}
  239. ${CARLA_LIBRT}
  240. )
  241. #######################################################################################################################
  242. # native-plugins
  243. add_library(carla-native-plugins STATIC)
  244. add_library(carla::native-plugins ALIAS carla-native-plugins)
  245. set_common_target_properties(carla-native-plugins)
  246. target_include_directories(carla-native-plugins
  247. PRIVATE
  248. ../source/includes
  249. ../source/modules
  250. ../source/utils
  251. )
  252. target_sources(carla-native-plugins
  253. PRIVATE
  254. ../source/native-plugins/_all.c
  255. ../source/native-plugins/_data.cpp
  256. ../source/native-plugins/audio-gain.c
  257. ../source/native-plugins/bypass.c
  258. ../source/native-plugins/cv-to-audio.c
  259. ../source/native-plugins/lfo.c
  260. ../source/native-plugins/midi-channel-filter.c
  261. ../source/native-plugins/midi-channel-ab.c
  262. ../source/native-plugins/midi-channelize.c
  263. ../source/native-plugins/midi-gain.c
  264. ../source/native-plugins/midi-join.c
  265. ../source/native-plugins/midi-split.c
  266. ../source/native-plugins/midi-to-cv.c
  267. ../source/native-plugins/midi-through.c
  268. ../source/native-plugins/midi-transpose.c
  269. ../source/native-plugins/audio-file.cpp
  270. ../source/native-plugins/midi-file.cpp
  271. # these rely on PyQt, skip them
  272. # ../source/native-plugins/bigmeter.cpp
  273. # ../source/native-plugins/midi-pattern.cpp
  274. # ../source/native-plugins/notes.cpp
  275. # ../source/native-plugins/xycontroller.cpp
  276. )
  277. #######################################################################################################################
  278. # rtmempool
  279. add_library(carla-rtmempool STATIC)
  280. add_library(carla::rtmempool ALIAS carla-rtmempool)
  281. set_common_target_properties(carla-rtmempool)
  282. target_include_directories(carla-rtmempool
  283. PRIVATE
  284. ../source/includes
  285. ../source/utils
  286. )
  287. target_link_libraries(carla-rtmempool
  288. PRIVATE
  289. ${CARLA_LIBDL}
  290. ${CARLA_LIBRT}
  291. )
  292. target_sources(carla-rtmempool
  293. PRIVATE
  294. ../source/modules/rtmempool/rtmempool.c
  295. )
  296. #######################################################################################################################
  297. # sfzero
  298. add_library(carla-sfzero STATIC)
  299. add_library(carla::sfzero ALIAS carla-sfzero)
  300. set_common_target_properties(carla-sfzero)
  301. target_include_directories(carla-sfzero
  302. PRIVATE
  303. ../source/includes
  304. ../source/modules
  305. ../source/utils
  306. )
  307. target_link_libraries(carla-sfzero
  308. PRIVATE
  309. carla-audio-decoder
  310. )
  311. target_sources(carla-sfzero
  312. PRIVATE
  313. ../source/modules/sfzero/SFZero.cpp
  314. )
  315. #######################################################################################################################
  316. # water
  317. add_library(carla-water STATIC)
  318. add_library(carla::water ALIAS carla-water)
  319. set_common_target_properties(carla-water)
  320. target_compile_options(carla-water
  321. PRIVATE
  322. $<$<C_COMPILER_ID:GNU>:-Wno-deprecated-copy>
  323. )
  324. target_include_directories(carla-water
  325. PRIVATE
  326. ../source/includes
  327. ../source/utils
  328. )
  329. target_link_libraries(carla-water
  330. PRIVATE
  331. $<$<BOOL:${APPLE}>:$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>>
  332. $<$<BOOL:${WIN32}>:comdlg32>
  333. $<$<BOOL:${WIN32}>:ole32>
  334. $<$<BOOL:${WIN32}>:winmm>
  335. ${CARLA_LIBDL}
  336. ${CARLA_LIBRT}
  337. )
  338. target_sources(carla-water
  339. PRIVATE
  340. ../source/modules/water/water.cpp
  341. )
  342. #######################################################################################################################
  343. # water-files
  344. add_library(carla-water-files STATIC)
  345. add_library(carla::water-files ALIAS carla-water-files)
  346. set_common_target_properties(carla-water-files)
  347. target_compile_options(carla-water-files
  348. PRIVATE
  349. $<$<C_COMPILER_ID:GNU>:-Wno-deprecated-copy>
  350. )
  351. target_include_directories(carla-water-files
  352. PRIVATE
  353. ../source/includes
  354. ../source/utils
  355. )
  356. target_link_libraries(carla-water-files
  357. PRIVATE
  358. $<$<BOOL:${APPLE}>:$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>>
  359. $<$<BOOL:${WIN32}>:ole32>
  360. $<$<BOOL:${WIN32}>:winmm>
  361. ${CARLA_LIBDL}
  362. )
  363. target_sources(carla-water-files
  364. PRIVATE
  365. ../source/modules/water/water.files.cpp
  366. )
  367. #######################################################################################################################
  368. # ysfx
  369. add_library(carla-ysfx STATIC)
  370. add_library(carla::ysfx ALIAS carla-ysfx)
  371. set_common_target_properties(carla-ysfx)
  372. # YSFX_FTS_LACKS_LFS_SUPPORT
  373. target_compile_definitions(carla-ysfx
  374. PRIVATE
  375. EEL_TARGET_PORTABLE
  376. EELSCRIPT_NO_NET
  377. EELSCRIPT_NO_LICE
  378. NSEEL_ATOF=ysfx_wdl_atof
  379. WDL_FFT_REALSIZE=8
  380. WDL_LINEPARSE_ATOF=ysfx_wdl_atof
  381. YSFX_API=
  382. YSFX_NO_GFX
  383. YSFX_NO_STANDARD_MUTEX
  384. $<$<BOOL:${WIN32}>:NOMINMAX>
  385. $<$<NOT:$<BOOL:${MINGW}>>:_FILE_OFFSET_BITS=64>
  386. )
  387. target_compile_options(carla-ysfx
  388. PRIVATE
  389. $<$<C_COMPILER_ID:GNU>:-fsigned-char>
  390. $<$<C_COMPILER_ID:GNU>:-Wno-extra>
  391. $<$<C_COMPILER_ID:GNU>:-Wno-ignored-attributes>
  392. $<$<C_COMPILER_ID:GNU>:-Wno-sign-compare>
  393. $<$<C_COMPILER_ID:GNU>:-Wno-unused-function>
  394. $<$<C_COMPILER_ID:GNU>:-Wno-unused-parameter>
  395. $<$<CXX_COMPILER_ID:GNU>:-Wno-deprecated-copy>
  396. )
  397. target_include_directories(carla-ysfx
  398. PRIVATE
  399. ../source/modules/ysfx/include
  400. ../source/modules/ysfx/sources
  401. ../source/modules/ysfx/thirdparty/dr_libs
  402. ../source/modules/ysfx/thirdparty/stb
  403. ../source/modules/ysfx/thirdparty/WDL/source
  404. )
  405. target_link_libraries(carla-ysfx
  406. PRIVATE
  407. )
  408. target_sources(carla-ysfx
  409. PRIVATE
  410. ../source/modules/ysfx/sources/ysfx.cpp
  411. ../source/modules/ysfx/sources/ysfx_api_eel.cpp
  412. ../source/modules/ysfx/sources/ysfx_api_file.cpp
  413. ../source/modules/ysfx/sources/ysfx_api_gfx.cpp
  414. ../source/modules/ysfx/sources/ysfx_api_reaper.cpp
  415. ../source/modules/ysfx/sources/ysfx_audio_flac.cpp
  416. ../source/modules/ysfx/sources/ysfx_audio_wav.cpp
  417. ../source/modules/ysfx/sources/ysfx_config.cpp
  418. ../source/modules/ysfx/sources/ysfx_eel_utils.cpp
  419. ../source/modules/ysfx/sources/ysfx_midi.cpp
  420. ../source/modules/ysfx/sources/ysfx_parse.cpp
  421. ../source/modules/ysfx/sources/ysfx_reader.cpp
  422. ../source/modules/ysfx/sources/ysfx_utils.cpp
  423. ../source/modules/ysfx/sources/ysfx_utils_fts.cpp
  424. ../source/modules/ysfx/sources/eel2-gas/sources/asm-nseel-x64-sse.S
  425. ../source/modules/ysfx/thirdparty/WDL/source/WDL/eel2/nseel-caltab.c
  426. ../source/modules/ysfx/thirdparty/WDL/source/WDL/eel2/nseel-cfunc.c
  427. ../source/modules/ysfx/thirdparty/WDL/source/WDL/eel2/nseel-compiler.c
  428. ../source/modules/ysfx/thirdparty/WDL/source/WDL/eel2/nseel-eval.c
  429. ../source/modules/ysfx/thirdparty/WDL/source/WDL/eel2/nseel-lextab.c
  430. ../source/modules/ysfx/thirdparty/WDL/source/WDL/eel2/nseel-ram.c
  431. ../source/modules/ysfx/thirdparty/WDL/source/WDL/eel2/nseel-yylex.c
  432. ../source/modules/ysfx/thirdparty/WDL/source/WDL/fft.c
  433. $<$<BOOL:${WIN32}>:../source/modules/ysfx/thirdparty/WDL/source/WDL/win32_utf8.c>
  434. )
  435. #######################################################################################################################
  436. # zita-resampler
  437. add_library(carla-zita-resampler STATIC)
  438. add_library(carla::zita-resampler ALIAS carla-zita-resampler)
  439. set_common_target_properties(carla-zita-resampler)
  440. target_include_directories(carla-zita-resampler
  441. PRIVATE
  442. ../source/includes
  443. )
  444. target_sources(carla-zita-resampler
  445. PRIVATE
  446. ../source/modules/zita-resampler/cresampler.cc
  447. ../source/modules/zita-resampler/resampler-table.cc
  448. ../source/modules/zita-resampler/resampler.cc
  449. ../source/modules/zita-resampler/vresampler.cc
  450. )
  451. #######################################################################################################################
  452. # carla bridge
  453. add_executable(carla-bridge-native)
  454. set_common_target_properties(carla-bridge-native)
  455. target_compile_definitions(carla-bridge-native
  456. PRIVATE
  457. BUILD_BRIDGE
  458. CARLA_LIB_EXT="${CMAKE_SHARED_LIBRARY_SUFFIX}"
  459. )
  460. # FIXME
  461. target_compile_options(carla-bridge-native
  462. PRIVATE
  463. $<$<C_COMPILER_ID:GNU>:-Wno-format-truncation>
  464. $<$<C_COMPILER_ID:GNU>:-Wno-stringop-overflow>
  465. $<$<C_COMPILER_ID:GNU>:-Wno-unused-parameter>
  466. $<$<C_COMPILER_ID:GNU>:-Wno-vla>
  467. )
  468. target_include_directories(carla-bridge-native
  469. PRIVATE
  470. ../source
  471. ../source/backend
  472. ../source/backend/engine
  473. ../source/backend/plugin
  474. ../source/includes
  475. ../source/modules
  476. ../source/utils
  477. )
  478. target_link_libraries(carla-bridge-native
  479. PRIVATE
  480. carla-audio-decoder
  481. carla-jackbridge
  482. carla-lilv
  483. carla-native-plugins
  484. carla-rtmempool
  485. carla-sfzero
  486. carla-water
  487. carla-ysfx
  488. carla-zita-resampler
  489. PkgConfig::FLUIDSYNTH
  490. PkgConfig::LIBMAGIC
  491. PkgConfig::X11
  492. ${CMAKE_THREAD_LIBS_INIT}
  493. )
  494. target_sources(carla-bridge-native
  495. PRIVATE
  496. ../source/bridges-plugin/CarlaBridgePlugin.cpp
  497. ../source/backend/CarlaStandalone.cpp
  498. ../source/backend/engine/CarlaEngine.cpp
  499. ../source/backend/engine/CarlaEngineBridge.cpp
  500. ../source/backend/engine/CarlaEngineClient.cpp
  501. ../source/backend/engine/CarlaEngineDummy.cpp
  502. ../source/backend/engine/CarlaEngineData.cpp
  503. ../source/backend/engine/CarlaEngineGraph.cpp
  504. ../source/backend/engine/CarlaEngineInternal.cpp
  505. ../source/backend/engine/CarlaEnginePorts.cpp
  506. ../source/backend/engine/CarlaEngineRunner.cpp
  507. ../source/backend/plugin/CarlaPlugin.cpp
  508. ../source/backend/plugin/CarlaPluginBridge.cpp
  509. ../source/backend/plugin/CarlaPluginInternal.cpp
  510. ../source/backend/plugin/CarlaPluginAU.cpp
  511. ../source/backend/plugin/CarlaPluginCLAP.cpp
  512. ../source/backend/plugin/CarlaPluginFluidSynth.cpp
  513. ../source/backend/plugin/CarlaPluginJuce.cpp
  514. ../source/backend/plugin/CarlaPluginJSFX.cpp
  515. ../source/backend/plugin/CarlaPluginLADSPADSSI.cpp
  516. ../source/backend/plugin/CarlaPluginLV2.cpp
  517. ../source/backend/plugin/CarlaPluginNative.cpp
  518. ../source/backend/plugin/CarlaPluginSFZero.cpp
  519. ../source/backend/plugin/CarlaPluginVST2.cpp
  520. ../source/backend/plugin/CarlaPluginVST3.cpp
  521. )
  522. #######################################################################################################################
  523. # carla discovery
  524. add_executable(carla-discovery-native)
  525. set_common_target_properties(carla-discovery-native)
  526. target_include_directories(carla-discovery-native
  527. PRIVATE
  528. ../source/backend
  529. ../source/includes
  530. ../source/modules
  531. ../source/utils
  532. )
  533. target_link_libraries(carla-discovery-native
  534. PRIVATE
  535. carla-lilv
  536. carla-water-files
  537. carla-ysfx
  538. PkgConfig::FLUIDSYNTH
  539. ${CMAKE_THREAD_LIBS_INIT}
  540. )
  541. target_sources(carla-discovery-native
  542. PRIVATE
  543. ../source/discovery/carla-discovery.cpp
  544. )
  545. #######################################################################################################################
  546. # carla standalone
  547. add_library(carla-standalone SHARED)
  548. add_library(carla::standalone ALIAS carla-standalone)
  549. set_common_target_properties(carla-standalone)
  550. set_target_properties(carla-standalone
  551. PROPERTIES
  552. OUTPUT_NAME carla_standalone2
  553. )
  554. target_compile_definitions(carla-standalone
  555. PRIVATE
  556. CARLA_LIB_EXT="${CMAKE_SHARED_LIBRARY_SUFFIX}"
  557. )
  558. # FIXME
  559. target_compile_options(carla-standalone
  560. PRIVATE
  561. $<$<C_COMPILER_ID:GNU>:-Wno-format-truncation>
  562. $<$<C_COMPILER_ID:GNU>:-Wno-stringop-overflow>
  563. $<$<C_COMPILER_ID:GNU>:-Wno-unused-parameter>
  564. $<$<C_COMPILER_ID:GNU>:-Wno-vla>
  565. )
  566. target_include_directories(carla-standalone
  567. PRIVATE
  568. ../source
  569. ../source/backend
  570. ../source/includes
  571. ../source/modules
  572. ../source/utils
  573. )
  574. target_link_libraries(carla-standalone
  575. PRIVATE
  576. carla-jackbridge
  577. carla-lilv
  578. carla-native-plugins
  579. carla-rtmempool
  580. carla-sfzero
  581. carla-water
  582. carla-ysfx
  583. carla-zita-resampler
  584. PkgConfig::FLUIDSYNTH
  585. PkgConfig::LIBLO
  586. PkgConfig::LIBMAGIC
  587. PkgConfig::X11
  588. ${CMAKE_THREAD_LIBS_INIT}
  589. )
  590. target_sources(carla-standalone
  591. PRIVATE
  592. ../source/backend/CarlaStandalone.cpp
  593. ../source/backend/CarlaStandaloneNSM.cpp
  594. ../source/backend/engine/CarlaEngine.cpp
  595. ../source/backend/engine/CarlaEngineClient.cpp
  596. ../source/backend/engine/CarlaEngineDummy.cpp
  597. ../source/backend/engine/CarlaEngineData.cpp
  598. ../source/backend/engine/CarlaEngineJack.cpp
  599. ../source/backend/engine/CarlaEngineGraph.cpp
  600. ../source/backend/engine/CarlaEngineInternal.cpp
  601. ../source/backend/engine/CarlaEngineNative.cpp
  602. ../source/backend/engine/CarlaEngineOsc.cpp
  603. ../source/backend/engine/CarlaEngineOscHandlers.cpp
  604. ../source/backend/engine/CarlaEngineOscSend.cpp
  605. ../source/backend/engine/CarlaEnginePorts.cpp
  606. ../source/backend/engine/CarlaEngineRunner.cpp
  607. ../source/backend/plugin/CarlaPlugin.cpp
  608. ../source/backend/plugin/CarlaPluginBridge.cpp
  609. ../source/backend/plugin/CarlaPluginInternal.cpp
  610. ../source/backend/plugin/CarlaPluginAU.cpp
  611. ../source/backend/plugin/CarlaPluginCLAP.cpp
  612. ../source/backend/plugin/CarlaPluginFluidSynth.cpp
  613. ../source/backend/plugin/CarlaPluginJuce.cpp
  614. ../source/backend/plugin/CarlaPluginJSFX.cpp
  615. ../source/backend/plugin/CarlaPluginLADSPADSSI.cpp
  616. ../source/backend/plugin/CarlaPluginLV2.cpp
  617. ../source/backend/plugin/CarlaPluginNative.cpp
  618. ../source/backend/plugin/CarlaPluginSFZero.cpp
  619. ../source/backend/plugin/CarlaPluginVST2.cpp
  620. ../source/backend/plugin/CarlaPluginVST3.cpp
  621. )
  622. #######################################################################################################################
  623. # carla utils
  624. add_library(carla-utils SHARED)
  625. add_library(carla::utils ALIAS carla-utils)
  626. set_common_target_properties(carla-utils)
  627. set_target_properties(carla-standalone
  628. PROPERTIES
  629. OUTPUT_NAME carla_utils
  630. )
  631. target_include_directories(carla-utils
  632. PRIVATE
  633. ../source
  634. ../source/backend
  635. ../source/includes
  636. ../source/modules
  637. ../source/utils
  638. )
  639. target_link_libraries(carla-utils
  640. PRIVATE
  641. carla-jackbridge
  642. carla-lilv
  643. carla-water-files
  644. carla-ysfx
  645. PkgConfig::FLUIDSYNTH
  646. PkgConfig::X11
  647. ${CMAKE_THREAD_LIBS_INIT}
  648. )
  649. target_sources(carla-utils
  650. PRIVATE
  651. ../source/backend/utils/CachedPlugins.cpp
  652. ../source/backend/utils/CarlaUtils.cpp
  653. ../source/backend/utils/Information.cpp
  654. ../source/backend/utils/JUCE.cpp
  655. ../source/backend/utils/PipeClient.cpp
  656. ../source/backend/utils/PluginDiscovery.cpp
  657. ../source/backend/utils/System.cpp
  658. ../source/backend/utils/Windows.cpp
  659. )
  660. #######################################################################################################################
  661. if (APPLE)
  662. set_source_files_properties(
  663. ../source/backend/CarlaStandalone.cpp
  664. ../source/backend/plugin/CarlaPluginCLAP.cpp
  665. ../source/backend/plugin/CarlaPluginVST2.cpp
  666. ../source/backend/plugin/CarlaPluginVST3.cpp
  667. ../source/backend/utils/CarlaUtils.cpp
  668. ../source/backend/utils/Windows.cpp
  669. ../source/bridges-plugin/CarlaBridgePlugin.cpp
  670. ../source/discovery/carla-discovery.cpp
  671. ../source/modules/water/water.cpp
  672. ../source/modules/water/water.files.cpp
  673. PROPERTIES COMPILE_FLAGS -ObjC++)
  674. endif()
  675. #######################################################################################################################