diff --git a/CMakeLists.txt b/CMakeLists.txt index 240e0c5..175695b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,42 +11,45 @@ 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 $<$:-Wno-quoted-include-in-framework-header -Wno-comma> ) set_target_properties( - ${CMAKE_PROJECT_NAME} + obs-moq PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON ) endif() @@ -54,14 +57,24 @@ 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() diff --git a/CMakePresets.json b/CMakePresets.json index 59e6c67..af49534 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -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" }