Ladybird+Meta: Extract AK into its own library on Lagom

We currently bundle AK with LibCore on Lagom. This means that to use AK,
all libraries must also depend on LibCore. This will create circular
dependencies when we create LibURL, as LibURL will depend on LibUnicode,
which will depend on LibCore, which will depend on LibURL.
This commit is contained in:
Timothy Flynn 2024-01-21 18:24:43 -05:00 committed by Tim Flynn
parent 1e7b06aa11
commit 5945cdc054
Notes: sideshowbarker 2024-07-17 04:03:27 +09:00
8 changed files with 75 additions and 78 deletions

View file

@ -175,7 +175,7 @@ target_sources(ladybird PUBLIC FILE_SET ladybird TYPE HEADERS
BASE_DIRS ${SERENITY_SOURCE_DIR} BASE_DIRS ${SERENITY_SOURCE_DIR}
FILES ${LADYBIRD_HEADERS} FILES ${LADYBIRD_HEADERS}
) )
target_link_libraries(ladybird PRIVATE LibCore LibFileSystem LibGfx LibImageDecoderClient LibIPC LibJS LibMain LibWeb LibWebView LibProtocol) target_link_libraries(ladybird PRIVATE AK LibCore LibFileSystem LibGfx LibImageDecoderClient LibIPC LibJS LibMain LibWeb LibWebView LibProtocol)
target_include_directories(ladybird PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(ladybird PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_include_directories(ladybird PRIVATE ${SERENITY_SOURCE_DIR}/Userland/) target_include_directories(ladybird PRIVATE ${SERENITY_SOURCE_DIR}/Userland/)
@ -189,7 +189,7 @@ add_executable(headless-browser
Utilities.cpp) Utilities.cpp)
target_include_directories(headless-browser PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(headless-browser PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(headless-browser PRIVATE LibWeb LibWebView LibWebSocket LibCrypto LibFileSystem LibGemini LibHTTP LibImageDecoderClient LibJS LibGfx LibMain LibTLS LibIPC LibDiff LibProtocol) target_link_libraries(headless-browser PRIVATE AK LibCore LibWeb LibWebView LibWebSocket LibCrypto LibFileSystem LibGemini LibHTTP LibImageDecoderClient LibJS LibGfx LibMain LibTLS LibIPC LibDiff LibProtocol)
if (ANDROID) if (ANDROID)
include(cmake/AndroidExtras.cmake) include(cmake/AndroidExtras.cmake)

View file

@ -224,9 +224,11 @@ function(lagom_lib target_name fs_name)
OUTPUT_NAME lagom-${fs_name} OUTPUT_NAME lagom-${fs_name}
) )
target_link_libraries(${target_name} PRIVATE ${LAGOM_LIBRARY_LIBS}) target_link_libraries(${target_name} PRIVATE ${LAGOM_LIBRARY_LIBS})
if (NOT ${target_name} STREQUAL "LibCore")
target_link_libraries(${target_name} PRIVATE LibCore) if (NOT "${target_name}" STREQUAL "AK")
target_link_libraries(${target_name} PRIVATE AK)
endif() endif()
# FIXME: Clean these up so that we don't need so many include dirs # FIXME: Clean these up so that we don't need so many include dirs
target_include_directories(${target_name} INTERFACE target_include_directories(${target_name} INTERFACE
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/Services> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/Services>
@ -262,7 +264,7 @@ function(lagom_test source)
get_filename_component(LAGOM_TEST_NAME ${source} NAME_WE) get_filename_component(LAGOM_TEST_NAME ${source} NAME_WE)
endif() endif()
add_executable(${LAGOM_TEST_NAME} ${source}) add_executable(${LAGOM_TEST_NAME} ${source})
target_link_libraries(${LAGOM_TEST_NAME} PRIVATE LibCore LibFileSystem LibTest LibTestMain ${LAGOM_TEST_LIBS}) target_link_libraries(${LAGOM_TEST_NAME} PRIVATE AK LibCore LibFileSystem LibTest LibTestMain ${LAGOM_TEST_LIBS})
add_test( add_test(
NAME ${LAGOM_TEST_NAME} NAME ${LAGOM_TEST_NAME}
COMMAND ${LAGOM_TEST_NAME} COMMAND ${LAGOM_TEST_NAME}
@ -275,7 +277,7 @@ function(lagom_utility name)
cmake_parse_arguments(LAGOM_UTILITY "" "" "SOURCES;LIBS" ${ARGN}) cmake_parse_arguments(LAGOM_UTILITY "" "" "SOURCES;LIBS" ${ARGN})
add_executable("${name}" ${LAGOM_UTILITY_SOURCES}) add_executable("${name}" ${LAGOM_UTILITY_SOURCES})
target_link_libraries("${name}" PRIVATE LibCore ${LAGOM_UTILITY_LIBS}) target_link_libraries("${name}" PRIVATE AK LibCore ${LAGOM_UTILITY_LIBS})
endfunction() endfunction()
function(serenity_test test_src sub_dir) function(serenity_test test_src sub_dir)
@ -345,9 +347,11 @@ add_library(NoCoverage INTERFACE)
# "install" these special targets to placate CMake # "install" these special targets to placate CMake
install(TARGETS LibC LibCrypt LibSystem NoCoverage EXPORT LagomTargets) install(TARGETS LibC LibCrypt LibSystem NoCoverage EXPORT LagomTargets)
# AK/LibCore # AK
# Note: AK is included in LibCore for the host build instead of LibC per the target build
add_serenity_subdirectory(AK) add_serenity_subdirectory(AK)
lagom_lib(AK ak SOURCES ${AK_SOURCES})
# LibCore
add_serenity_subdirectory(Userland/Libraries/LibCore) add_serenity_subdirectory(Userland/Libraries/LibCore)
target_link_libraries(LibCore PRIVATE Threads::Threads) target_link_libraries(LibCore PRIVATE Threads::Threads)
if (${CMAKE_SYSTEM_NAME} MATCHES "NetBSD") if (${CMAKE_SYSTEM_NAME} MATCHES "NetBSD")
@ -366,7 +370,6 @@ if (HAIKU)
# Haiku has networking related functions in the network library # Haiku has networking related functions in the network library
target_link_libraries(LibCore PRIVATE network) target_link_libraries(LibCore PRIVATE network)
endif() endif()
target_sources(LibCore PRIVATE ${AK_SOURCES})
# LibMain # LibMain
add_serenity_subdirectory(Userland/Libraries/LibMain) add_serenity_subdirectory(Userland/Libraries/LibMain)
@ -499,7 +502,7 @@ if (BUILD_LAGOM)
list(TRANSFORM LIBGUI_SOURCES PREPEND "${SERENITY_PROJECT_ROOT}/Userland/Libraries/LibGUI/") list(TRANSFORM LIBGUI_SOURCES PREPEND "${SERENITY_PROJECT_ROOT}/Userland/Libraries/LibGUI/")
lagom_lib(LibGUI gui lagom_lib(LibGUI gui
SOURCES ${LIBGUI_SOURCES} SOURCES ${LIBGUI_SOURCES}
LIBS LibGfx LibSyntax) LIBS LibCore LibGfx LibSyntax)
# FIXME: How about we don't include Kernel/API from random high-level libraries? # FIXME: How about we don't include Kernel/API from random high-level libraries?
install(FILES ${SERENITY_PROJECT_ROOT}/Kernel/API/KeyCode.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/Kernel/API") install(FILES ${SERENITY_PROJECT_ROOT}/Kernel/API/KeyCode.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/Kernel/API")
@ -563,7 +566,7 @@ if (BUILD_LAGOM)
lagom_utility(js SOURCES ../../Userland/Utilities/js.cpp LIBS LibCrypto LibJS LibLine LibLocale LibMain LibTextCodec Threads::Threads) lagom_utility(js SOURCES ../../Userland/Utilities/js.cpp LIBS LibCrypto LibJS LibLine LibLocale LibMain LibTextCodec Threads::Threads)
if (EMSCRIPTEN) if (EMSCRIPTEN)
lagom_utility(libjs Wasm/js_repl.cpp LIBS LibJS LibLocale LibTimeZone LibUnicode) lagom_utility(libjs SOURCES Wasm/js_repl.cpp LIBS LibJS LibLocale LibTimeZone LibUnicode)
target_link_options(libjs PRIVATE target_link_options(libjs PRIVATE
-sEXPORTED_FUNCTIONS=_initialize_repl,_execute -sEXPORTED_FUNCTIONS=_initialize_repl,_execute
-sEXPORTED_RUNTIME_METHODS=allocateUTF8 -sEXPORTED_RUNTIME_METHODS=allocateUTF8
@ -612,7 +615,7 @@ if (BUILD_LAGOM)
LibTest LibTest
${LIBTEST_SOURCES} ${LIBTEST_SOURCES}
) )
target_link_libraries(LibTest PRIVATE LibCore LibFileSystem) target_link_libraries(LibTest PRIVATE AK LibCore LibFileSystem)
set_target_properties(LibTest PROPERTIES OUTPUT_NAME lagom-test) set_target_properties(LibTest PROPERTIES OUTPUT_NAME lagom-test)
add_library( add_library(
LibTestMain LibTestMain
@ -677,14 +680,14 @@ if (BUILD_LAGOM)
# test-jpeg-roundtrip # test-jpeg-roundtrip
add_executable(test-jpeg-roundtrip add_executable(test-jpeg-roundtrip
../../Userland/Utilities/test-jpeg-roundtrip.cpp) ../../Userland/Utilities/test-jpeg-roundtrip.cpp)
target_link_libraries(test-jpeg-roundtrip LibGfx LibMain) target_link_libraries(test-jpeg-roundtrip AK LibGfx LibMain)
# JavaScriptTestRunner + LibTest tests # JavaScriptTestRunner + LibTest tests
# test-js # test-js
add_executable(test-js add_executable(test-js
../../Tests/LibJS/test-js.cpp ../../Tests/LibJS/test-js.cpp
../../Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp) ../../Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp)
target_link_libraries(test-js LibCore LibFileSystem LibTest LibJS) target_link_libraries(test-js AK LibCore LibFileSystem LibTest LibJS)
add_test( add_test(
NAME JS NAME JS
COMMAND test-js --show-progress=false COMMAND test-js --show-progress=false
@ -699,7 +702,7 @@ if (BUILD_LAGOM)
add_executable(test-spreadsheet add_executable(test-spreadsheet
../../Tests/Spreadsheet/test-spreadsheet.cpp ../../Tests/Spreadsheet/test-spreadsheet.cpp
../../Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp) ../../Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp)
target_link_libraries(test-spreadsheet LibCore LibFileSystem LibTest LibJS) target_link_libraries(test-spreadsheet AK LibCore LibFileSystem LibTest LibJS)
add_test( add_test(
NAME Spreadsheet NAME Spreadsheet
COMMAND test-spreadsheet --show-progress=false COMMAND test-spreadsheet --show-progress=false
@ -710,7 +713,7 @@ if (BUILD_LAGOM)
add_executable(test-wasm add_executable(test-wasm
../../Tests/LibWasm/test-wasm.cpp ../../Tests/LibWasm/test-wasm.cpp
../../Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp) ../../Userland/Libraries/LibTest/JavaScriptTestRunnerMain.cpp)
target_link_libraries(test-wasm LibCore LibFileSystem LibTest LibWasm LibJS LibCrypto) target_link_libraries(test-wasm AK LibCore LibFileSystem LibTest LibWasm LibJS LibCrypto)
add_test( add_test(
NAME WasmParser NAME WasmParser
COMMAND test-wasm --show-progress=false ${CMAKE_CURRENT_BINARY_DIR}/Userland/Libraries/LibWasm/Tests COMMAND test-wasm --show-progress=false ${CMAKE_CURRENT_BINARY_DIR}/Userland/Libraries/LibWasm/Tests

View file

@ -24,7 +24,7 @@ add_executable(MacPDF MACOSX_BUNDLE
target_compile_options(MacPDF PRIVATE target_compile_options(MacPDF PRIVATE
-fobjc-arc -fobjc-arc
) )
target_link_libraries(MacPDF PRIVATE LibCore LibGfx LibPDF) target_link_libraries(MacPDF PRIVATE AK LibCore LibGfx LibPDF)
target_link_libraries(MacPDF PRIVATE target_link_libraries(MacPDF PRIVATE
"-framework Cocoa" "-framework Cocoa"
"-framework UniformTypeIdentifiers" "-framework UniformTypeIdentifiers"
@ -39,7 +39,7 @@ set_target_properties(MacPDF PROPERTIES
) )
# Normally you'd set `RESOURCE "${RESOURCES}"` on the MacPDF target properties # Normally you'd set `RESOURCE "${RESOURCES}"` on the MacPDF target properties
# and add `"${RESOURCES}" to the sources in add_executable() # and add `"${RESOURCES}" to the sources in add_executable()
# and CMake would add build steps to compile the xib files to nib files and # and CMake would add build steps to compile the xib files to nib files and
# add them to the bundle. # add them to the bundle.
# But with CMake's ninja generator that seems to not work, so do it manually. # But with CMake's ninja generator that seems to not work, so do it manually.
@ -51,7 +51,7 @@ foreach(xib ${RESOURCES})
# FIXME: This is gross! It makes the link at least as slow as compiling all xib files. # FIXME: This is gross! It makes the link at least as slow as compiling all xib files.
# Better to have a separate command for the compiles and to only do the copying in the postbuild. # Better to have a separate command for the compiles and to only do the copying in the postbuild.
add_custom_command(TARGET MacPDF POST_BUILD add_custom_command(TARGET MacPDF POST_BUILD
COMMAND ${IBTOOL} --errors --warnings --notices --output-format human-readable-text COMMAND ${IBTOOL} --errors --warnings --notices --output-format human-readable-text
--compile "$<TARGET_BUNDLE_DIR:MacPDF>/Contents/Resources/${nib}" --compile "$<TARGET_BUNDLE_DIR:MacPDF>/Contents/Resources/${nib}"
"${CMAKE_CURRENT_SOURCE_DIR}/${xib}" "${CMAKE_CURRENT_SOURCE_DIR}/${xib}"
COMMENT "Compiling ${CMAKE_CURRENT_SOURCE_DIR}/${xib}.xib") COMMENT "Compiling ${CMAKE_CURRENT_SOURCE_DIR}/${xib}.xib")

View file

@ -6,18 +6,18 @@ function(add_simple_fuzzer name)
configure_file("${name}.dict" "${FUZZER_DICTIONARY_DIRECTORY}/${name}.dict" COPYONLY) configure_file("${name}.dict" "${FUZZER_DICTIONARY_DIRECTORY}/${name}.dict" COPYONLY)
endif() endif()
target_link_libraries(${name} target_link_libraries(${name}
PUBLIC ${ARGN} LibCore) PUBLIC ${ARGN} AK LibCore)
elseif (ENABLE_FUZZERS_LIBFUZZER) elseif (ENABLE_FUZZERS_LIBFUZZER)
target_compile_options(${name} target_compile_options(${name}
PRIVATE $<$<CXX_COMPILER_ID:Clang>:-g -O1 -fsanitize=fuzzer> PRIVATE $<$<CXX_COMPILER_ID:Clang>:-g -O1 -fsanitize=fuzzer>
) )
target_link_libraries(${name} target_link_libraries(${name}
PUBLIC ${ARGN} LibCore PUBLIC ${ARGN} AK LibCore
PRIVATE $<$<CXX_COMPILER_ID:Clang>:-fsanitize=fuzzer> PRIVATE $<$<CXX_COMPILER_ID:Clang>:-fsanitize=fuzzer>
) )
else() else()
target_sources(${name} PRIVATE "EntryShim.cpp") target_sources(${name} PRIVATE "EntryShim.cpp")
target_link_libraries(${name} PUBLIC ${ARGN} LibCore) target_link_libraries(${name} PUBLIC ${ARGN} AK LibCore)
endif() endif()
endfunction() endfunction()
@ -36,7 +36,7 @@ target_compile_options(FuzzilliJs
PRIVATE $<$<CXX_COMPILER_ID:Clang>:-g -O1 -fsanitize-coverage=trace-pc-guard> PRIVATE $<$<CXX_COMPILER_ID:Clang>:-g -O1 -fsanitize-coverage=trace-pc-guard>
) )
target_link_libraries(FuzzilliJs target_link_libraries(FuzzilliJs
PUBLIC LibCore LibJS PUBLIC AK LibCore LibJS
PRIVATE $<$<CXX_COMPILER_ID:Clang>:-fsanitize-coverage=trace-pc-guard> PRIVATE $<$<CXX_COMPILER_ID:Clang>:-fsanitize-coverage=trace-pc-guard>
) )
endif() endif()

View file

@ -3,7 +3,7 @@ function(lagom_tool tool)
add_executable(${tool} ${SOURCES} ${LAGOM_TOOL_SOURCES}) add_executable(${tool} ${SOURCES} ${LAGOM_TOOL_SOURCES})
# alias for parity with exports # alias for parity with exports
add_executable(Lagom::${tool} ALIAS ${tool}) add_executable(Lagom::${tool} ALIAS ${tool})
target_link_libraries(${tool} LibCore LibFileSystem ${LAGOM_TOOL_LIBS}) target_link_libraries(${tool} AK LibCore LibFileSystem ${LAGOM_TOOL_LIBS})
install( install(
TARGETS ${tool} TARGETS ${tool}
EXPORT LagomTargets EXPORT LagomTargets

View file

@ -7,20 +7,24 @@ config("ak_headers") {
] ]
} }
source_set("AK") { shared_library("AK") {
output_name = "ak"
public_configs = [ ":ak_headers" ] public_configs = [ ":ak_headers" ]
public_deps = [ ":ak_debug_gen" ] public_deps = [ ":ak_debug_gen" ]
# NOTE: Headers only! # FIXME: Split out non-kernel sources to their own set
sources = [ sources = [
"AllOf.h", "AllOf.h",
"AnyOf.h", "AnyOf.h",
"ArbitrarySizedEnum.h", "ArbitrarySizedEnum.h",
"Array.h", "Array.h",
"Assertions.cpp",
"Assertions.h", "Assertions.h",
"Atomic.h", "Atomic.h",
"AtomicRefCounted.h", "AtomicRefCounted.h",
"Badge.h", "Badge.h",
"Base64.cpp",
"Base64.h", "Base64.h",
"BigIntBase.h", "BigIntBase.h",
"BinaryBufferWriter.h", "BinaryBufferWriter.h",
@ -35,21 +39,27 @@ source_set("AK") {
"BumpAllocator.h", "BumpAllocator.h",
"ByteBuffer.h", "ByteBuffer.h",
"ByteReader.h", "ByteReader.h",
"ByteString.cpp",
"ByteString.h", "ByteString.h",
"CharacterTypes.h", "CharacterTypes.h",
"Checked.h", "Checked.h",
"CheckedFormatString.h", "CheckedFormatString.h",
"CircularBuffer.cpp",
"CircularBuffer.h", "CircularBuffer.h",
"CircularDeque.h", "CircularDeque.h",
"CircularQueue.h", "CircularQueue.h",
"Complex.h", "Complex.h",
"Concepts.h", "Concepts.h",
"ConstrainedStream.cpp",
"ConstrainedStream.h", "ConstrainedStream.h",
"CountingStream.cpp",
"CountingStream.h", "CountingStream.h",
"DOSPackedTime.cpp",
"DOSPackedTime.h", "DOSPackedTime.h",
"DateConstants.h", "DateConstants.h",
"DefaultDelete.h", "DefaultDelete.h",
"Demangle.h", "Demangle.h",
"DeprecatedFlyString.cpp",
"DeprecatedFlyString.h", "DeprecatedFlyString.h",
"Diagnostics.h", "Diagnostics.h",
"DisjointChunks.h", "DisjointChunks.h",
@ -57,23 +67,30 @@ source_set("AK") {
"DoublyLinkedList.h", "DoublyLinkedList.h",
"Endian.h", "Endian.h",
"EnumBits.h", "EnumBits.h",
"Error.cpp",
"Error.h", "Error.h",
"FPControl.h", "FPControl.h",
"Find.h", "Find.h",
"FixedArray.h", "FixedArray.h",
"FixedPoint.h", "FixedPoint.h",
"FloatingPoint.h", "FloatingPoint.h",
"FloatingPointStringConversions.cpp",
"FloatingPointStringConversions.h", "FloatingPointStringConversions.h",
"FlyString.cpp",
"FlyString.h", "FlyString.h",
"Format.cpp",
"Format.h", "Format.h",
"Forward.h", "Forward.h",
"Function.h", "Function.h",
"FuzzyMatch.cpp",
"FuzzyMatch.h", "FuzzyMatch.h",
"GenericLexer.cpp",
"GenericLexer.h", "GenericLexer.h",
"GenericShorthands.h", "GenericShorthands.h",
"HashFunctions.h", "HashFunctions.h",
"HashMap.h", "HashMap.h",
"HashTable.h", "HashTable.h",
"Hex.cpp",
"Hex.h", "Hex.h",
"IDAllocator.h", "IDAllocator.h",
"IPv4Address.h", "IPv4Address.h",
@ -88,26 +105,34 @@ source_set("AK") {
"Iterator.h", "Iterator.h",
"JsonArray.h", "JsonArray.h",
"JsonArraySerializer.h", "JsonArraySerializer.h",
"JsonObject.cpp",
"JsonObject.h", "JsonObject.h",
"JsonObjectSerializer.h", "JsonObjectSerializer.h",
"JsonParser.cpp",
"JsonParser.h", "JsonParser.h",
"JsonPath.cpp",
"JsonPath.h", "JsonPath.h",
"JsonValue.cpp",
"JsonValue.h", "JsonValue.h",
"LEB128.h", "LEB128.h",
"LexicalPath.cpp",
"LexicalPath.h", "LexicalPath.h",
"MACAddress.h", "MACAddress.h",
"Math.h", "Math.h",
"MaybeOwned.h", "MaybeOwned.h",
"MemMem.h", "MemMem.h",
"Memory.h", "Memory.h",
"MemoryStream.cpp",
"MemoryStream.h", "MemoryStream.h",
"NeverDestroyed.h", "NeverDestroyed.h",
"NoAllocationGuard.h", "NoAllocationGuard.h",
"Noncopyable.h", "Noncopyable.h",
"NonnullOwnPtr.h", "NonnullOwnPtr.h",
"NonnullRefPtr.h", "NonnullRefPtr.h",
"NumberFormat.cpp",
"NumberFormat.h", "NumberFormat.h",
"NumericLimits.h", "NumericLimits.h",
"OptionParser.cpp",
"OptionParser.h", "OptionParser.h",
"Optional.h", "Optional.h",
"OwnPtr.h", "OwnPtr.h",
@ -117,6 +142,7 @@ source_set("AK") {
"Queue.h", "Queue.h",
"QuickSelect.h", "QuickSelect.h",
"QuickSort.h", "QuickSort.h",
"Random.cpp",
"Random.h", "Random.h",
"RecursionDecision.h", "RecursionDecision.h",
"RedBlackTree.h", "RedBlackTree.h",
@ -134,26 +160,38 @@ source_set("AK") {
"Singleton.h", "Singleton.h",
"SinglyLinkedList.h", "SinglyLinkedList.h",
"SinglyLinkedListSizePolicy.h", "SinglyLinkedListSizePolicy.h",
"SipHash.cpp",
"SipHash.h", "SipHash.h",
"Slugify.cpp",
"Slugify.h", "Slugify.h",
"SourceGenerator.h", "SourceGenerator.h",
"SourceLocation.h", "SourceLocation.h",
"Span.h", "Span.h",
"Stack.h", "Stack.h",
"StackInfo.cpp",
"StackInfo.h", "StackInfo.h",
"Statistics.h", "Statistics.h",
"StdLibExtraDetails.h", "StdLibExtraDetails.h",
"StdLibExtras.h", "StdLibExtras.h",
"Stream.cpp",
"Stream.h", "Stream.h",
"String.cpp",
"String.h", "String.h",
"StringBase.cpp",
"StringBase.h", "StringBase.h",
"StringBuilder.cpp",
"StringBuilder.h", "StringBuilder.h",
"StringFloatingPointConversions.cpp",
"StringFloatingPointConversions.h", "StringFloatingPointConversions.h",
"StringHash.h", "StringHash.h",
"StringImpl.cpp",
"StringImpl.h", "StringImpl.h",
"StringUtils.cpp",
"StringUtils.h", "StringUtils.h",
"StringView.cpp",
"StringView.h", "StringView.h",
"TemporaryChange.h", "TemporaryChange.h",
"Time.cpp",
"Time.h", "Time.h",
"Traits.h", "Traits.h",
"Trie.h", "Trie.h",
@ -166,74 +204,30 @@ source_set("AK") {
"UBSanitizer.h", "UBSanitizer.h",
"UFixedBigInt.h", "UFixedBigInt.h",
"UFixedBigIntDivision.h", "UFixedBigIntDivision.h",
"URL.cpp",
"URL.h", "URL.h",
"URLParser.cpp",
"URLParser.h", "URLParser.h",
"UUID.cpp",
"UUID.h", "UUID.h",
"UnicodeUtils.h", "UnicodeUtils.h",
"Userspace.h", "Userspace.h",
"Utf16View.cpp",
"Utf16View.h", "Utf16View.h",
"Utf32View.cpp",
"Utf32View.h", "Utf32View.h",
"Utf8View.cpp",
"Utf8View.h", "Utf8View.h",
"Variant.h", "Variant.h",
"Vector.h", "Vector.h",
"WeakPtr.h", "WeakPtr.h",
"Weakable.h", "Weakable.h",
"kmalloc.cpp",
"kmalloc.h", "kmalloc.h",
"kstdio.h", "kstdio.h",
] ]
} }
source_set("sources") {
deps = [ ":AK" ]
# FIXME: Split out non-kernel sources to their own set
sources = [
"Assertions.cpp",
"Base64.cpp",
"ByteString.cpp",
"CircularBuffer.cpp",
"ConstrainedStream.cpp",
"CountingStream.cpp",
"DOSPackedTime.cpp",
"DeprecatedFlyString.cpp",
"Error.cpp",
"FloatingPointStringConversions.cpp",
"FlyString.cpp",
"Format.cpp",
"FuzzyMatch.cpp",
"GenericLexer.cpp",
"Hex.cpp",
"JsonObject.cpp",
"JsonParser.cpp",
"JsonPath.cpp",
"JsonValue.cpp",
"LexicalPath.cpp",
"MemoryStream.cpp",
"NumberFormat.cpp",
"OptionParser.cpp",
"Random.cpp",
"SipHash.cpp",
"Slugify.cpp",
"StackInfo.cpp",
"Stream.cpp",
"String.cpp",
"StringBase.cpp",
"StringBuilder.cpp",
"StringFloatingPointConversions.cpp",
"StringImpl.cpp",
"StringUtils.cpp",
"StringView.cpp",
"Time.cpp",
"URL.cpp",
"URLParser.cpp",
"UUID.cpp",
"Utf16View.cpp",
"Utf32View.cpp",
"Utf8View.cpp",
"kmalloc.cpp",
]
}
write_cmake_config("ak_debug_gen") { write_cmake_config("ak_debug_gen") {
input = "Debug.h.in" input = "Debug.h.in"
output = "$root_gen_dir/AK/Debug.h" output = "$root_gen_dir/AK/Debug.h"

View file

@ -144,6 +144,7 @@ executable("headless-browser") {
include_dirs = [ "//Userland/Services" ] include_dirs = [ "//Userland/Services" ]
configs += [ ":ladybird_config" ] configs += [ ":ladybird_config" ]
deps = [ deps = [
"//AK",
"//Userland/Libraries/LibCore", "//Userland/Libraries/LibCore",
"//Userland/Libraries/LibCrypto", "//Userland/Libraries/LibCrypto",
"//Userland/Libraries/LibDiff", "//Userland/Libraries/LibDiff",

View file

@ -136,7 +136,6 @@ shared_library("LibCore") {
deps = [ deps = [
":filewatcher", ":filewatcher",
":sources", ":sources",
"//AK:sources",
"//Meta/gn/build/libs/crypt", "//Meta/gn/build/libs/crypt",
"//Meta/gn/build/libs/pthread", "//Meta/gn/build/libs/pthread",
"//Userland/Libraries/LibSystem", "//Userland/Libraries/LibSystem",