Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 30 additions & 17 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,57 +11,70 @@ include(compilerconfig)
include(defaults)
include(helpers)

add_library(${CMAKE_PROJECT_NAME} MODULE)
add_library(obs-moq MODULE)

find_package(libobs REQUIRED)
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE OBS::libobs)
if(NOT BUILD_PLUGIN)
find_package(libobs REQUIRED)
endif()
target_link_libraries(obs-moq PRIVATE OBS::libobs)

option(MOQ_LOCAL "Path to moq repo for local development" "")

if(MOQ_LOCAL)
add_subdirectory(${MOQ_LOCAL}/rs/libmoq moq)
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE moq)
target_link_libraries(obs-moq PRIVATE moq)
else()
include(FetchContent)
FetchContent_Declare(
moq
URL https://github.com/moq-dev/moq/releases/download/libmoq-v${MOQ_VERSION}/moq-${MOQ_VERSION}-${MOQ_TARGET}.${MOQ_ARCHIVE}
URL
https://github.com/moq-dev/moq/releases/download/libmoq-v${MOQ_VERSION}/moq-${MOQ_VERSION}-${MOQ_TARGET}.${MOQ_ARCHIVE}
)
FetchContent_MakeAvailable(moq)

find_package(moq REQUIRED PATHS ${moq_SOURCE_DIR} NO_DEFAULT_PATH)
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE moq::moq)
target_link_libraries(obs-moq PRIVATE moq::moq)
endif()

if(ENABLE_FRONTEND_API)
find_package(obs-frontend-api REQUIRED)
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE OBS::obs-frontend-api)
target_link_libraries(obs-moq PRIVATE OBS::obs-frontend-api)
endif()

if(ENABLE_QT)
find_package(Qt6 COMPONENTS Widgets Core)
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets)
target_link_libraries(obs-moq PRIVATE Qt6::Core Qt6::Widgets)
target_compile_options(
${CMAKE_PROJECT_NAME}
obs-moq
PRIVATE $<$<C_COMPILER_ID:Clang,AppleClang>:-Wno-quoted-include-in-framework-header -Wno-comma>
)
set_target_properties(
${CMAKE_PROJECT_NAME}
obs-moq
PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON
)
endif()

# FFmpeg dependency
include(FindPkgConfig)
pkg_check_modules(FFMPEG REQUIRED libavcodec libavutil libswscale libswresample)
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${FFMPEG_INCLUDE_DIRS})
target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE ${FFMPEG_LIBRARY_DIRS})
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${FFMPEG_LIBRARIES})
target_include_directories(obs-moq PRIVATE ${FFMPEG_INCLUDE_DIRS})
target_link_directories(obs-moq PRIVATE ${FFMPEG_LIBRARY_DIRS})
target_link_libraries(obs-moq PRIVATE ${FFMPEG_LIBRARIES})

target_sources(
${CMAKE_PROJECT_NAME}
PRIVATE src/obs-moq.cpp src/moq-output.h src/moq-service.h src/moq-output.cpp src/moq-service.cpp
src/moq-source.cpp src/moq-source.h
obs-moq
PRIVATE
src/obs-moq.cpp
src/moq-output.h
src/moq-service.h
src/moq-output.cpp
src/moq-service.cpp
src/moq-source.cpp
src/moq-source.h
)

set_target_properties_plugin(${CMAKE_PROJECT_NAME} PROPERTIES OUTPUT_NAME ${_name})
if(BUILD_PLUGIN)
set_target_properties_plugin(obs-moq PROPERTIES OUTPUT_NAME ${_name})
else()
set_target_properties_obs(obs-moq PROPERTIES FOLDER plugins PREFIX "")
endif()
1 change: 1 addition & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"ENABLE_FRONTEND_API": false,
"ENABLE_QT": false,
"CMAKE_EXPORT_COMPILE_COMMANDS": true,
"BUILD_PLUGIN": true,
"MOQ_VERSION": "0.2.4",
"MOQ_ARCHIVE": "tar.gz"
}
Expand Down
Loading