mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-08-30 17:58:37 +08:00
aja: Add shared interface library for plugin and frontend-plugin
This commit is contained in:
+48
-33
@@ -14,53 +14,68 @@ find_package(LibAJANTV2 REQUIRED)
|
||||
add_library(aja MODULE)
|
||||
add_library(OBS::aja ALIAS aja)
|
||||
|
||||
add_library(aja-support OBJECT)
|
||||
add_library(OBS::aja-support ALIAS aja-support)
|
||||
|
||||
target_sources(
|
||||
aja
|
||||
PRIVATE main.cpp
|
||||
aja-support
|
||||
PRIVATE # cmake-format: sortable
|
||||
aja-card-manager.cpp
|
||||
aja-common.cpp
|
||||
aja-common.hpp
|
||||
aja-output.cpp
|
||||
aja-enums.hpp
|
||||
aja-output.hpp
|
||||
aja-presets.cpp
|
||||
aja-presets.hpp
|
||||
aja-props.cpp
|
||||
aja-props.hpp
|
||||
aja-routing.cpp
|
||||
aja-routing.hpp
|
||||
aja-vpid-data.cpp
|
||||
aja-widget-io.cpp
|
||||
PUBLIC # cmake-format: sortable
|
||||
aja-card-manager.hpp
|
||||
aja-common.hpp
|
||||
aja-enums.hpp
|
||||
aja-presets.hpp
|
||||
aja-props.hpp
|
||||
aja-routing.hpp
|
||||
aja-ui-props.hpp
|
||||
aja-vpid-data.hpp
|
||||
aja-widget-io.hpp)
|
||||
|
||||
target_link_libraries(aja-support PUBLIC OBS::libobs AJA::LibAJANTV2)
|
||||
|
||||
set_target_properties(aja-support PROPERTIES FOLDER plugins/aja POSITION_INDEPENDENT_CODE TRUE)
|
||||
|
||||
target_sources(
|
||||
aja
|
||||
PRIVATE # cmake-format: sortable
|
||||
aja-output.cpp
|
||||
aja-output.hpp
|
||||
aja-source.cpp
|
||||
aja-source.hpp
|
||||
aja-vpid-data.cpp
|
||||
aja-vpid-data.hpp
|
||||
aja-widget-io.cpp
|
||||
aja-widget-io.hpp
|
||||
aja-card-manager.hpp
|
||||
aja-ui-props.hpp
|
||||
audio-repack.c
|
||||
audio-repack.h
|
||||
audio-repack.hpp)
|
||||
audio-repack.hpp
|
||||
main.cpp)
|
||||
|
||||
target_link_libraries(aja PRIVATE OBS::libobs AJA::LibAJANTV2)
|
||||
target_compile_options(aja-support PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-deprecated-declarations>)
|
||||
|
||||
target_link_libraries(
|
||||
aja
|
||||
PRIVATE OBS::aja-support
|
||||
$<$<PLATFORM_ID:Windows>:netapi32.lib>
|
||||
$<$<PLATFORM_ID:Windows>:setupapi.lib>
|
||||
$<$<PLATFORM_ID:Windows>:shlwapi.lib>
|
||||
$<$<PLATFORM_ID:Windows>:winmm.lib>
|
||||
$<$<PLATFORM_ID:Windows>:ws2_32.lib>
|
||||
"$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>>"
|
||||
"$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,CoreFoundation.framework>>"
|
||||
"$<$<PLATFORM_ID:Darwin>:$<LINK_LIBRARY:FRAMEWORK,IOKit.framework>>")
|
||||
|
||||
target_link_options(aja PRIVATE $<$<PLATFORM_ID:Windows>:/IGNORE:4099>)
|
||||
|
||||
if(OS_WINDOWS)
|
||||
configure_file(cmake/windows/obs-module.rc.in win-aja.rc)
|
||||
target_sources(aja PRIVATE win-aja.rc)
|
||||
|
||||
target_compile_options(aja PRIVATE /wd4996)
|
||||
|
||||
target_link_libraries(aja PRIVATE ws2_32.lib setupapi.lib Winmm.lib netapi32.lib Shlwapi.lib)
|
||||
target_link_options(aja PRIVATE /IGNORE:4099)
|
||||
|
||||
elseif(OS_MACOS)
|
||||
find_library(IOKIT IOKit)
|
||||
find_library(COREFOUNDATION CoreFoundation)
|
||||
find_library(APPKIT AppKit)
|
||||
|
||||
target_link_libraries(aja PRIVATE ${IOKIT} ${COREFOUNDATION} ${APPKIT})
|
||||
target_compile_options(aja PRIVATE -Wno-deprecated-declarations -Wno-shorten-64-to-32)
|
||||
elseif(OS_LINUX OR OS_FREEBSD)
|
||||
target_compile_options(aja PRIVATE -Wno-deprecated-declarations)
|
||||
set_property(TARGET aja PROPERTY COMPILE_WARNING_AS_ERROR FALSE)
|
||||
endif()
|
||||
|
||||
set_target_properties_obs(aja PROPERTIES FOLDER plugins PREFIX "")
|
||||
# cmake-format: off
|
||||
set_target_properties_obs(aja PROPERTIES FOLDER plugins/aja PREFIX "")
|
||||
# cmake-format: on
|
||||
|
||||
Reference in New Issue
Block a user