Meta: Move all remaining dependency checks to check_for_dependencies
This also allows us to get rid of a couple of files that were meant for dependency specific checks.
This commit is contained in:
parent
b41dbf60f3
commit
1d83e8c896
14 changed files with 69 additions and 97 deletions
|
|
@ -51,10 +51,9 @@ endif()
|
|||
set(LADYBIRD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${LADYBIRD_SOURCE_DIR}/Meta/CMake")
|
||||
|
||||
include(check_for_dependencies)
|
||||
include(gui_framework)
|
||||
include(cmake_options NO_POLICY_SCOPE)
|
||||
include(compile_options)
|
||||
include(check_for_dependencies)
|
||||
include(cmake_options)
|
||||
|
||||
if(ENABLE_ALL_THE_DEBUG_MACROS)
|
||||
include(all_the_debug_macros)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
include(skia)
|
||||
include(vulkan)
|
||||
|
||||
set(SOURCES
|
||||
AffineTransform.cpp
|
||||
Bitmap.cpp
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
include(audio)
|
||||
|
||||
include(ffmpeg)
|
||||
|
||||
set(SOURCES
|
||||
Audio/AudioDevices.cpp
|
||||
Containers/Matroska/MatroskaDemuxer.cpp
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
include(fontconfig)
|
||||
include(libweb_generators)
|
||||
include(vulkan)
|
||||
include(skia)
|
||||
include(SDL3)
|
||||
|
||||
set(SOURCES
|
||||
Animations/Animatable.cpp
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
include(fontconfig)
|
||||
|
||||
set(SOURCES
|
||||
Application.cpp
|
||||
Attribute.cpp
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
include_guard()
|
||||
|
||||
find_package(SDL3 CONFIG REQUIRED)
|
||||
|
|
@ -23,15 +23,44 @@ pkg_check_modules(WOFF2 REQUIRED IMPORTED_TARGET libwoff2dec)
|
|||
# TODO: Figure out if we can do this the same way on all platforms
|
||||
if (NOT ANDROID)
|
||||
pkg_check_modules(Jxl REQUIRED IMPORTED_TARGET libjxl)
|
||||
|
||||
pkg_check_modules(AVCODEC REQUIRED IMPORTED_TARGET libavcodec)
|
||||
pkg_check_modules(AVFORMAT REQUIRED IMPORTED_TARGET libavformat)
|
||||
pkg_check_modules(AVUTIL REQUIRED IMPORTED_TARGET libavutil)
|
||||
pkg_check_modules(LIBSWRESAMPLE REQUIRED IMPORTED_TARGET libswresample)
|
||||
else()
|
||||
find_package(libjxl REQUIRED)
|
||||
find_package(hwy REQUIRED)
|
||||
|
||||
find_package(FFMPEG REQUIRED)
|
||||
endif()
|
||||
|
||||
if (NOT APPLE AND NOT ANDROID AND NOT WIN32)
|
||||
find_package(Fontconfig REQUIRED)
|
||||
set(HAS_FONTCONFIG ON CACHE BOOL "" FORCE)
|
||||
add_cxx_compile_definitions(USE_FONTCONFIG=1)
|
||||
endif()
|
||||
|
||||
if (NOT APPLE)
|
||||
find_package(VulkanHeaders CONFIG QUIET)
|
||||
find_package(Vulkan QUIET)
|
||||
if (VulkanHeaders_FOUND AND Vulkan_FOUND)
|
||||
set(HAS_VULKAN ON CACHE BOOL "" FORCE)
|
||||
add_cxx_compile_definitions(USE_VULKAN=1)
|
||||
|
||||
# Sharable Vulkan images are currently only implemented on Linux and BSDs
|
||||
if ((LINUX AND NOT ANDROID) OR BSD)
|
||||
set(USE_VULKAN_DMABUF_IMAGES ON CACHE BOOL "" FORCE)
|
||||
add_cxx_compile_definitions(USE_VULKAN_DMABUF_IMAGES=1)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(CURL REQUIRED)
|
||||
find_package(ICU 78.2 EXACT REQUIRED COMPONENTS data i18n uc)
|
||||
find_package(LibXml2 REQUIRED)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
find_package(SDL3 CONFIG REQUIRED)
|
||||
find_package(simdjson CONFIG REQUIRED)
|
||||
find_package(SQLite3 REQUIRED)
|
||||
find_package(Threads REQUIRED)
|
||||
|
|
@ -53,3 +82,41 @@ if (WIN32)
|
|||
endif()
|
||||
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
|
||||
find_package(unofficial-skia CONFIG)
|
||||
if(unofficial-skia_FOUND)
|
||||
set(SKIA_TARGET unofficial::skia::skia)
|
||||
if (HAS_FONTCONFIG AND NOT WIN32)
|
||||
set(CMAKE_LINK_GROUP_USING_no_as_needed_SUPPORTED TRUE CACHE BOOL "Link group using no-as-needed supported")
|
||||
set(CMAKE_LINK_GROUP_USING_no_as_needed "LINKER:--push-state,--no-as-needed" "LINKER:--pop-state" CACHE STRING "Link group using no-as-needed")
|
||||
set_property(TARGET unofficial::skia::skia APPEND PROPERTY INTERFACE_LINK_LIBRARIES "$<LINK_GROUP:no_as_needed,Fontconfig::Fontconfig>")
|
||||
endif()
|
||||
if (ANDROID)
|
||||
# FIXME: Submit a proper patch to vcpkg in order not to bring host's libc++ when compiling for Android
|
||||
get_target_property(link_libs unofficial::skia::skia INTERFACE_LINK_LIBRARIES)
|
||||
set(filtered_libs)
|
||||
foreach(lib ${link_libs})
|
||||
if (NOT lib MATCHES "lib/libc\\+\\+.so$")
|
||||
list(APPEND filtered_libs ${lib})
|
||||
endif()
|
||||
endforeach()
|
||||
set_property(TARGET unofficial::skia::skia PROPERTY INTERFACE_LINK_LIBRARIES ${filtered_libs})
|
||||
endif()
|
||||
else()
|
||||
# Get skia version from vcpkg.json
|
||||
file(READ ${LADYBIRD_SOURCE_DIR}/vcpkg.json VCPKG_DOT_JSON)
|
||||
string(JSON VCPKG_OVERRIDES_LENGTH LENGTH ${VCPKG_DOT_JSON} overrides)
|
||||
MATH(EXPR VCPKG_OVERRIDES_END_RANGE "${VCPKG_OVERRIDES_LENGTH}-1")
|
||||
foreach(IDX RANGE ${VCPKG_OVERRIDES_END_RANGE})
|
||||
string(JSON VCPKG_OVERRIDE_NAME GET ${VCPKG_DOT_JSON} overrides ${IDX} name)
|
||||
if(VCPKG_OVERRIDE_NAME STREQUAL "skia")
|
||||
string(JSON SKIA_REQUIRED_VERSION GET ${VCPKG_DOT_JSON} overrides ${IDX} version)
|
||||
string(REGEX MATCH "[0-9]+" SKIA_REQUIRED_VERSION ${SKIA_REQUIRED_VERSION})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
pkg_check_modules(skia skia=${SKIA_REQUIRED_VERSION} REQUIRED IMPORTED_TARGET skia)
|
||||
set(SKIA_TARGET PkgConfig::skia)
|
||||
set_property(TARGET PkgConfig::skia APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "SKCMS_DLL")
|
||||
endif()
|
||||
add_library(skia ALIAS ${SKIA_TARGET})
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ function(embed_as_string name source_file output source_variable_name)
|
|||
if (EMBED_STRING_VIEW_NAMESPACE)
|
||||
set(namespace_arg "-s ${EMBED_STRING_VIEW_NAMESPACE}")
|
||||
endif()
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
add_custom_command(
|
||||
OUTPUT "${output}"
|
||||
COMMAND "${Python3_EXECUTABLE}" "${LADYBIRD_SOURCE_DIR}/Meta/Generators/embed_as_string.py" "${source_file}" -o "${output}.tmp" -n "${source_variable_name}" ${namespace_arg}
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
include_guard()
|
||||
|
||||
if (NOT ANDROID)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(AVCODEC REQUIRED IMPORTED_TARGET libavcodec)
|
||||
pkg_check_modules(AVFORMAT REQUIRED IMPORTED_TARGET libavformat)
|
||||
pkg_check_modules(AVUTIL REQUIRED IMPORTED_TARGET libavutil)
|
||||
pkg_check_modules(LIBSWRESAMPLE REQUIRED IMPORTED_TARGET libswresample)
|
||||
else()
|
||||
find_package(FFMPEG REQUIRED)
|
||||
endif()
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
include_guard()
|
||||
|
||||
if (NOT APPLE AND NOT ANDROID AND NOT WIN32)
|
||||
find_package(Fontconfig REQUIRED)
|
||||
set(HAS_FONTCONFIG ON CACHE BOOL "" FORCE)
|
||||
add_cxx_compile_definitions(USE_FONTCONFIG=1)
|
||||
endif()
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
include_guard()
|
||||
|
||||
include(fontconfig)
|
||||
|
||||
find_package(unofficial-skia CONFIG)
|
||||
if(unofficial-skia_FOUND)
|
||||
set(SKIA_TARGET unofficial::skia::skia)
|
||||
if (HAS_FONTCONFIG AND NOT WIN32)
|
||||
set(CMAKE_LINK_GROUP_USING_no_as_needed_SUPPORTED TRUE CACHE BOOL "Link group using no-as-needed supported")
|
||||
set(CMAKE_LINK_GROUP_USING_no_as_needed "LINKER:--push-state,--no-as-needed" "LINKER:--pop-state" CACHE STRING "Link group using no-as-needed")
|
||||
set_property(TARGET unofficial::skia::skia APPEND PROPERTY INTERFACE_LINK_LIBRARIES "$<LINK_GROUP:no_as_needed,Fontconfig::Fontconfig>")
|
||||
endif()
|
||||
if (ANDROID)
|
||||
# FIXME: Submit a proper patch to vcpkg in order not to bring host's libc++ when compiling for Android
|
||||
get_target_property(link_libs unofficial::skia::skia INTERFACE_LINK_LIBRARIES)
|
||||
set(filtered_libs)
|
||||
foreach(lib ${link_libs})
|
||||
if (NOT lib MATCHES "lib/libc\\+\\+.so$")
|
||||
list(APPEND filtered_libs ${lib})
|
||||
endif()
|
||||
endforeach()
|
||||
set_property(TARGET unofficial::skia::skia PROPERTY INTERFACE_LINK_LIBRARIES ${filtered_libs})
|
||||
endif()
|
||||
else()
|
||||
find_package(PkgConfig)
|
||||
|
||||
# Get skia version from vcpkg.json
|
||||
file(READ ${LADYBIRD_SOURCE_DIR}/vcpkg.json VCPKG_DOT_JSON)
|
||||
string(JSON VCPKG_OVERRIDES_LENGTH LENGTH ${VCPKG_DOT_JSON} overrides)
|
||||
MATH(EXPR VCPKG_OVERRIDES_END_RANGE "${VCPKG_OVERRIDES_LENGTH}-1")
|
||||
foreach(IDX RANGE ${VCPKG_OVERRIDES_END_RANGE})
|
||||
string(JSON VCPKG_OVERRIDE_NAME GET ${VCPKG_DOT_JSON} overrides ${IDX} name)
|
||||
if(VCPKG_OVERRIDE_NAME STREQUAL "skia")
|
||||
string(JSON SKIA_REQUIRED_VERSION GET ${VCPKG_DOT_JSON} overrides ${IDX} version)
|
||||
string(REGEX MATCH "[0-9]+" SKIA_REQUIRED_VERSION ${SKIA_REQUIRED_VERSION})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
pkg_check_modules(skia skia=${SKIA_REQUIRED_VERSION} REQUIRED IMPORTED_TARGET skia)
|
||||
set(SKIA_TARGET PkgConfig::skia)
|
||||
set_property(TARGET PkgConfig::skia APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "SKCMS_DLL")
|
||||
endif()
|
||||
add_library(skia ALIAS ${SKIA_TARGET})
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
include_guard()
|
||||
|
||||
if (NOT APPLE)
|
||||
find_package(VulkanHeaders CONFIG QUIET)
|
||||
find_package(Vulkan QUIET)
|
||||
if (VulkanHeaders_FOUND AND Vulkan_FOUND)
|
||||
set(HAS_VULKAN ON CACHE BOOL "" FORCE)
|
||||
add_cxx_compile_definitions(USE_VULKAN=1)
|
||||
|
||||
# Sharable Vulkan images are currently only implemented on Linux and BSDs
|
||||
if ((LINUX AND NOT ANDROID) OR BSD)
|
||||
set(USE_VULKAN_DMABUF_IMAGES ON CACHE BOOL "" FORCE)
|
||||
add_cxx_compile_definitions(USE_VULKAN_DMABUF_IMAGES=1)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
include(audio)
|
||||
include(SDL3)
|
||||
|
||||
set(SOURCES
|
||||
ConnectionFromClient.cpp
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(GTK4 REQUIRED IMPORTED_TARGET gtk4)
|
||||
pkg_check_modules(LIBADWAITA REQUIRED IMPORTED_TARGET libadwaita-1>=1.4)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue