Meta: Add gn rules for dependencies of LibWeb

There's a lot of them, and LibWeb is a massive set of files to build as
well, so let's add these first :^).
This commit is contained in:
Andrew Kaster 2023-05-05 12:57:01 -06:00 committed by Andrew Kaster
parent 13a5606cdc
commit 7b3d0fb002
Notes: sideshowbarker 2024-07-17 07:43:44 +09:00
15 changed files with 427 additions and 0 deletions

View file

@ -0,0 +1,29 @@
# TODO: AudioClient IPC files for serenity
shared_library("LibAudio") {
include_dirs = [ "//Userland/Libraries" ]
sources = [
"FlacLoader.cpp",
"GenericTypes.cpp",
"Loader.cpp",
"MP3Loader.cpp",
"Metadata.cpp",
"QOALoader.cpp",
"QOATypes.cpp",
"RIFFTypes.cpp",
"SampleFormats.cpp",
"UserSampleQueue.cpp",
"VorbisComment.cpp",
"WavLoader.cpp",
"WavWriter.cpp",
]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibCrypto",
"//Userland/Libraries/LibIPC",
"//Userland/Libraries/LibThreading",
"//Userland/Libraries/LibUnicode",
]
output_name = "audio"
}

View file

@ -0,0 +1,19 @@
shared_library("LibCompress") {
output_name = "compress"
include_dirs = [ "//Userland/Libraries" ]
sources = [
"Brotli.cpp",
"BrotliDictionary.cpp",
"Deflate.cpp",
"Gzip.cpp",
"Lzma.cpp",
"Lzma2.cpp",
"Xz.cpp",
"Zlib.cpp",
]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibCrypto",
]
}

View file

@ -0,0 +1,23 @@
# FIXME: Add serenity-only deps and sources
shared_library("LibGUI") {
output_name = "gui"
include_dirs = [
"//Userland/Libraries",
"//Userland",
]
sources = [
"GML/Lexer.cpp",
"GML/Parser.cpp",
"GML/SyntaxHighlighter.cpp",
"Icon.cpp",
"Model.cpp",
"ModelIndex.cpp",
]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibGfx",
"//Userland/Libraries/LibSyntax",
]
}

View file

@ -0,0 +1,16 @@
shared_library("LibGemini") {
output_name = "gemini"
include_dirs = [ "//Userland/Libraries" ]
sources = [
"Document.cpp",
"GeminiRequest.cpp",
"GeminiResponse.cpp",
"Job.cpp",
"Line.cpp",
]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibTLS",
]
}

View file

@ -0,0 +1,16 @@
shared_library("LibHTTP") {
output_name = "http"
include_dirs = [ "//Userland/Libraries" ]
sources = [
"HttpRequest.cpp",
"HttpResponse.cpp",
"HttpsJob.cpp",
"Job.cpp",
]
deps = [
"//AK",
"//Userland/Libraries/LibCompress",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibTLS",
]
}

View file

@ -0,0 +1,13 @@
shared_library("LibIDL") {
output_name = "idl"
include_dirs = [ "//Userland/Libraries" ]
sources = [
"IDLParser.cpp",
"Types.cpp",
]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibFileSystem",
]
}

View file

@ -0,0 +1,24 @@
shared_library("LibMarkdown") {
output_name = "markdown"
include_dirs = [ "//Userland/Libraries" ]
sources = [
"BlockQuote.cpp",
"CodeBlock.cpp",
"CommentBlock.cpp",
"ContainerBlock.cpp",
"Document.cpp",
"Heading.cpp",
"HorizontalRule.cpp",
"LineIterator.cpp",
"List.cpp",
"Paragraph.cpp",
"Table.cpp",
"Text.cpp",
]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibJS",
"//Userland/Libraries/LibRegex",
]
}

View file

