Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmake: Update formatting and switch to native find_package call for Qt6 #424

Merged
merged 1 commit into from
Dec 20, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
8 changes: 3 additions & 5 deletions cmake/os-windows.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@ 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")
Expand Down
Loading