Skip to content

Commit

Permalink
cmake: Update formatting and switch to native find_package call for Qt6
Browse files Browse the repository at this point in the history
  • Loading branch information
PatTheMav committed Oct 30, 2023
1 parent e397df5 commit a2605be
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 35 deletions.
15 changes: 8 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,7 @@ mark_as_advanced(ENABLE_BROWSER_PANELS)

target_sources(
obs-browser
PRIVATE obs-browser-plugin.cpp
obs-browser-source.cpp
obs-browser-source.hpp
obs-browser-source-audio.cpp
PRIVATE # cmake-format: sortable
browser-app.cpp
browser-app.hpp
browser-client.cpp
Expand All @@ -36,11 +33,15 @@ target_sources(
cef-headers.hpp
deps/base64/base64.cpp
deps/base64/base64.hpp
deps/wide-string.cpp
deps/wide-string.hpp
deps/obs-websocket-api/obs-websocket-api.h
deps/signal-restore.cpp
deps/signal-restore.hpp
deps/obs-websocket-api/obs-websocket-api.h)
deps/wide-string.cpp
deps/wide-string.hpp
obs-browser-plugin.cpp
obs-browser-source-audio.cpp
obs-browser-source.cpp
obs-browser-source.hpp)

target_include_directories(obs-browser PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/deps")

Expand Down
13 changes: 10 additions & 3 deletions cmake/feature-panels.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
find_qt(COMPONENTS Widgets)
find_package(Qt6 REQUIRED Widgets)

add_library(browser-panels INTERFACE)
add_library(OBS::browser-panels ALIAS browser-panels)
Expand All @@ -9,8 +9,11 @@ target_include_directories(browser-panels INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}

target_compile_definitions(browser-panels INTERFACE BROWSER_AVAILABLE)

target_sources(obs-browser PRIVATE panel/browser-panel-client.hpp panel/browser-panel-internal.hpp
panel/browser-panel.cpp panel/browser-panel-client.cpp)
target_sources(
obs-browser
PRIVATE # cmake-format: sortable
panel/browser-panel-client.cpp panel/browser-panel-client.hpp panel/browser-panel-internal.hpp
panel/browser-panel.cpp)

target_link_libraries(obs-browser PRIVATE OBS::browser-panels Qt::Widgets)

Expand All @@ -19,3 +22,7 @@ set_target_properties(
PROPERTIES AUTOMOC ON
AUTOUIC ON
AUTORCC ON)

if(OS_WINDOWS)
set_property(SOURCE browser-app.hpp PROPERTY SKIP_AUTOMOC TRUE)
endif()
6 changes: 0 additions & 6 deletions cmake/legacy.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -137,12 +137,6 @@ if(NOT OS_MACOS OR ENABLE_BROWSER_LEGACY)
endif()

if(OS_WINDOWS)
if(MSVC)
target_compile_options(obs-browser PRIVATE $<IF:$<CONFIG:DEBUG>,/MTd,/MT>)

target_compile_options(obs-browser-page PRIVATE $<IF:$<CONFIG:DEBUG>,/MTd,/MT>)
endif()

target_link_libraries(obs-browser PRIVATE CEF::Library d3d11 dxgi)

if(TARGET CEF::Wrapper_Debug)
Expand Down
8 changes: 6 additions & 2 deletions cmake/os-linux.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,23 @@ set_target_properties(obs-browser PROPERTIES BUILD_RPATH "$ORIGIN/" INSTALL_RPAT
add_executable(browser-helper)
add_executable(OBS::browser-helper ALIAS browser-helper)

target_sources(browser-helper PRIVATE cef-headers.hpp obs-browser-page/obs-browser-page-main.cpp browser-app.cpp
browser-app.hpp deps/json11/json11.cpp deps/json11/json11.hpp)
target_sources(
browser-helper PRIVATE # cmake-format: sortable
browser-app.cpp browser-app.hpp cef-headers.hpp obs-browser-page/obs-browser-page-main.cpp)

target_include_directories(browser-helper PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/deps"
"${CMAKE_CURRENT_SOURCE_DIR}/obs-browser-page")

target_link_libraries(browser-helper PRIVATE CEF::Wrapper CEF::Library)

set(OBS_EXECUTABLE_DESTINATION "${OBS_PLUGIN_DESTINATION}")

# cmake-format: off
set_target_properties_obs(
browser-helper
PROPERTIES FOLDER plugins/obs-browser
BUILD_RPATH "$ORIGIN/"
INSTALL_RPATH "$ORIGIN/"
PREFIX ""
OUTPUT_NAME obs-browser-page)
# cmake-format: on
17 changes: 9 additions & 8 deletions cmake/os-macos.cmake
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
find_qt(COMPONENTS Widgets)

find_library(COREFOUNDATION CoreFoundation)
find_library(APPKIT AppKit)
mark_as_advanced(COREFOUNDATION APPKIT)
find_package(Qt6 REQUIRED Widgets)

target_compile_definitions(obs-browser PRIVATE ENABLE_BROWSER_SHARED_TEXTURE ENABLE_BROWSER_QT_LOOP)

if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0.3)
target_compile_options(obs-browser PRIVATE -Wno-error=unqualified-std-cast-call)
endif()

target_link_libraries(obs-browser PRIVATE Qt::Widgets ${COREFOUNDATION} ${APPKIT} CEF::Wrapper)
target_link_libraries(obs-browser PRIVATE Qt::Widgets CEF::Wrapper "$<LINK_LIBRARY:FRAMEWORK,CoreFoundation.framework>"
"$<LINK_LIBRARY:FRAMEWORK,AppKit.framework>")

set(helper_basename browser-helper)
set(helper_output_name "OBS Helper")
Expand All @@ -31,9 +29,12 @@ foreach(helper IN LISTS helper_suffixes)
add_executable(${target_name} MACOSX_BUNDLE EXCLUDE_FROM_ALL)
add_executable(OBS::${target_name} ALIAS ${target_name})

target_sources(${target_name} PRIVATE browser-app.cpp browser-app.hpp obs-browser-page/obs-browser-page-main.cpp
cef-headers.hpp)
target_sources(
${target_name} PRIVATE # cmake-format: sortable
browser-app.cpp browser-app.hpp cef-headers.hpp obs-browser-page/obs-browser-page-main.cpp)

target_compile_definitions(${target_name} PRIVATE ENABLE_BROWSER_SHARED_TEXTURE)

if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0.3)
target_compile_options(${target_name} PRIVATE -Wno-error=unqualified-std-cast-call)
endif()
Expand Down
13 changes: 4 additions & 9 deletions cmake/os-windows.cmake
Original file line number Diff line number Diff line change
@@ -1,28 +1,23 @@
target_compile_options(obs-browser PRIVATE $<IF:$<CONFIG:DEBUG>,/MTd,/MT>)
target_compile_definitions(obs-browser PRIVATE ENABLE_BROWSER_SHARED_TEXTURE)

