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.

CMakeLists.txt 18KB

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