cmake: Add changes for CMake build framework 3.0

New code path only taken if OBS_CMAKE_VERSION is set to 3.0.0 or
greater, old functionality remains unchanged.
This commit is contained in:
PatTheMav
2023-06-29 10:11:32 -04:00
committed by Ryan Foster
parent 850976eba9
commit db895092ed
84 changed files with 1642 additions and 695 deletions
+6 -5
View File
@@ -45,11 +45,10 @@ include(cmake/feature-importers.cmake)
include(cmake/feature-browserpanels.cmake)
if(NOT OAUTH_BASE_URL)
set(OAUTH_BASE_URL
"https://auth.obsproject.com/"
CACHE STRING "Default OAuth base URL")
# cmake-format: off
set(OAUTH_BASE_URL "https://auth.obsproject.com/" CACHE STRING "Default OAuth base URL")
mark_as_advanced(OAUTH_BASE_URL)
# cmake-format: on
endif()
include(cmake/feature-twitch.cmake)
include(cmake/feature-restream.cmake)
@@ -109,4 +108,6 @@ foreach(graphics_library IN ITEMS opengl metal d3d11)
endif()
endforeach()
set_target_properties_obs(obs-studio PROPERTIES FOLDER frontend OUTPUT_NAME obs)
# cmake-format: off
set_target_properties_obs(obs-studio PROPERTIES FOLDER frontend OUTPUT_NAME "$<IF:$<PLATFORM_ID:Windows>,obs64,obs>")
# cmake-format: on
+1 -1
View File
@@ -1,2 +1,2 @@
target_sources(obs-studio PRIVATE importers/importers.cpp importers/importers.hpp importers/classic.cpp
target_sources(obs-studio PRIVATE importers/classic.cpp importers/importers.cpp importers/importers.hpp
importers/sl.cpp importers/studio.cpp importers/xsplit.cpp)
+1 -1
View File
@@ -8,7 +8,7 @@ if(ENABLE_WHATSNEW AND TARGET OBS::browser-panels)
target_link_libraries(obs-studio PRIVATE MbedTLS::MbedTLS OBS::blake2)
target_sources(
obs-studio PRIVATE update/crypto-helpers.hpp update/crypto-helpers-mbedtls.cpp update/shared-update.cpp
obs-studio PRIVATE update/crypto-helpers-mbedtls.cpp update/crypto-helpers.hpp update/shared-update.cpp
update/shared-update.hpp update/update-helpers.cpp update/update-helpers.hpp)
endif()
+2 -2
View File
@@ -2,8 +2,8 @@ if(YOUTUBE_CLIENTID
AND YOUTUBE_SECRET
AND YOUTUBE_CLIENTID_HASH
AND YOUTUBE_SECRET_HASH)
target_sources(obs-studio PRIVATE auth-youtube.cpp auth-youtube.hpp youtube-api-wrappers.cpp youtube-api-wrappers.hpp
window-youtube-actions.cpp window-youtube-actions.hpp)
target_sources(obs-studio PRIVATE auth-youtube.cpp auth-youtube.hpp window-youtube-actions.cpp
window-youtube-actions.hpp youtube-api-wrappers.cpp youtube-api-wrappers.hpp)
target_enable_feature(obs-studio "YouTube API connection" YOUTUBE_ENABLED)
else()
+4 -6
View File
@@ -29,7 +29,7 @@ target_sources(
update/win-update.hpp)
target_link_libraries(obs-studio PRIVATE crypt32 OBS::blake2 OBS::w32-pthreads MbedTLS::MbedTLS Detours::Detours)
target_compile_options(obs-studio PRIVATE PSAPI_VERSION=2)
target_compile_definitions(obs-studio PRIVATE PSAPI_VERSION=2)
target_link_options(obs-studio PRIVATE /IGNORE:4098 /IGNORE:4099)
add_library(obs-update-helpers INTERFACE)
@@ -49,8 +49,6 @@ set_property(
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT obs-studio)
set_target_properties(
obs-studio
PROPERTIES
WIN32_EXECUTABLE TRUE
VS_DEBUGGER_COMMAND
"${CMAKE_BINARY_DIR}/rundir/$<CONFIG>/$<$<BOOL:${OBS_WINDOWS_LEGACY_DIRS}>:bin/>$<TARGET_FILE_NAME:obs-studio>"
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/rundir/$<CONFIG>$<$<BOOL:${OBS_WINDOWS_LEGACY_DIRS}>:/bin>")
PROPERTIES WIN32_EXECUTABLE TRUE
VS_DEBUGGER_COMMAND "${CMAKE_BINARY_DIR}/rundir/$<CONFIG>/bin/64bit/$<TARGET_FILE_NAME:obs-studio>"
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/rundir/$<CONFIG>/bin/64bit")
+2 -1
View File
@@ -14,7 +14,7 @@ set_property(
PROPERTY AUTOUIC_SEARCH_PATHS forms forms/source-toolbar)
set(_qt_sources
forms/obs.qrc
# cmake-format: sortable
forms/AutoConfigFinishPage.ui
forms/AutoConfigStartPage.ui
forms/AutoConfigStartPage.ui
@@ -22,6 +22,7 @@ set(_qt_sources
forms/AutoConfigTestPage.ui
forms/AutoConfigVideoPage.ui
forms/ColorSelect.ui
forms/obs.qrc
forms/OBSAbout.ui
forms/OBSAdvAudio.ui
forms/OBSBasic.ui
Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<description>OBS Studio</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"
/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 and Windows 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>
+26
View File
@@ -0,0 +1,26 @@
IDI_ICON1 ICON DISCARDABLE "cmake/windows/obs-studio.ico"
1 VERSIONINFO
FILEVERSION ${OBS_VERSION_MAJOR},${OBS_VERSION_MINOR},${OBS_VERSION_PATCH},0
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "OBS"
VALUE "FileDescription", "OBS Studio"
VALUE "FileVersion", "${OBS_VERSION_CANONICAL}"
VALUE "InternalName", "obs"
VALUE "OriginalFilename", "obs"
VALUE "ProductName", "OBS Studio"
VALUE "ProductVersion", "${OBS_VERSION_CANONICAL}"
VALUE "Comments", "Free and open source software for video recording and live streaming"
VALUE "LegalCopyright", "${OBS_LEGAL_COPYRIGHT}"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0409, 0x04B0
END
END
+1 -8
View File
@@ -2,13 +2,6 @@ cmake_minimum_required(VERSION 3.24...3.25)
legacy_check()
option(ENABLE_UPDATER "Build with Windows updater" ON)
if(NOT ENABLE_UPDATER)
target_disable_feature(obs "Windows updater")
return()
endif()
find_package(zstd)
if(NOT TARGET OBS::json11)
@@ -39,4 +32,4 @@ target_include_directories(updater PRIVATE "${CMAKE_SOURCE_DIR}/libobs" "${CMAKE
target_link_libraries(updater PRIVATE OBS::blake2 OBS::json11 zstd::libzstd_static comctl32 shell32 winhttp)
target_link_options(updater PRIVATE /IGNORE:4098)
set_target_properties_obs(updater PROPERTIES FOLDER frontend OUTPUT_NAME updater)
set_target_properties(updater PROPERTIES FOLDER frontend OUTPUT_NAME updater)