mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
Everywhere: Move all host tools into the Lagom/Tools subdirectory
This allows us to remove all the add_subdirectory calls from the top level CMakeLists.txt that referred to targets linking LagomCore. Segregating the host tools and Serenity targets helps us get to a place where the main Serenity build can simply use a CMake toolchain file rather than swapping all the compiler/sysroot variables after building host libraries and tools.
This commit is contained in:
parent
fb15cdcc10
commit
63956b36d0
Notes:
sideshowbarker
2024-07-18 05:10:33 +09:00
Author: https://github.com/ADKaster Commit: https://github.com/SerenityOS/serenity/commit/63956b36d06 Pull-request: https://github.com/SerenityOS/serenity/pull/9281 Reviewed-by: https://github.com/BenWiederhake
19 changed files with 18 additions and 22 deletions
|
@ -45,8 +45,6 @@ option(BUILD_LAGOM "Build parts of the system targeting the host OS for fuzzing/
|
|||
option(ENABLE_KERNEL_LTO "Build the kernel with link-time optimization" OFF)
|
||||
option(USE_CLANG_TOOLCHAIN "Build the kernel with the experimental Clang toolchain" OFF)
|
||||
|
||||
include(Meta/CMake/wasm_spec_tests.cmake)
|
||||
|
||||
add_custom_target(run
|
||||
COMMAND "${CMAKE_COMMAND}" -E env "SERENITY_ARCH=${SERENITY_ARCH}" "${SerenityOS_SOURCE_DIR}/Meta/run.sh"
|
||||
USES_TERMINAL
|
||||
|
@ -151,16 +149,6 @@ set(write_if_different ${CMAKE_SOURCE_DIR}/Meta/write-only-on-difference.sh)
|
|||
|
||||
add_subdirectory(Meta/Lagom)
|
||||
|
||||
if (ENABLE_UNDEFINED_SANITIZER)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
|
||||
endif()
|
||||
|
||||
add_subdirectory(Userland/DevTools/IPCCompiler)
|
||||
add_subdirectory(Userland/DevTools/StateMachineGenerator)
|
||||
add_subdirectory(Userland/Libraries/LibUnicode/CodeGenerators)
|
||||
add_subdirectory(Userland/Libraries/LibWeb/CodeGenerators)
|
||||
add_subdirectory(Meta/CMake/ConfigureComponents)
|
||||
|
||||
find_program(CCACHE_PROGRAM ccache)
|
||||
if(CCACHE_PROGRAM)
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
|
||||
|
@ -318,6 +306,8 @@ endif()
|
|||
add_link_options(--sysroot ${CMAKE_BINARY_DIR}/Root)
|
||||
add_link_options(-Wno-unused-command-line-argument)
|
||||
|
||||
include_directories(.)
|
||||
include_directories(Userland/Libraries)
|
||||
include_directories(Userland/Libraries/LibC)
|
||||
include_directories(Userland/Libraries/LibCrypt)
|
||||
include_directories(Userland/Libraries/LibM)
|
||||
|
@ -332,13 +322,12 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}/Userland)
|
|||
|
||||
# FIXME: vptr sanitizing requires.. intense ABI wrangling of std::type_info
|
||||
# And would be better served by porting ubsan_type_hash_itanium.cpp from compiler-rt
|
||||
# We don't set this along with the original fsanitize=undefined because for host tools, we can rely on
|
||||
# the host's libubsan to provide the ABI-specific vptr type cache.
|
||||
# This is not a problem for the Kernel, because it does not have RTTI enabled :^)
|
||||
if (ENABLE_UNDEFINED_SANITIZER)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sanitize=vptr")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -fno-sanitize=vptr")
|
||||
endif()
|
||||
|
||||
include(Meta/CMake/wasm_spec_tests.cmake)
|
||||
|
||||
add_custom_target(components ALL)
|
||||
option(BUILD_EVERYTHING "Build all optional components" ON)
|
||||
|
||||
|
|
|
@ -220,6 +220,12 @@ if (NOT APPLE)
|
|||
target_link_libraries(LagomCore crypt) # Core::Account uses crypt() but it's not in libcrypt on macOS
|
||||
endif()
|
||||
|
||||
# Code Generators and other host tools
|
||||
# We need to make sure not to build code generators for Fuzzer builds, as they already have their own main.cpp
|
||||
if (NOT ENABLE_OSS_FUZZ AND NOT ENABLE_FUZZER_SANITIZER)
|
||||
add_subdirectory(Tools)
|
||||
endif()
|
||||
|
||||
if (BUILD_LAGOM)
|
||||
# Lagom Libraries
|
||||
|
||||
|
@ -364,13 +370,8 @@ if (BUILD_LAGOM)
|
|||
)
|
||||
|
||||
# Unicode
|
||||
# We need to make sure not to build code generators for Fuzzer builds, as they already have their own main.cpp
|
||||
# Don't include UnicodeData for Fuzzer builds, we didn't build the CodeGenerators
|
||||
if (NOT ENABLE_OSS_FUZZ AND NOT ENABLE_FUZZER_SANITIZER)
|
||||
# FIXME: Make this logic smarter in 4594
|
||||
if (NOT CMAKE_SOURCE_DIR STREQUAL SERENITY_PROJECT_ROOT)
|
||||
set(write_if_different ${CMAKE_CURRENT_SOURCE_DIR}/../write-only-on-difference.sh)
|
||||
add_subdirectory(../../Userland/Libraries/LibUnicode/CodeGenerators ${CMAKE_CURRENT_BINARY_DIR}/LibUnicode/CodeGenerators)
|
||||
endif()
|
||||
include(${SERENITY_PROJECT_ROOT}/Meta/CMake/unicode_data.cmake)
|
||||
else()
|
||||
set(ENABLE_UNICODE_DATABASE_DOWNLOAD OFF)
|
||||
|
|
2
Meta/Lagom/Tools/CMakeLists.txt
Normal file
2
Meta/Lagom/Tools/CMakeLists.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
add_subdirectory(ConfigureComponents)
|
||||
add_subdirectory(CodeGenerators)
|
4
Meta/Lagom/Tools/CodeGenerators/CMakeLists.txt
Normal file
4
Meta/Lagom/Tools/CodeGenerators/CMakeLists.txt
Normal file
|
@ -0,0 +1,4 @@
|
|||
add_subdirectory(IPCCompiler)
|
||||
add_subdirectory(LibUnicode)
|
||||
add_subdirectory(LibWeb)
|
||||
add_subdirectory(StateMachineGenerator)
|
Loading…
Reference in a new issue