mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
CMake: Use a helper file to find GL and EGL in a platform agnostic way
Also add a flag to turn off accelerated graphics entirely.
This commit is contained in:
parent
bec1c1fff7
commit
49d21619d4
Notes:
sideshowbarker
2024-07-17 23:07:41 +09:00
Author: https://github.com/ADKaster Commit: https://github.com/SerenityOS/serenity/commit/49d21619d4 Pull-request: https://github.com/SerenityOS/serenity/pull/21684
5 changed files with 23 additions and 7 deletions
|
@ -70,6 +70,7 @@ There are some optional features that can be enabled during compilation that are
|
|||
- `BUILD_EVERYTHING`: builds all optional components, overrides other `BUILD_<component>` flags when enabled
|
||||
- `SERENITY_CACHE_DIR`: sets the location of a shared cache of downloaded files. Should not need to be set unless managing a distribution package.
|
||||
- `ENABLE_NETWORK_DOWNLOADS`: allows downloading files from the internet during the build. Default on, turning off enables offline builds. For offline builds, the structure of the SERENITY_CACHE_DIR must be set up the way that the build expects.
|
||||
- `ENABLE_ACCELERATED_GRAPHICS`: builds features that use accelerated graphics APIs to speed up painting and drawing using native graphics libraries.
|
||||
|
||||
Many parts of the SerenityOS codebase have debug functionality, mostly consisting of additional messages printed to the debug console. This is done via the `<component_name>_DEBUG` macros, which can be enabled individually at build time. They are listed in [this file](../Meta/CMake/all_the_debug_macros.cmake).
|
||||
|
||||
|
|
14
Meta/CMake/accelerated_graphics.cmake
Normal file
14
Meta/CMake/accelerated_graphics.cmake
Normal file
|
@ -0,0 +1,14 @@
|
|||
if (NOT ENABLE_ACCELERATED_GRAPHICS OR EMSCRIPTEN)
|
||||
# FIXME: Enable GL emulation in emscripten: https://emscripten.org/docs/porting/multimedia_and_graphics/OpenGL-support.html
|
||||
set(HAS_ACCELERATED_GRAPHICS OFF CACHE BOOL "" FORCE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
find_package(OpenGL COMPONENTS OpenGL EGL)
|
||||
|
||||
if (OPENGL_FOUND)
|
||||
set(HAS_ACCELERATED_GRAPHICS ON CACHE BOOL "" FORCE)
|
||||
set(ACCEL_GFX_LIBS OpenGL::OpenGL OpenGL::EGL CACHE STRING "" FORCE)
|
||||
else()
|
||||
set(HAS_ACCELERATED_GRAPHICS OFF CACHE BOOL "" FORCE)
|
||||
endif()
|
|
@ -21,6 +21,7 @@ serenity_option(ENABLE_PUBLIC_SUFFIX_DOWNLOAD ON CACHE BOOL "Enable download of
|
|||
serenity_option(INCLUDE_WASM_SPEC_TESTS OFF CACHE BOOL "Download and include the WebAssembly spec testsuite")
|
||||
serenity_option(INCLUDE_FLAC_SPEC_TESTS OFF CACHE BOOL "Download and include the FLAC spec testsuite")
|
||||
serenity_option(ENABLE_CACERT_DOWNLOAD ON CACHE BOOL "Enable download of cacert.pem at build time")
|
||||
serenity_option(ENABLE_ACCELERATED_GRAPHICS ON CACHE BOOL "Enable use of accelerated graphics APIs")
|
||||
|
||||
serenity_option(HACKSTUDIO_BUILD OFF CACHE BOOL "Automatically enabled when building from HackStudio")
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
if (LINUX)
|
||||
include(accelerated_graphics)
|
||||
|
||||
if (HAS_ACCELERATED_GRAPHICS)
|
||||
set(SOURCES
|
||||
Canvas.cpp
|
||||
Context.cpp
|
||||
|
@ -6,5 +8,5 @@ if (LINUX)
|
|||
)
|
||||
|
||||
serenity_lib(LibAccelGfx accelgfx)
|
||||
target_link_libraries(LibAccelGfx PRIVATE LibGfx GL EGL)
|
||||
target_link_libraries(LibAccelGfx PRIVATE LibGfx ${ACCEL_GFX_LIBS})
|
||||
endif()
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
include(libweb_generators)
|
||||
include(accelerated_graphics)
|
||||
|
||||
set(SOURCES
|
||||
ARIA/AriaData.cpp
|
||||
|
@ -626,10 +627,6 @@ set(SOURCES
|
|||
XML/XMLDocumentBuilder.cpp
|
||||
)
|
||||
|
||||
if (LINUX)
|
||||
list(APPEND SOURCES Painting/PaintingCommandExecutorGPU.cpp)
|
||||
endif()
|
||||
|
||||
invoke_generator(
|
||||
"AriaRoles.cpp"
|
||||
Lagom::GenerateAriaRoles
|
||||
|
@ -663,7 +660,8 @@ serenity_lib(LibWeb web)
|
|||
target_link_libraries(LibWeb PRIVATE LibCore LibCrypto LibJS LibMarkdown LibHTTP LibGemini LibGL LibGUI LibGfx LibIPC LibLocale LibRegex LibSoftGPU LibSyntax LibTextCodec LibUnicode LibAudio LibVideo LibWasm LibXML LibIDL)
|
||||
link_with_locale_data(LibWeb)
|
||||
|
||||
if (LINUX)
|
||||
if (HAS_ACCELERATED_GRAPHICS)
|
||||
target_sources(LibWeb PRIVATE Painting/PaintingCommandExecutorGPU.cpp)
|
||||
target_link_libraries(LibWeb PRIVATE LibAccelGfx)
|
||||
endif()
|
||||
|
||||
|
|
Loading…
Reference in a new issue