Skip to content

Commit dafe3b2

Browse files
authored
Edit CMake config to reuse it into moqbs (#23)
* chore: Edit CMake config to reuse it into moqbs * chore: CMakeLists refactor & format
1 parent ec55ce3 commit dafe3b2

2 files changed

Lines changed: 31 additions & 17 deletions

File tree

CMakeLists.txt

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,57 +11,70 @@ include(compilerconfig)
1111
include(defaults)
1212
include(helpers)
1313

14-
add_library(${CMAKE_PROJECT_NAME} MODULE)
14+
add_library(obs-moq MODULE)
1515

16-
find_package(libobs REQUIRED)
17-
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE OBS::libobs)
16+
if(NOT BUILD_PLUGIN)
17+
find_package(libobs REQUIRED)
18+
endif()
19+
target_link_libraries(obs-moq PRIVATE OBS::libobs)
1820

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

2123
if(MOQ_LOCAL)
2224
add_subdirectory(${MOQ_LOCAL}/rs/libmoq moq)
23-
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE moq)
25+
target_link_libraries(obs-moq PRIVATE moq)
2426
else()
2527
include(FetchContent)
2628
FetchContent_Declare(
2729
moq
28-
URL https://github.com/moq-dev/moq/releases/download/libmoq-v${MOQ_VERSION}/moq-${MOQ_VERSION}-${MOQ_TARGET}.${MOQ_ARCHIVE}
30+
URL
31+
https://github.com/moq-dev/moq/releases/download/libmoq-v${MOQ_VERSION}/moq-${MOQ_VERSION}-${MOQ_TARGET}.${MOQ_ARCHIVE}
2932
)
3033
FetchContent_MakeAvailable(moq)
3134

3235
find_package(moq REQUIRED PATHS ${moq_SOURCE_DIR} NO_DEFAULT_PATH)
33-
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE moq::moq)
36+
target_link_libraries(obs-moq PRIVATE moq::moq)
3437
endif()
3538

3639
if(ENABLE_FRONTEND_API)
3740
find_package(obs-frontend-api REQUIRED)
38-
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE OBS::obs-frontend-api)
41+
target_link_libraries(obs-moq PRIVATE OBS::obs-frontend-api)
3942
endif()
4043

4144
if(ENABLE_QT)
4245
find_package(Qt6 COMPONENTS Widgets Core)
43-
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets)
46+
target_link_libraries(obs-moq PRIVATE Qt6::Core Qt6::Widgets)
4447
target_compile_options(
45-
${CMAKE_PROJECT_NAME}
48+
obs-moq
4649
PRIVATE $<$<C_COMPILER_ID:Clang,AppleClang>:-Wno-quoted-include-in-framework-header -Wno-comma>
4750
)
4851
set_target_properties(
49-
${CMAKE_PROJECT_NAME}
52+
obs-moq
5053
PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON
5154
)
5255
endif()
5356

5457
# FFmpeg dependency
5558
include(FindPkgConfig)
5659
pkg_check_modules(FFMPEG REQUIRED libavcodec libavutil libswscale libswresample)
57-
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${FFMPEG_INCLUDE_DIRS})
58-
target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE ${FFMPEG_LIBRARY_DIRS})
59-
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${FFMPEG_LIBRARIES})
60+
target_include_directories(obs-moq PRIVATE ${FFMPEG_INCLUDE_DIRS})
61+
target_link_directories(obs-moq PRIVATE ${FFMPEG_LIBRARY_DIRS})
62+
target_link_libraries(obs-moq PRIVATE ${FFMPEG_LIBRARIES})
6063

6164
target_sources(
62-
${CMAKE_PROJECT_NAME}
63-
PRIVATE src/obs-moq.cpp src/moq-output.h src/moq-service.h src/moq-output.cpp src/moq-service.cpp
64-
src/moq-source.cpp src/moq-source.h
65+
obs-moq
66+
PRIVATE
67+
src/obs-moq.cpp
68+
src/moq-output.h
69+
src/moq-service.h
70+
src/moq-output.cpp
71+
src/moq-service.cpp
72+
src/moq-source.cpp
73+
src/moq-source.h
6574
)
6675

67-
set_target_properties_plugin(${CMAKE_PROJECT_NAME} PROPERTIES OUTPUT_NAME ${_name})
76+
if(BUILD_PLUGIN)
77+
set_target_properties_plugin(obs-moq PROPERTIES OUTPUT_NAME ${_name})
78+
else()
79+
set_target_properties_obs(obs-moq PROPERTIES FOLDER plugins PREFIX "")
80+
endif()

CMakePresets.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"ENABLE_FRONTEND_API": false,
1414
"ENABLE_QT": false,
1515
"CMAKE_EXPORT_COMPILE_COMMANDS": true,
16+
"BUILD_PLUGIN": true,
1617
"MOQ_VERSION": "0.2.4",
1718
"MOQ_ARCHIVE": "tar.gz"
1819
}

0 commit comments

Comments
 (0)