123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- cmake_minimum_required(VERSION 3.2)
- project(obs-plugintemplate)
- set(CMAKE_PREFIX_PATH "${QTDIR}")
- set(CMAKE_INCLUDE_CURRENT_DIR ON)
- set(CMAKE_AUTOMOC ON)
- set(CMAKE_AUTOUIC ON)
- if (WIN32 OR APPLE)
- include(external/FindLibObs.cmake)
- endif()
- find_package(LibObs REQUIRED)
- find_package(Qt5Core REQUIRED)
- find_package(Qt5Widgets REQUIRED)
- set(PLUGIN_SOURCES
- src/plugin-main.c)
- set(PLUGIN_HEADERS
- src/plugin-macros.h)
- # --- Platform-independent build settings ---
- add_library(obs-plugintemplate MODULE
- ${PLUGIN_SOURCES}
- ${PLUGIN_HEADERS})
- include_directories(
- "${LIBOBS_INCLUDE_DIR}/../UI/obs-frontend-api"
- ${Qt5Core_INCLUDES}
- ${Qt5Widgets_INCLUDES})
- target_link_libraries(obs-plugintemplate
- libobs
- Qt5::Core
- Qt5::Widgets)
- # --- End of section ---
- # --- Windows-specific build settings and tasks ---
- if(WIN32)
- if(NOT DEFINED OBS_FRONTEND_LIB)
- set(OBS_FRONTEND_LIB "OBS_FRONTEND_LIB-NOTFOUND" CACHE FILEPATH "OBS frontend library")
- message(FATAL_ERROR "Could not find OBS Frontend API\'s library !")
- endif()
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(ARCH_NAME "64bit")
- set(OBS_BUILDDIR_ARCH "build64")
- else()
- set(ARCH_NAME "32bit")
- set(OBS_BUILDDIR_ARCH "build32")
- endif()
- include_directories(
- "${LIBOBS_INCLUDE_DIR}/../${OBS_BUILDDIR_ARCH}/UI"
- )
- target_link_libraries(obs-plugintemplate
- "${OBS_FRONTEND_LIB}")
- # --- Release package helper ---
- # The "release" folder has a structure similar OBS' one on Windows
- set(RELEASE_DIR "${PROJECT_SOURCE_DIR}/release")
- add_custom_command(TARGET obs-plugintemplate POST_BUILD
- COMMAND if $<CONFIG:Release>==1 (
- "${CMAKE_COMMAND}" -E make_directory
- "${RELEASE_DIR}/data/obs-plugins/${CMAKE_PROJECT_NAME}"
- "${RELEASE_DIR}/obs-plugins/${ARCH_NAME}")
- COMMAND if $<CONFIG:Release>==1 ("${CMAKE_COMMAND}" -E copy_directory
- "${PROJECT_SOURCE_DIR}/data"
- "${RELEASE_DIR}/data/obs-plugins/${CMAKE_PROJECT_NAME}")
- COMMAND if $<CONFIG:Release>==1 ("${CMAKE_COMMAND}" -E copy
- "$<TARGET_FILE:${CMAKE_PROJECT_NAME}>"
- "${RELEASE_DIR}/obs-plugins/${ARCH_NAME}")
- # Copy to obs-studio dev environment for immediate testing
- COMMAND if $<CONFIG:Debug>==1 (
- "${CMAKE_COMMAND}" -E copy
- "$<TARGET_FILE:${CMAKE_PROJECT_NAME}>"
- "${LIBOBS_INCLUDE_DIR}/../${OBS_BUILDDIR_ARCH}/rundir/$<CONFIG>/obs-plugins/${ARCH_NAME}")
- COMMAND if $<CONFIG:Debug>==1 (
- "${CMAKE_COMMAND}" -E make_directory
- "${LIBOBS_INCLUDE_DIR}/../${OBS_BUILDDIR_ARCH}/rundir/$<CONFIG>/data/obs-plugins/${CMAKE_PROJECT_NAME}")
- COMMAND if $<CONFIG:Debug>==1 (
- "${CMAKE_COMMAND}" -E copy_directory
- "${PROJECT_SOURCE_DIR}/data"
- "${LIBOBS_INCLUDE_DIR}/../${OBS_BUILDDIR_ARCH}/rundir/$<CONFIG>/data/obs-plugins/${CMAKE_PROJECT_NAME}")
- )
- # --- End of sub-section ---
- endif()
- # --- End of section ---
- # --- Linux-specific build settings and tasks ---
- if(UNIX AND NOT APPLE)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
- set_target_properties(obs-plugintemplate PROPERTIES PREFIX "")
- target_link_libraries(obs-plugintemplate
- obs-frontend-api)
- file(GLOB locale_files data/locale/*.ini)
- install(TARGETS obs-plugintemplate
- LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/obs-plugins")
- install(FILES ${locale_files}
- DESTINATION "${CMAKE_INSTALL_PREFIX}/share/obs/obs-plugins/${CMAKE_PROJECT_NAME}/locale")
- endif()
- # --- End of section ---
- # -- OS X specific build settings and tasks --
- if(APPLE)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -fvisibility=default")
- set_target_properties(obs-plugintemplate PROPERTIES PREFIX "")
- target_link_libraries(obs-plugintemplate "${OBS_FRONTEND_LIB}")
- endif()
- # -- End of section --
|