CMakeLists.txt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. cmake_minimum_required(VERSION 3.16...3.26)
  2. include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/common/bootstrap.cmake" NO_POLICY_SCOPE)
  3. project(${_name} VERSION ${_version})
  4. option(ENABLE_FRONTEND_API "Use obs-frontend-api for UI functionality" OFF)
  5. option(ENABLE_QT "Use Qt functionality" OFF)
  6. include(compilerconfig)
  7. include(defaults)
  8. include(helpers)
  9. add_library(${CMAKE_PROJECT_NAME} MODULE)
  10. find_package(libobs REQUIRED)
  11. target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE OBS::libobs)
  12. if(ENABLE_FRONTEND_API)
  13. find_package(obs-frontend-api REQUIRED)
  14. target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE OBS::obs-frontend-api)
  15. endif()
  16. if(ENABLE_QT)
  17. find_package(Qt6 COMPONENTS Widgets Core)
  18. target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets)
  19. target_compile_options(
  20. ${CMAKE_PROJECT_NAME} PRIVATE $<$<C_COMPILER_ID:Clang,AppleClang>:-Wno-quoted-include-in-framework-header
  21. -Wno-comma>)
  22. set_target_properties(
  23. ${CMAKE_PROJECT_NAME}
  24. PROPERTIES AUTOMOC ON
  25. AUTOUIC ON
  26. AUTORCC ON)
  27. endif()
  28. target_sources(${CMAKE_PROJECT_NAME} PRIVATE src/plugin-main.c)
  29. set_target_properties_plugin(${CMAKE_PROJECT_NAME} PROPERTIES OUTPUT_NAME ${_name})