72 lines
2.3 KiB
CMake
72 lines
2.3 KiB
CMake
project(char-rtc-obs)
|
|
|
|
find_package(Corrosion QUIET)
|
|
if(NOT Corrosion_FOUND)
|
|
include(FetchContent)
|
|
FetchContent_Declare(
|
|
Corrosion
|
|
GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git
|
|
GIT_TAG v0.3.1)
|
|
FetchContent_MakeAvailable(Corrosion)
|
|
endif()
|
|
|
|
set(CHAR_RTC_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
|
|
|
|
corrosion_import_crate(MANIFEST_PATH rtc-backend/Cargo.toml)
|
|
corrosion_set_env_vars(
|
|
char-rtc-backend "CHAR_RTC_GENERATED_DIR=${CHAR_RTC_GENERATED_DIR}"
|
|
"CHAR_RTC_OBS_VERSION=${OBS_VERSION_CANONICAL}")
|
|
|
|
# Force dependent crates to link against the correct deployment target
|
|
if(OS_MACOS)
|
|
corrosion_set_env_vars(
|
|
char-rtc-backend
|
|
"CFLAGS_aarch64_apple_darwin=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}"
|
|
"CFLAGS_x86_64_apple_darwin=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}"
|
|
)
|
|
corrosion_add_target_rustflags(
|
|
char-rtc-backend
|
|
-Clink-arg=-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET})
|
|
endif()
|
|
|
|
set(CMAKE_PREFIX_PATH "${QTDIR}")
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
find_qt(COMPONENTS Core Widgets Gui)
|
|
|
|
add_library(char-rtc-obs MODULE)
|
|
|
|
target_sources(char-rtc-obs PRIVATE
|
|
char-rtc.c
|
|
whip-service.c whip-service.h
|
|
whip-output.c whip-output.h
|
|
whip-setup.cpp whip-setup.h
|
|
"${CHAR_RTC_GENERATED_DIR}/bindings.h"
|
|
)
|
|
set_source_files_properties("${CHAR_RTC_GENERATED_DIR}/bindings.h"
|
|
PROPERTIES GENERATED TRUE)
|
|
|
|
target_link_libraries(char-rtc-obs char-rtc-backend
|
|
OBS::libobs OBS::frontend-api
|
|
Qt::Core Qt::Widgets Qt::Gui)
|
|
target_include_directories(char-rtc-obs PRIVATE ${CHAR_RTC_GENERATED_DIR} ${Qt5Core_INCLUDES} ${Qt5Widgets_INCLUDES} ${Qt5Gui_INCLUDES})
|
|
|
|
if(OS_WINDOWS)
|
|
set(MODULE_DESCRIPTION "live.umm.gay module")
|
|
configure_file("${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in"
|
|
char-rtc-obs.rc)
|
|
target_sources(char-rtc-obs PRIVATE char-rtc-obs.rc)
|
|
endif()
|
|
|
|
if(OS_MACOS)
|
|
find_library(COREFOUNDATION CoreFoundation)
|
|
find_library(SECURITY_FRAMEWORK Security)
|
|
find_library(SYSTEMCONFIGURATION SystemConfiguration)
|
|
mark_as_advanced(COREFOUNDATION SECURITY_FRAMEWOR SYSTEMCONFIGURATION)
|
|
target_link_libraries(char-rtc-obs ${COREFOUNDATION} ${SECURITY_FRAMEWORK}
|
|
${SYSTEMCONFIGURATION})
|
|
endif()
|
|
|
|
set_target_properties(char-rtc-obs PROPERTIES FOLDER "plugins")
|
|
|
|
setup_plugin_target(char-rtc-obs data)
|