@ -0,0 +1,74 @@
import("//Meta/gn/build/compiled_action.gni")
compiled_action("SQLClientEndpoint") {
tool = "//Meta/Lagom/Tools/CodeGenerators/IPCCompiler"
inputs = [ "//Userland/Services/SQLServer/SQLClient.ipc" ]
outputs = [ "$root_gen_dir/SQLServer/SQLClientEndpoint.h" ]
args = [
rebase_path(inputs[0], root_build_dir),
"-o",
rebase_path(outputs[0], root_build_dir),
]
}
compiled_action("SQLServerEndpoint") {
tool = "//Meta/Lagom/Tools/CodeGenerators/IPCCompiler"
inputs = [ "//Userland/Services/SQLServer/SQLServer.ipc" ]
outputs = [ "$root_gen_dir/SQLServer/SQLServerEndpoint.h" ]
args = [
rebase_path(inputs[0], root_build_dir),
"-o",
rebase_path(outputs[0], root_build_dir),
]
}
shared_library("LibSQL") {
output_name = "sql"
include_dirs = [
"//Userland/Libraries",
"//Userland",
]
sources = [
"AST/CreateSchema.cpp",
"AST/CreateTable.cpp",
"AST/Delete.cpp",
"AST/Describe.cpp",
"AST/Expression.cpp",
"AST/Insert.cpp",
"AST/Lexer.cpp",
"AST/Parser.cpp",
"AST/Select.cpp",
"AST/Statement.cpp",
"AST/SyntaxHighlighter.cpp",
"AST/Token.cpp",
"AST/Update.cpp",
"BTree.cpp",
"BTreeIterator.cpp",
"Database.cpp",
"HashIndex.cpp",
"Heap.cpp",
"Index.cpp",
"Key.cpp",
"Meta.cpp",
"Result.cpp",
"ResultSet.cpp",
"Row.cpp",
"SQLClient.cpp",
"Serializer.cpp",
"TreeNode.cpp",
"Tuple.cpp",
"Value.cpp",
]
sources += get_target_outputs(":SQLClientEndpoint") +
get_target_outputs(":SQLServerEndpoint")
deps = [
":SQLClientEndpoint",
":SQLServerEndpoint",
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibFileSystem",
"//Userland/Libraries/LibIPC",
"//Userland/Libraries/LibRegex",
"//Userland/Libraries/LibSyntax",
]
}

View file

@ -0,0 +1,43 @@
import("//Meta/gn/build/download_cache.gni")
import("//Meta/gn/build/download_file.gni")
declare_args() {
# If true, Download root CA certificate bundle from curl.se
# Data will be downloaded to $cache_path/CACERT and used by LibTLS
enable_cacert_download = true
}
cacert_cache = cache_path + "CACERT/"
if (enable_cacert_download) {
download_file("ca_certificates_download") {
version = "2023-01-10"
url = "https://curl.se/ca/cacert-" + version + ".pem"
output = "$root_build_dir/cacert.pem"
version_file = cacert_cache + "version.txt"
}
# FIXME: Copy file to /etc/cacert.pem on serenity
}
shared_library("LibTLS") {
output_name = "tls"
include_dirs = [ "//Userland/Libraries" ]
cflags_cc = [ "-Wvla" ]
sources = [
"Certificate.cpp",
"Handshake.cpp",
"HandshakeCertificate.cpp",
"HandshakeClient.cpp",
"HandshakeServer.cpp",
"Record.cpp",
"Socket.cpp",
"TLSv12.cpp",
]
deps = [
":ca_certificates_download",
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibCrypto",
"//Userland/Libraries/LibFileSystem",
]
}

View file

@ -0,0 +1,12 @@
shared_library("LibThreading") {
output_name = "threading"
include_dirs = [ "//Userland/Libraries" ]
sources = [
"BackgroundAction.cpp",
"Thread.cpp",
]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
]
}

View file

@ -0,0 +1,27 @@
shared_library("LibVideo") {
output_name = "video"
include_dirs = [ "//Userland/Libraries" ]
deps = [
"//AK",
"//Userland/Libraries/LibAudio",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibGfx",
"//Userland/Libraries/LibIPC",
"//Userland/Libraries/LibThreading",
]
sources = [
"Color/ColorConverter.cpp",
"Color/ColorPrimaries.cpp",
"Color/TransferCharacteristics.cpp",
"Containers/Matroska/MatroskaDemuxer.cpp",
"Containers/Matroska/Reader.cpp",
"PlaybackManager.cpp",
"VP9/Decoder.cpp",
"VP9/Parser.cpp",
"VP9/ProbabilityTables.cpp",
"VP9/SyntaxElementCounter.cpp",
"VP9/TreeParser.cpp",
"VideoFrame.cpp",
]
}

