mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-07 03:53:38 +00:00
53 lines
2.1 KiB
CMake
53 lines
2.1 KiB
CMake
# OBS CMake bootstrap module
|
|
|
|
include_guard(GLOBAL)
|
|
|
|
# Map fallback configurations for optimized build configurations
|
|
set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO RelWithDebInfo Release MinSizeRel None "")
|
|
set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL MinSizeRel Release RelWithDebInfo None "")
|
|
set(CMAKE_MAP_IMPORTED_CONFIG_RELEASE Release RelWithDebInfo MinSizeRel None "")
|
|
|
|
# Prohibit in-source builds
|
|
if("${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
message(FATAL_ERROR "In-source builds of OBS are not supported. "
|
|
"Specify a build directory via 'cmake -S <SOURCE DIRECTORY> -B <BUILD_DIRECTORY>' instead.")
|
|
file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt" "${CMAKE_CURRENT_SOURCE_DIR}/CMakeFiles")
|
|
endif()
|
|
|
|
# Use folders for source file organization with IDE generators (Visual Studio/Xcode)
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS TRUE)
|
|
|
|
# Set default global project variables
|
|
set(OBS_COMPANY_NAME "OBS Project")
|
|
set(OBS_PRODUCT_NAME "OBS Studio")
|
|
set(OBS_WEBSITE "https://www.obsproject.com")
|
|
set(OBS_COMMENTS "Free and open source software for video recording and live streaming")
|
|
set(OBS_LEGAL_COPYRIGHT "(C) Lain Bailey")
|
|
set(OBS_CMAKE_VERSION 3.0.0)
|
|
|
|
# Configure default version strings
|
|
set(_obs_default_version "0" "0" "1")
|
|
set(_obs_release_candidate 0)
|
|
set(_obs_beta 0)
|
|
|
|
# Add common module directories to default search path
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/common" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/finders")
|
|
|
|
include(policies NO_POLICY_SCOPE)
|
|
include(versionconfig)
|
|
include(buildnumber)
|
|
include(osconfig)
|
|
|
|
# Allow selection of common build types via UI
|
|
if(NOT CMAKE_GENERATOR MATCHES "(Xcode|Visual Studio .+)")
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE
|
|
"RelWithDebInfo"
|
|
CACHE STRING "OBS build type [Release, RelWithDebInfo, Debug, MinSizeRel]" FORCE)
|
|
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Release RelWithDebInfo Debug MinSizeRel)
|
|
endif()
|
|
endif()
|
|
|
|
# Enable default inclusion of targets' source and binary directory
|
|
set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|