target_link_libraries(obs-browser PRIVATE CEF::Wrapper CEF::Library d3d11 dxgi)
target_link_options(obs-browser PRIVATE /IGNORE:4099)

add_executable(obs-browser-helper WIN32 EXCLUDE_FROM_ALL)
add_executable(OBS::browser-helper ALIAS obs-browser-helper)

target_sources(
obs-browser-helper
PRIVATE cef-headers.hpp
obs-browser-page/obs-browser-page-main.cpp
browser-app.cpp
browser-app.hpp
obs-browser-page.manifest)
PRIVATE # cmake-format: sortable
browser-app.cpp browser-app.hpp cef-headers.hpp obs-browser-page.manifest
obs-browser-page/obs-browser-page-main.cpp)

target_include_directories(obs-browser-helper PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/deps"
"${CMAKE_CURRENT_SOURCE_DIR}/obs-browser-page")

target_compile_options(obs-browser-helper PRIVATE $<IF:$<CONFIG:DEBUG>,/MTd,/MT>)
target_compile_definitions(obs-browser-helper PRIVATE ENABLE_BROWSER_SHARED_TEXTURE)

target_link_libraries(obs-browser-helper PRIVATE CEF::Wrapper CEF::Library nlohmann_json::nlohmann_json)
target_link_options(obs-browser-helper PRIVATE /IGNORE:4099 /SUBSYSTEM:WINDOWS)
target_link_options(obs-browser-helper PRIVATE /IGNORE:4098 /SUBSYSTEM:WINDOWS)

set(OBS_EXECUTABLE_DESTINATION "${OBS_PLUGIN_DESTINATION}")
set_target_properties_obs(
Expand Down

0 comments on commit a2605be

Please sign in to comment.