From 7b3d0fb002c94a35af341a094b4ec94814d15304 Mon Sep 17 00:00:00 2001 From: Andrew Kaster Date: Fri, 5 May 2023 12:57:01 -0600 Subject: [PATCH] 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 :^). --- .../Userland/Libraries/LibAudio/BUILD.gn | 29 +++++++ .../Userland/Libraries/LibCompress/BUILD.gn | 19 +++++ .../Userland/Libraries/LibGUI/BUILD.gn | 23 ++++++ .../Userland/Libraries/LibGemini/BUILD.gn | 16 ++++ .../Userland/Libraries/LibHTTP/BUILD.gn | 16 ++++ .../Userland/Libraries/LibIDL/BUILD.gn | 13 ++++ .../Userland/Libraries/LibMarkdown/BUILD.gn | 24 ++++++ .../Userland/Libraries/LibSQL/BUILD.gn | 74 ++++++++++++++++++ .../Userland/Libraries/LibTLS/BUILD.gn | 43 +++++++++++ .../Userland/Libraries/LibThreading/BUILD.gn | 12 +++ .../Userland/Libraries/LibVideo/BUILD.gn | 27 +++++++ .../Userland/Libraries/LibWasm/BUILD.gn | 27 +++++++ .../Userland/Libraries/LibWebSocket/BUILD.gn | 16 ++++ .../Userland/Libraries/LibWebView/BUILD.gn | 76 +++++++++++++++++++ .../Userland/Libraries/LibXML/BUILD.gn | 12 +++ 15 files changed, 427 insertions(+) create mode 100644 Meta/gn/secondary/Userland/Libraries/LibAudio/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibCompress/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibGUI/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibGemini/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibHTTP/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibIDL/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibMarkdown/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibSQL/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibTLS/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibThreading/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibVideo/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibWasm/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibWebSocket/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibWebView/BUILD.gn create mode 100644 Meta/gn/secondary/Userland/Libraries/LibXML/BUILD.gn diff --git a/Meta/gn/secondary/Userland/Libraries/LibAudio/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibAudio/BUILD.gn new file mode 100644 index 0000000000..7090eeff35 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibAudio/BUILD.gn @@ -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" +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibCompress/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibCompress/BUILD.gn new file mode 100644 index 0000000000..b9a86cea6e --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibCompress/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibGUI/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibGUI/BUILD.gn new file mode 100644 index 0000000000..cb6757055d --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibGUI/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibGemini/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibGemini/BUILD.gn new file mode 100644 index 0000000000..9be8f83fab --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibGemini/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibHTTP/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibHTTP/BUILD.gn new file mode 100644 index 0000000000..0219ceddb5 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibHTTP/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibIDL/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibIDL/BUILD.gn new file mode 100644 index 0000000000..e5ebbbe123 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibIDL/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibMarkdown/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibMarkdown/BUILD.gn new file mode 100644 index 0000000000..1a6928f937 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibMarkdown/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibSQL/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibSQL/BUILD.gn new file mode 100644 index 0000000000..fd5d48b002 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibSQL/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibTLS/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibTLS/BUILD.gn new file mode 100644 index 0000000000..925a57f9c6 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibTLS/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibThreading/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibThreading/BUILD.gn new file mode 100644 index 0000000000..cd24ad9a98 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibThreading/BUILD.gn @@ -0,0 +1,12 @@ +shared_library("LibThreading") { + output_name = "threading" + include_dirs = [ "//Userland/Libraries" ] + sources = [ + "BackgroundAction.cpp", + "Thread.cpp", + ] + deps = [ + "//AK", + "//Userland/Libraries/LibCore", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibVideo/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibVideo/BUILD.gn new file mode 100644 index 0000000000..68f7a65bab --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibVideo/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWasm/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWasm/BUILD.gn new file mode 100644 index 0000000000..cfa7186838 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWasm/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWebSocket/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWebSocket/BUILD.gn new file mode 100644 index 0000000000..26593771cc --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWebSocket/BUILD.gn @@ -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", + ] +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibWebView/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibWebView/BUILD.gn new file mode 100644 index 0000000000..a9a17fddb4 --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibWebView/BUILD.gn @@ -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") +} diff --git a/Meta/gn/secondary/Userland/Libraries/LibXML/BUILD.gn b/Meta/gn/secondary/Userland/Libraries/LibXML/BUILD.gn new file mode 100644 index 0000000000..e303993a3a --- /dev/null +++ b/Meta/gn/secondary/Userland/Libraries/LibXML/BUILD.gn @@ -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", + ] +}