Add cmake project for building libs
Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
parent
96db6d8ef5
commit
d0c498c6c5
|
@ -0,0 +1,482 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
project(carla)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
#######################################################################################################################
|
||||
# check dependencies
|
||||
|
||||
find_package(PkgConfig)
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
if(APPLE)
|
||||
find_library(APPKIT AppKit)
|
||||
set(CARLA_OBJCPP_EXT "mm")
|
||||
else()
|
||||
set(CARLA_OBJCPP_EXT "cpp")
|
||||
endif()
|
||||
|
||||
# set(carla_pthread_libs ${CMAKE_THREAD_LIBS_INIT})
|
||||
|
||||
# Optional: transient X11 window flags
|
||||
if(PKGCONFIG_FOUND AND NOT (APPLE OR WIN32))
|
||||
pkg_check_modules(X11 "x11")
|
||||
else()
|
||||
set(X11_FOUND FALSE)
|
||||
endif()
|
||||
|
||||
if(NOT (APPLE OR HAIKU OR WIN32))
|
||||
set(CARLA_LIBDL dl)
|
||||
set(CARLA_LIBM m)
|
||||
set(CARLA_LIBRT rt)
|
||||
endif()
|
||||
|
||||
#######################################################################################################################
|
||||
# utilities
|
||||
|
||||
#######################################################################################################################
|
||||
# jackbridge
|
||||
|
||||
add_library(carla-jackbridge STATIC)
|
||||
add_library(carla::jackbridge ALIAS carla-jackbridge)
|
||||
|
||||
set_target_properties(carla-jackbridge
|
||||
PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64;arm64"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_include_directories(carla-jackbridge
|
||||
PRIVATE
|
||||
../source/includes
|
||||
../source/utils
|
||||
)
|
||||
|
||||
target_link_libraries(carla-jackbridge
|
||||
PRIVATE
|
||||
${CARLA_LIBDL}
|
||||
${CARLA_LIBRT}
|
||||
)
|
||||
|
||||
target_sources(carla-jackbridge
|
||||
PRIVATE
|
||||
../source/jackbridge/JackBridge1.cpp
|
||||
../source/jackbridge/JackBridge2.cpp
|
||||
)
|
||||
|
||||
#######################################################################################################################
|
||||
# lilv
|
||||
|
||||
# serd
|
||||
add_library(carla-lilv_serd STATIC)
|
||||
|
||||
set_target_properties(carla-lilv_serd
|
||||
PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64;arm64"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_compile_options(carla-lilv_serd
|
||||
PRIVATE
|
||||
$<$<BOOL:${MSVC}>:/wd4005 /wd4090 /wd4133 /wd4244 /wd4267 /wd4273>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-deprecated-declarations>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-implicit-fallthrough>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-incompatible-pointer-types-discards-qualifiers>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-unused-parameter>
|
||||
)
|
||||
|
||||
target_include_directories(carla-lilv_serd
|
||||
PRIVATE
|
||||
../source/includes
|
||||
../source/modules/lilv/config
|
||||
../source/modules/lilv/serd-0.24.0
|
||||
)
|
||||
|
||||
target_sources(carla-lilv_serd
|
||||
PRIVATE
|
||||
../source/modules/lilv/serd.c
|
||||
)
|
||||
|
||||
# sord
|
||||
add_library(carla-lilv_sord STATIC)
|
||||
|
||||
set_target_properties(carla-lilv_sord
|
||||
PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64;arm64"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_compile_options(carla-lilv_sord
|
||||
PRIVATE
|
||||
$<$<BOOL:${MSVC}>:/wd4005 /wd4090 /wd4133 /wd4244 /wd4267 /wd4273>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-deprecated-declarations>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-implicit-fallthrough>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-incompatible-pointer-types-discards-qualifiers>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-unused-parameter>
|
||||
# workaround compiler bug, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109585
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-fno-strict-aliasing>
|
||||
)
|
||||
|
||||
target_include_directories(carla-lilv_sord
|
||||
PRIVATE
|
||||
../source/includes
|
||||
../source/modules/lilv/config
|
||||
../source/modules/lilv/sord-0.16.0
|
||||
../source/modules/lilv/sord-0.16.0/src
|
||||
)
|
||||
|
||||
target_link_libraries(carla-lilv_sord
|
||||
PRIVATE
|
||||
carla-lilv_serd
|
||||
)
|
||||
|
||||
target_sources(carla-lilv_sord
|
||||
PRIVATE
|
||||
../source/modules/lilv/sord.c
|
||||
)
|
||||
|
||||
# sratom
|
||||
add_library(carla-lilv_sratom STATIC)
|
||||
|
||||
set_target_properties(carla-lilv_sratom
|
||||
PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64;arm64"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_compile_options(carla-lilv_sratom
|
||||
PRIVATE
|
||||
$<$<BOOL:${MSVC}>:/wd4005 /wd4090 /wd4133 /wd4244 /wd4267 /wd4273>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-deprecated-declarations>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-implicit-fallthrough>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-incompatible-pointer-types-discards-qualifiers>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-unused-parameter>
|
||||
)
|
||||
|
||||
target_include_directories(carla-lilv_sratom
|
||||
PRIVATE
|
||||
../source/includes
|
||||
../source/modules/lilv/config
|
||||
../source/modules/lilv/sratom-0.6.0
|
||||
)
|
||||
|
||||
target_link_libraries(carla-lilv_sratom
|
||||
PRIVATE
|
||||
carla-lilv_serd
|
||||
)
|
||||
|
||||
target_sources(carla-lilv_sratom
|
||||
PRIVATE
|
||||
../source/modules/lilv/sratom.c
|
||||
)
|
||||
|
||||
# lilv
|
||||
add_library(carla-lilv_lilv STATIC)
|
||||
|
||||
set_target_properties(carla-lilv_lilv
|
||||
PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64;arm64"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_compile_options(carla-lilv_lilv
|
||||
PRIVATE
|
||||
$<$<BOOL:${MSVC}>:/wd4005 /wd4090 /wd4133 /wd4244 /wd4267 /wd4273>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-deprecated-declarations>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-implicit-fallthrough>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-incompatible-pointer-types-discards-qualifiers>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-unused-parameter>
|
||||
)
|
||||
|
||||
target_include_directories(carla-lilv_lilv
|
||||
PRIVATE
|
||||
../source/includes
|
||||
../source/modules/lilv/config
|
||||
../source/modules/lilv/lilv-0.24.0
|
||||
../source/modules/lilv/lilv-0.24.0/src
|
||||
)
|
||||
|
||||
target_link_libraries(carla-lilv_lilv
|
||||
PRIVATE
|
||||
carla-lilv_serd
|
||||
carla-lilv_sord
|
||||
carla-lilv_sratom
|
||||
)
|
||||
|
||||
target_sources(carla-lilv_lilv
|
||||
PRIVATE
|
||||
../source/modules/lilv/lilv.c
|
||||
)
|
||||
|
||||
# combined target
|
||||
add_library(carla-lilv INTERFACE)
|
||||
add_library(carla::lilv ALIAS carla-lilv)
|
||||
|
||||
target_link_libraries(carla-lilv
|
||||
INTERFACE
|
||||
carla-lilv_serd
|
||||
carla-lilv_sord
|
||||
carla-lilv_sratom
|
||||
carla-lilv_lilv
|
||||
${CARLA_LIBDL}
|
||||
${CARLA_LIBM}
|
||||
${CARLA_LIBRT}
|
||||
)
|
||||
|
||||
#######################################################################################################################
|
||||
# rtmempool
|
||||
|
||||
add_library(carla-rtmempool STATIC)
|
||||
add_library(carla::rtmempool ALIAS carla-rtmempool)
|
||||
|
||||
set_target_properties(carla-rtmempool
|
||||
PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64;arm64"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_include_directories(carla-rtmempool
|
||||
PRIVATE
|
||||
../source/includes
|
||||
../source/utils
|
||||
)
|
||||
|
||||
target_link_libraries(carla-rtmempool
|
||||
PRIVATE
|
||||
${CARLA_LIBDL}
|
||||
${CARLA_LIBRT}
|
||||
)
|
||||
|
||||
target_sources(carla-rtmempool
|
||||
PRIVATE
|
||||
../source/modules/rtmempool/rtmempool.c
|
||||
)
|
||||
|
||||
#######################################################################################################################
|
||||
# water
|
||||
|
||||
add_library(carla-water STATIC)
|
||||
add_library(carla::water ALIAS carla-water)
|
||||
|
||||
set_target_properties(carla-water
|
||||
PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64;arm64"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_compile_options(carla-water
|
||||
PRIVATE
|
||||
$<$<BOOL:${MSVC}>:/wd4267>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-deprecated-copy>
|
||||
)
|
||||
|
||||
target_include_directories(carla-water
|
||||
PRIVATE
|
||||
../source/includes
|
||||
../source/utils
|
||||
)
|
||||
|
||||
# find_library(APPKIT AppKit)
|
||||
# "uuid"
|
||||
# "wsock32"
|
||||
# "wininet"
|
||||
# "version"
|
||||
# "ole32"
|
||||
# "ws2_32"
|
||||
# "oleaut32"
|
||||
# "imm32"
|
||||
# "comdlg32"
|
||||
# "shlwapi"
|
||||
# "rpcrt4"
|
||||
# "winmm")
|
||||
target_link_libraries(carla-water
|
||||
PRIVATE
|
||||
$<$<BOOL:${APPLE}>:${APPKIT}>
|
||||
$<$<BOOL:${WIN32}>:comdlg32 ole32 winmm>
|
||||
${CARLA_LIBDL}
|
||||
${CARLA_LIBRT}
|
||||
)
|
||||
|
||||
target_sources(carla-water
|
||||
PRIVATE
|
||||
../source/modules/water/water.${CARLA_OBJCPP_EXT}
|
||||
)
|
||||
|
||||
#######################################################################################################################
|
||||
# water-files
|
||||
|
||||
add_library(carla-water-files STATIC)
|
||||
add_library(carla::water-files ALIAS carla-water-files)
|
||||
|
||||
set_target_properties(carla-water-files
|
||||
PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64;arm64"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_compile_options(carla-water-files
|
||||
PRIVATE
|
||||
$<$<BOOL:${MSVC}>:/wd4267>
|
||||
$<$<NOT:$<BOOL:${MSVC}>>:-Wno-deprecated-copy>
|
||||
)
|
||||
|
||||
target_include_directories(carla-water-files
|
||||
PRIVATE
|
||||
../source/includes
|
||||
../source/utils
|
||||
)
|
||||
|
||||
target_link_libraries(carla-water-files
|
||||
PRIVATE
|
||||
$<$<BOOL:${APPLE}>:${APPKIT}>
|
||||
$<$<BOOL:${WIN32}>:ole32 winmm>
|
||||
${CARLA_LIBDL}
|
||||
)
|
||||
|
||||
target_sources(carla-water-files
|
||||
PRIVATE
|
||||
../source/modules/water/water.files.${CARLA_OBJCPP_EXT}
|
||||
)
|
||||
|
||||
#######################################################################################################################
|
||||
# carla bridge
|
||||
|
||||
add_executable(carla-bridge-native)
|
||||
|
||||
set_target_properties(carla-bridge-native
|
||||
PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64;arm64"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_compile_definitions(carla-bridge-native
|
||||
PRIVATE
|
||||
BUILDING_CARLA
|
||||
BUILD_BRIDGE
|
||||
BUILD_BRIDGE_ALTERNATIVE_ARCH
|
||||
CARLA_LIB_EXT="${CMAKE_SHARED_LIBRARY_SUFFIX}"
|
||||
$<$<BOOL:${X11_FOUND}>:HAVE_X11>
|
||||
)
|
||||
|
||||
target_compile_options(carla-bridge-native
|
||||
PRIVATE
|
||||
$<$<BOOL:${MSVC}>:/wd4244 /wd4267 /wd4273>
|
||||
${X11_CFLAGS}
|
||||
)
|
||||
|
||||
target_include_directories(carla-bridge-native
|
||||
PRIVATE
|
||||
../source
|
||||
../source/backend
|
||||
../source/backend/engine
|
||||
../source/backend/plugin
|
||||
../source/includes
|
||||
../source/modules
|
||||
../source/utils
|
||||
${X11_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_link_libraries(carla-bridge-native
|
||||
PRIVATE
|
||||
carla-jackbridge
|
||||
carla-lilv
|
||||
carla-rtmempool
|
||||
carla-water
|
||||
${X11_LIBRARIES}
|
||||
)
|
||||
|
||||
target_sources(carla-bridge-native
|
||||
PRIVATE
|
||||
../source/bridges-plugin/CarlaBridgePlugin.${CARLA_OBJCPP_EXT}
|
||||
../source/backend/CarlaStandalone.${CARLA_OBJCPP_EXT}
|
||||
../source/backend/engine/CarlaEngine.cpp
|
||||
../source/backend/engine/CarlaEngineBridge.cpp
|
||||
../source/backend/engine/CarlaEngineClient.cpp
|
||||
../source/backend/engine/CarlaEngineData.cpp
|
||||
../source/backend/engine/CarlaEngineInternal.cpp
|
||||
../source/backend/engine/CarlaEnginePorts.cpp
|
||||
../source/backend/engine/CarlaEngineRunner.cpp
|
||||
../source/backend/plugin/CarlaPlugin.cpp
|
||||
../source/backend/plugin/CarlaPluginBridge.cpp
|
||||
../source/backend/plugin/CarlaPluginJuce.cpp
|
||||
../source/backend/plugin/CarlaPluginInternal.cpp
|
||||
../source/backend/plugin/CarlaPluginAU.cpp
|
||||
../source/backend/plugin/CarlaPluginCLAP.${CARLA_OBJCPP_EXT}
|
||||
../source/backend/plugin/CarlaPluginLADSPADSSI.cpp
|
||||
../source/backend/plugin/CarlaPluginLV2.cpp
|
||||
../source/backend/plugin/CarlaPluginVST2.${CARLA_OBJCPP_EXT}
|
||||
../source/backend/plugin/CarlaPluginVST3.${CARLA_OBJCPP_EXT}
|
||||
)
|
||||
|
||||
#######################################################################################################################
|
||||
# carla discovery
|
||||
|
||||
add_executable(carla-discovery-native)
|
||||
|
||||
set_target_properties(carla-discovery-native
|
||||
PROPERTIES
|
||||
OSX_ARCHITECTURES "x86_64;arm64"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
|
||||
target_compile_definitions(carla-discovery-native
|
||||
PRIVATE
|
||||
BUILDING_CARLA
|
||||
)
|
||||
|
||||
target_compile_options(carla-discovery-native
|
||||
PRIVATE
|
||||
$<$<BOOL:${MSVC}>:/wd4244 /wd4267 /wd4273>
|
||||
)
|
||||
|
||||
target_include_directories(carla-discovery-native
|
||||
PRIVATE
|
||||
../source/backend
|
||||
../source/includes
|
||||
../source/modules
|
||||
../source/utils
|
||||
)
|
||||
|
||||
target_link_libraries(carla-discovery-native
|
||||
PRIVATE
|
||||
carla-lilv
|
||||
carla-water-files
|
||||
)
|
||||
|
||||
target_sources(carla-discovery-native
|
||||
PRIVATE
|
||||
../source/discovery/carla-discovery.${CARLA_OBJCPP_EXT}
|
||||
)
|
||||
|
||||
#######################################################################################################################
|
||||
# carla utils
|
||||
|
||||
add_library(carla-utils SHARED)
|
||||
add_library(carla::utils ALIAS carla-utils)
|
||||
|
||||
target_include_directories(carla-utils
|
||||
PRIVATE
|
||||
../source/backend
|
||||
../source/includes
|
||||
../source/modules
|
||||
../source/utils
|
||||
)
|
||||
|
||||
target_link_libraries(carla-utils
|
||||
PRIVATE
|
||||
carla-lilv
|
||||
carla-water
|
||||
)
|
||||
|
||||
target_sources(carla-utils
|
||||
PRIVATE
|
||||
../source/backend/utils/CachedPlugins.cpp
|
||||
../source/backend/utils/Information.cpp
|
||||
../source/backend/utils/JUCE.cpp
|
||||
../source/backend/utils/PipeClient.cpp
|
||||
../source/backend/utils/PluginDiscovery.cpp
|
||||
../source/backend/utils/System.cpp
|
||||
#../source/backend/utils/Windows.cpp
|
||||
)
|
||||
|
||||
#######################################################################################################################
|
Loading…
Reference in New Issue