CMake: Fix building libcef_dll_wrapper

Check for 'libcef_dll' instead of 'cef_paths.gypi', because the minimal distribution doesn't contain the last one.
Mark all CEF variables as advanced, so they don't show up in the default CMake GUI.
This commit is contained in:
Maarten Bent 2023-12-12 23:49:59 +01:00
parent 256b7e4046
commit 3453d8c97d
No known key found for this signature in database
GPG key ID: 58AAEE3F4A4FD070
2 changed files with 31 additions and 34 deletions

View file

@ -12,20 +12,20 @@ include(../../source_groups.cmake)
include(cef_version_info.cmake)
find_path(CEF_ROOT
NAMES cef_paths.gypi
NAMES libcef_dll
HINTS
$ENV{CEF_ROOT}
${wxSOURCE_DIR}/3rdparty/cef
DOC "CEF Binary Root directory"
)
set(CEF_DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/cef-download)
set(CEF_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/cef-source)
set(CEF_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/cef-build)
if(NOT CEF_ROOT)
message("Downloading CEF binary distribution...")
set(CEF_DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/cef-download)
set(CEF_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/cef-source)
set(CEF_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/cef-build)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/cef_download.cmake.in
${CEF_DOWNLOAD_DIR}/CMakeLists.txt
@ -56,12 +56,16 @@ endif()
set(USE_ATL OFF) # Disable usage of ATL in CEF
set(USE_SANDBOX OFF) # Disable usage of sandbox on windows
add_subdirectory(${CEF_ROOT} cef EXCLUDE_FROM_ALL)
set_target_properties(libcef_dll_wrapper PROPERTIES FOLDER "Third Party Libraries")
if (MSVC)
add_subdirectory(${CEF_ROOT} ${CEF_BUILD_DIR} EXCLUDE_FROM_ALL)
set_target_properties(libcef_dll_wrapper PROPERTIES
FOLDER "Third Party Libraries"
OUTPUT_NAME "libcef_dll_wrapper"
)
if(MSVC)
# Modify CEF compiler options to match VC runtime
get_target_property(cef_compile_options libcef_dll_wrapper COMPILE_OPTIONS)
string(REGEX REPLACE "/MTd?" "" cef_compile_options "${cef_compile_options}")
string(REGEX REPLACE "/MTd?;" "" cef_compile_options "${cef_compile_options}")
set_target_properties(libcef_dll_wrapper PROPERTIES COMPILE_OPTIONS "${cef_compile_options}")
endif()
@ -81,30 +85,18 @@ else()
)
endif()
wx_append_sources(WEBVIEW_CHROMIUM_FILES WEBVIEWCHROMIUM)
if(APPLE)
wx_append_sources(WEBVIEW_CHROMIUM_FILES WEBVIEWCHROMIUM_OSX_SHARED)
endif()
wx_install(TARGETS libcef_dll_wrapper
EXPORT wxWidgetsTargets
ARCHIVE DESTINATION "lib${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
)
wx_add_library(webview_chromium ${WEBVIEW_CHROMIUM_FILES})
# CEF headers always need C++11
set_target_properties(webview_chromium PROPERTIES CXX_STANDARD 11)
wx_lib_include_directories(webview_chromium PRIVATE ${CEF_ROOT})
wx_lib_link_libraries(webview_chromium PUBLIC webview PRIVATE libcef libcef_dll_wrapper)
wx_lib_include_directories(wxwebview PRIVATE ${CEF_ROOT})
wx_add_dependencies(wxwebview libcef_dll_wrapper)
wx_lib_link_libraries(wxwebview PUBLIC libcef libcef_dll_wrapper)
# Add NDEBUG definition required by CEF headers for release build
set_property(TARGET webview_chromium APPEND PROPERTY
COMPILE_DEFINITIONS "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
if(APPLE AND wxBUILD_SHARED)
add_custom_command(
TARGET webview_chromium
POST_BUILD
# Copy the CEF framework into the Frameworks directory.
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CEF_ROOT}/$<CONFIG>/Chromium Embedded Framework.framework"
"$<TARGET_FILE_DIR:webview_chromium>/Frameworks/Chromium Embedded Framework.framework"
)
endif()
wx_finalize_lib(webview)
mark_as_advanced(USE_ATL)
mark_as_advanced(USE_SANDBOX)
mark_as_advanced(OPTION_USE_ARC)
mark_as_advanced(CEF_ROOT)
mark_as_advanced(CEF_DEBUG_INFO_FLAG)
mark_as_advanced(CEF_RUNTIME_LIBRARY_FLAG)

View file

@ -74,6 +74,11 @@ if(POLICY CMP0072)
cmake_policy(SET CMP0072 NEW)
endif()
if(POLICY CMP0079)
# target_link_libraries() allows use with targets in other directories.
cmake_policy(SET CMP0079 NEW)
endif()
if(POLICY CMP0092)
# MSVC warning flags are not in CMAKE_<LANG>_FLAGS by default.
cmake_policy(SET CMP0092 NEW)