117 lines
3.6 KiB
CMake
117 lines
3.6 KiB
CMake
project(frontend-tools)
|
|
|
|
add_library(frontend-tools MODULE)
|
|
add_library(OBS::frontend-tools ALIAS frontend-tools)
|
|
|
|
find_qt(COMPONENTS Widgets COMPONENTS_LINUX Gui)
|
|
|
|
set_target_properties(
|
|
frontend-tools
|
|
PROPERTIES AUTOMOC ON
|
|
AUTOUIC ON
|
|
AUTORCC ON
|
|
AUTOUIC_SEARCH_PATHS "forms")
|
|
|
|
target_sources(
|
|
frontend-tools PRIVATE forms/auto-scene-switcher.ui forms/captions.ui
|
|
forms/output-timer.ui forms/scripts.ui)
|
|
|
|
target_sources(
|
|
frontend-tools
|
|
PRIVATE frontend-tools.c
|
|
auto-scene-switcher.hpp
|
|
auto-scene-switcher.cpp
|
|
output-timer.hpp
|
|
tool-helpers.hpp
|
|
output-timer.cpp
|
|
${CMAKE_SOURCE_DIR}/UI/double-slider.cpp
|
|
${CMAKE_SOURCE_DIR}/UI/double-slider.hpp
|
|
${CMAKE_SOURCE_DIR}/UI/horizontal-scroll-area.cpp
|
|
${CMAKE_SOURCE_DIR}/UI/horizontal-scroll-area.hpp
|
|
${CMAKE_SOURCE_DIR}/UI/properties-view.cpp
|
|
${CMAKE_SOURCE_DIR}/UI/properties-view.hpp
|
|
${CMAKE_SOURCE_DIR}/UI/properties-view.moc.hpp
|
|
${CMAKE_SOURCE_DIR}/UI/qt-wrappers.cpp
|
|
${CMAKE_SOURCE_DIR}/UI/qt-wrappers.hpp
|
|
${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.cpp
|
|
${CMAKE_SOURCE_DIR}/UI/spinbox-ignorewheel.hpp
|
|
${CMAKE_SOURCE_DIR}/UI/slider-ignorewheel.cpp
|
|
${CMAKE_SOURCE_DIR}/UI/slider-ignorewheel.hpp
|
|
${CMAKE_SOURCE_DIR}/UI/vertical-scroll-area.hpp
|
|
${CMAKE_SOURCE_DIR}/UI/vertical-scroll-area.cpp)
|
|
|
|
target_compile_features(frontend-tools PRIVATE cxx_std_17)
|
|
|
|
target_link_libraries(frontend-tools PRIVATE OBS::frontend-api OBS::libobs
|
|
Qt::Widgets)
|
|
|
|
if(OS_POSIX AND NOT OS_MACOS)
|
|
target_link_libraries(frontend-tools PRIVATE Qt::GuiPrivate)
|
|
endif()
|
|
|
|
if(ENABLE_SCRIPTING AND TARGET OBS::scripting)
|
|
target_compile_definitions(frontend-tools PRIVATE ENABLE_SCRIPTING)
|
|
|
|
target_sources(frontend-tools PRIVATE scripts.cpp scripts.hpp)
|
|
|
|
target_link_libraries(frontend-tools PRIVATE OBS::scripting)
|
|
|
|
if(TARGET obslua)
|
|
target_compile_definitions(frontend-tools PRIVATE LUAJIT_FOUND)
|
|
endif()
|
|
|
|
if(TARGET obspython)
|
|
target_compile_definitions(frontend-tools PRIVATE Python_FOUND)
|
|
endif()
|
|
endif()
|
|
|
|
set_target_properties(frontend-tools PROPERTIES FOLDER "frontend" PREFIX "")
|
|
|
|
if(OS_WINDOWS)
|
|
set(MODULE_DESCRIPTION "OBS Frontend Tools")
|
|
configure_file(${CMAKE_SOURCE_DIR}/cmake/bundle/windows/obs-module.rc.in
|
|
frontend-tools.rc)
|
|
|
|
target_sources(
|
|
frontend-tools
|
|
PRIVATE auto-scene-switcher-win.cpp
|
|
frontend-tools.rc
|
|
captions.cpp
|
|
captions.hpp
|
|
captions-handler.cpp
|
|
captions-handler.hpp
|
|
captions-mssapi.cpp
|
|
captions-mssapi.hpp
|
|
captions-mssapi-stream.cpp
|
|
captions-mssapi-stream.hpp)
|
|
|
|
elseif(OS_MACOS)
|
|
find_library(COCOA Cocoa)
|
|
mark_as_advanced(COCOA)
|
|
target_link_libraries(frontend-tools PRIVATE ${COCOA})
|
|
|
|
target_sources(frontend-tools PRIVATE auto-scene-switcher-osx.mm)
|
|
set_source_files_properties(auto-scene-switcher-osx.mm
|
|
PROPERTIES COMPILE_FLAGS -fobjc-arc)
|
|
|
|
elseif(OS_POSIX)
|
|
find_package(X11 REQUIRED)
|
|
|
|
target_link_libraries(frontend-tools PRIVATE X11::X11)
|
|
|
|
target_sources(frontend-tools PRIVATE auto-scene-switcher-nix.cpp)
|
|
endif()
|
|
|
|
get_target_property(_SOURCES frontend-tools SOURCES)
|
|
set(_UI ${_SOURCES})
|
|
list(FILTER _UI INCLUDE REGEX ".*\\.ui?")
|
|
|
|
source_group(
|
|
TREE "${CMAKE_CURRENT_SOURCE_DIR}/forms"
|
|
PREFIX "UI Files"
|
|
FILES ${_UI})
|
|
unset(_SOURCES)
|
|
unset(_UI)
|
|
|
|
setup_plugin_target(frontend-tools)
|