View file

@ -0,0 +1,27 @@
declare_args() {
# If true, download wasm spec tests from github.
# Tests will be used by test-wasm to verify spec compliance
include_wasm_spec_tests = false
}
if (include_wasm_spec_tests) {
# FIXME: Port wasm_spec_tests.cmake
}
shared_library("LibWasm") {
output_name = "wasm"
include_dirs = [ "//Userland/Libraries" ]
sources = [
"AbstractMachine/AbstractMachine.cpp",
"AbstractMachine/BytecodeInterpreter.cpp",
"AbstractMachine/Configuration.cpp",
"AbstractMachine/Validator.cpp",
"Parser/Parser.cpp",
"Printer/Printer.cpp",
]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibJS",
]
}

View file

@ -0,0 +1,16 @@
shared_library("LibWebSocket") {
output_name = "websocket"
include_dirs = [ "//Userland/Libraries" ]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibCrypto",
"//Userland/Libraries/LibTLS",
]
sources = [
"ConnectionInfo.cpp",
"Impl/WebSocketImpl.cpp",
"Impl/WebSocketImplSerenity.cpp",
"WebSocket.cpp",
]
}

View file

@ -0,0 +1,76 @@
import("//Meta/gn/build/compiled_action.gni")
compiled_action("WebContentClientEndpoint") {
tool = "//Meta/Lagom/Tools/CodeGenerators/IPCCompiler"
inputs = [ "//Userland/Services/WebContent/WebContentClient.ipc" ]
outputs = [ "$root_gen_dir/WebContent/WebContentClientEndpoint.h" ]
args = [
rebase_path(inputs[0], root_build_dir),
"-o",
rebase_path(outputs[0], root_build_dir),
]
}
compiled_action("WebContentServerEndpoint") {
tool = "//Meta/Lagom/Tools/CodeGenerators/IPCCompiler"
inputs = [ "//Userland/Services/WebContent/WebContentServer.ipc" ]
outputs = [ "$root_gen_dir/WebContent/WebContentServerEndpoint.h" ]
args = [
rebase_path(inputs[0], root_build_dir),
"-o",
rebase_path(outputs[0], root_build_dir),
]
}
compiled_action("WebDriverClientEndpoint") {
tool = "//Meta/Lagom/Tools/CodeGenerators/IPCCompiler"
inputs = [ "//Userland/Services/WebContent/WebDriverClient.ipc" ]
outputs = [ "$root_gen_dir/WebContent/WebDriverClientEndpoint.h" ]
args = [
rebase_path(inputs[0], root_build_dir),
"-o",
rebase_path(outputs[0], root_build_dir),
]
}
compiled_action("WebDriverServerEndpoint") {
tool = "//Meta/Lagom/Tools/CodeGenerators/IPCCompiler"
inputs = [ "//Userland/Services/WebContent/WebDriverServer.ipc" ]
outputs = [ "$root_gen_dir/WebContent/WebDriverServerEndpoint.h" ]
args = [
rebase_path(inputs[0], root_build_dir),
"-o",
rebase_path(outputs[0], root_build_dir),
]
}
shared_library("LibWebView") {
output_name = "webview"
include_dirs = [
"//Userland/Libraries",
"//Userland",
]
deps = [
":WebContentClientEndpoint",
":WebContentServerEndpoint",
":WebDriverClientEndpoint",
":WebDriverServerEndpoint",
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibGUI",
"//Userland/Libraries/LibGfx",
"//Userland/Libraries/LibIPC",
"//Userland/Libraries/LibWeb",
]
sources = [
"AccessibilityTreeModel.cpp",
"DOMTreeModel.cpp",
"StylePropertiesModel.cpp",
"ViewImplementation.cpp",
"WebContentClient.cpp",
]
sources += get_target_outputs(":WebContentClientEndpoint") +
get_target_outputs(":WebContentServerEndpoint") +
get_target_outputs(":WebDriverClientEndpoint") +
get_target_outputs(":WebDriverServerEndpoint")
}

View file

@ -0,0 +1,12 @@
shared_library("LibXML") {
output_name = "xml"
include_dirs = [ "//Userland/Libraries" ]
sources = [
"DOM/Node.cpp",
"Parser/Parser.cpp",
]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
]
}