Status output related to OBS configuration is prefixed with the string "OBS" and added padding for enabled and disabled features. This padding was not aligned between platforms. By moving the padding and prefix decoration into its own function, both elements are controlled in a single place. CMake scripts were changed to use this new function `obs_status` instead of using CMake's `message` function directly.
161 lines
5.1 KiB
CMake
161 lines
5.1 KiB
CMake
include(FindPackageHandleStandardArgs)
|
|
|
|
set_property(CACHE CEF_ROOT_DIR PROPERTY HELPSTRING
|
|
"Path to CEF distributed build")
|
|
if(NOT DEFINED CEF_ROOT_DIR OR CEF_ROOT_DIR STREQUAL "")
|
|
message(
|
|
FATAL_ERROR
|
|
"CEF_ROOT_DIR is not set - if ENABLE_BROWSER is enabled, a CEF distribution with compiled wrapper library is required.\n"
|
|
"Please download a CEF distribution for your appropriate architecture and specify CEF_ROOT_DIR to its location"
|
|
)
|
|
endif()
|
|
|
|
find_path(CEF_INCLUDE_DIR "include/cef_version.h" HINTS "${CEF_ROOT_DIR}")
|
|
|
|
if(OS_MACOS)
|
|
find_library(
|
|
CEF_LIBRARY
|
|
NAMES cef libcef cef.lib libcef.o "Chromium Embedded Framework"
|
|
NO_DEFAULT_PATH
|
|
PATHS "${CEF_ROOT_DIR}" "${CEF_ROOT_DIR}/Release")
|
|
|
|
find_library(
|
|
CEFWRAPPER_LIBRARY
|
|
NAMES cef_dll_wrapper libcef_dll_wrapper
|
|
NO_DEFAULT_PATH
|
|
PATHS "${CEF_ROOT_DIR}/build/libcef_dll/Release"
|
|
"${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Release"
|
|
"${CEF_ROOT_DIR}/build/libcef_dll"
|
|
"${CEF_ROOT_DIR}/build/libcef_dll_wrapper")
|
|
|
|
elseif(OS_POSIX)
|
|
find_library(
|
|
CEF_LIBRARY
|
|
NAMES libcef.so "Chromium Embedded Framework"
|
|
NO_DEFAULT_PATH
|
|
PATHS "${CEF_ROOT_DIR}" "${CEF_ROOT_DIR}/Release")
|
|
|
|
find_library(
|
|
CEFWRAPPER_LIBRARY
|
|
NAMES libcef_dll_wrapper.a
|
|
NO_DEFAULT_PATH
|
|
PATHS "${CEF_ROOT_DIR}/build/libcef_dll_wrapper"
|
|
"${CEF_ROOT_DIR}/libcef_dll_wrapper")
|
|
|
|
else()
|
|
find_library(
|
|
CEF_LIBRARY
|
|
NAMES cef libcef cef.lib libcef.o "Chromium Embedded Framework"
|
|
PATHS "${CEF_ROOT_DIR}" "${CEF_ROOT_DIR}/Release")
|
|
|
|
find_library(
|
|
CEFWRAPPER_LIBRARY
|
|
NAMES cef_dll_wrapper libcef_dll_wrapper
|
|
PATHS "${CEF_ROOT_DIR}/build/libcef_dll/Release"
|
|
"${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Release"
|
|
"${CEF_ROOT_DIR}/build/libcef_dll"
|
|
"${CEF_ROOT_DIR}/build/libcef_dll_wrapper")
|
|
|
|
if(OS_WINDOWS)
|
|
find_library(
|
|
CEFWRAPPER_LIBRARY_DEBUG
|
|
NAMES cef_dll_wrapper libcef_dll_wrapper
|
|
PATHS "${CEF_ROOT_DIR}/build/libcef_dll/Debug"
|
|
"${CEF_ROOT_DIR}/build/libcef_dll_wrapper/Debug")
|
|
endif()
|
|
endif()
|
|
|
|
mark_as_advanced(CEFWRAPPER_LIBRARY CEFWRAPPER_LIBRARY_DEBUG)
|
|
|
|
if(NOT CEF_LIBRARY)
|
|
message(
|
|
WARNING
|
|
"Could NOT find Chromium Embedded Framework library (missing: CEF_LIBRARY)"
|
|
)
|
|
set(CEF_FOUND FALSE)
|
|
return()
|
|
endif()
|
|
|
|
if(NOT CEFWRAPPER_LIBRARY)
|
|
message(
|
|
WARNING
|
|
"Could NOT find Chromium Embedded Framework wrapper library (missing: CEFWRAPPER_LIBRARY)"
|
|
)
|
|
set(CEF_FOUND FALSE)
|
|
return()
|
|
endif()
|
|
|
|
message(
|
|
STATUS
|
|
"Found Chromium Embedded Framework: ${CEF_LIBRARY};${CEF_WRAPPER_LIBRARY}")
|
|
|
|
if(OS_WINDOWS)
|
|
set(CEF_LIBRARIES ${CEF_LIBRARY} ${CEFWRAPPER_LIBRARY})
|
|
|
|
elseif(OS_MACOS)
|
|
if(BROWSER_LEGACY)
|
|
set(CEF_LIBRARIES ${CEFWRAPPER_LIBRARY} ${CEF_LIBRARY})
|
|
else()
|
|
set(CEF_LIBRARIES ${CEFWRAPPER_LIBRARY})
|
|
endif()
|
|
else()
|
|
set(CEF_LIBRARIES ${CEF_LIBRARY} optimized ${CEFWRAPPER_LIBRARY})
|
|
|
|
if(CEFWRAPPER_LIBRARY_DEBUG)
|
|
list(APPEND CEF_LIBRARIES debug ${CEFWRAPPER_LIBRARY_DEBUG})
|
|
endif()
|
|
endif()
|
|
|
|
find_package_handle_standard_args(CEF DEFAULT_MSG CEF_LIBRARY
|
|
CEFWRAPPER_LIBRARY CEF_INCLUDE_DIR)
|
|
|
|
mark_as_advanced(CEF_LIBRARY CEF_WRAPPER_LIBRARY CEF_LIBRARIES CEF_INCLUDE_DIR)
|
|
|
|
if(NOT TARGET CEF::Wrapper)
|
|
if(IS_ABSOLUTE "${CEF_LIBRARIES}")
|
|
add_library(CEF::Wrapper UNKNOWN IMPORTED)
|
|
add_library(CEF::Library UNKNOWN IMPORTED)
|
|
|
|
set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LOCATION
|
|
${CEFWRAPPER_LIBRARY})
|
|
|
|
set_target_properties(CEF::Library PROPERTIES IMPORTED_LOCATION
|
|
${CEF_LIBRARY})
|
|
|
|
if(DEFINED CEFWRAPPER_LIBRARY_DEBUG)
|
|
add_library(CEF::Wrapper_Debug UNKNOWN IMPORTED)
|
|
set_target_properties(
|
|
CEF::Wrapper_Debug PROPERTIES IMPORTED_LOCATION
|
|
${CEFWRAPPER_LIBRARY_DEBUG})
|
|
endif()
|
|
else()
|
|
add_library(CEF::Wrapper INTERFACE IMPORTED)
|
|
add_library(CEF::Library INTERFACE IMPORTED)
|
|
|
|
set_target_properties(CEF::Wrapper PROPERTIES IMPORTED_LIBNAME
|
|
${CEFWRAPPER_LIBRARY})
|
|
|
|
set_target_properties(CEF::Library PROPERTIES IMPORTED_LIBNAME
|
|
${CEF_LIBRARY})
|
|
|
|
if(DEFINED CEFWRAPPER_LIBRARY_DEBUG)
|
|
add_library(CEF::Wrapper_Debug INTERFACE IMPORTED)
|
|
set_target_properties(
|
|
CEF::Wrapper_Debug PROPERTIES IMPORTED_LIBNAME
|
|
${CEFWRAPPER_LIBRARY_DEBUG})
|
|
endif()
|
|
endif()
|
|
|
|
set_target_properties(CEF::Wrapper PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
|
|
"${CEF_INCLUDE_DIR}")
|
|
|
|
set_target_properties(CEF::Library PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
|
|
"${CEF_INCLUDE_DIR}")
|
|
|
|
if(DEFINED CEFWRAPPER_LIBRARY_DEBUG)
|
|
set_target_properties(
|
|
CEF::Wrapper_Debug PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
|
|
"${CEF_INCLUDE_DIR}")
|
|
endif()
|
|
endif()
|