mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 09:00:22 +00:00
Kernel: Add a CMake flag to enable LTO for the kernel
This commit is contained in:
parent
55ae52fdf8
commit
6288ae2c37
Notes:
sideshowbarker
2024-07-18 18:54:18 +09:00
Author: https://github.com/gunnarbeutner Commit: https://github.com/SerenityOS/serenity/commit/6288ae2c379 Pull-request: https://github.com/SerenityOS/serenity/pull/6735
2 changed files with 8 additions and 2 deletions
|
@ -27,6 +27,7 @@ option(ENABLE_COMPILETIME_FORMAT_CHECK "Enable compiletime format string checks"
|
|||
option(ENABLE_PCI_IDS_DOWNLOAD "Enable download of the pci.ids database at build time" ON)
|
||||
option(BUILD_LAGOM "Build parts of the system targeting the host OS for fuzzing/testing" OFF)
|
||||
option(PRECOMPILE_COMMON_HEADERS "Precompile some common headers to speedup compilation" OFF)
|
||||
option(ENABLE_KERNEL_LTO "Build the kernel with link-time optimization" OFF)
|
||||
|
||||
add_custom_target(run
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/Meta/run.sh
|
||||
|
@ -124,9 +125,9 @@ else()
|
|||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++)
|
||||
set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}gcc)
|
||||
set(CMAKE_LINKER ${TOOLCHAIN_PREFIX}ld)
|
||||
set(CMAKE_RANLIB ${TOOLCHAIN_PREFIX}ranlib)
|
||||
set(CMAKE_RANLIB ${TOOLCHAIN_PREFIX}gcc-ranlib)
|
||||
set(CMAKE_STRIP ${TOOLCHAIN_PREFIX}strip)
|
||||
set(CMAKE_AR ${TOOLCHAIN_PREFIX}ar)
|
||||
set(CMAKE_AR ${TOOLCHAIN_PREFIX}gcc-ar)
|
||||
endif()
|
||||
|
||||
foreach(lang ASM C CXX OBJC OBJCXX)
|
||||
|
|
|
@ -361,6 +361,11 @@ else()
|
|||
endif()
|
||||
|
||||
add_executable(Kernel ${SOURCES})
|
||||
if (ENABLE_KERNEL_LTO)
|
||||
include(CheckIPOSupported)
|
||||
check_ipo_supported()
|
||||
set_property(TARGET Kernel PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
|
||||
endif()
|
||||
target_link_libraries(Kernel kernel_heap gcc stdc++)
|
||||
add_dependencies(Kernel boot kernel_heap)
|
||||
install(TARGETS Kernel RUNTIME DESTINATION boot)
|
||||
|
|
Loading…
Reference in a new issue