mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 05:47:35 +00:00
Meta: Add gn build rules for Ladybird
This commit is contained in:
parent
85c8cd5205
commit
16b83cd8fb
11 changed files with 381 additions and 0 deletions
|
@ -2,8 +2,10 @@ import("//Meta/gn/build/toolchain/compiler.gni")
|
||||||
|
|
||||||
group("default") {
|
group("default") {
|
||||||
deps = [
|
deps = [
|
||||||
|
"//Ladybird:ladybird",
|
||||||
"//Meta/Lagom/Tools/CodeGenerators/IPCCompiler",
|
"//Meta/Lagom/Tools/CodeGenerators/IPCCompiler",
|
||||||
"//Tests",
|
"//Tests",
|
||||||
|
"//Userland/Libraries/LibWeb",
|
||||||
"//Userland/Utilities:js",
|
"//Userland/Utilities:js",
|
||||||
]
|
]
|
||||||
testonly = true
|
testonly = true
|
||||||
|
|
123
Meta/gn/secondary/Ladybird/BUILD.gn
Normal file
123
Meta/gn/secondary/Ladybird/BUILD.gn
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
import("//Ladybird/compile_qt_resource_file.gni")
|
||||||
|
import("//Ladybird/link_qt.gni")
|
||||||
|
import("//Ladybird/moc_qt_objects.gni")
|
||||||
|
|
||||||
|
moc_qt_objects("generate_moc") {
|
||||||
|
sources = [
|
||||||
|
"BrowserWindow.h",
|
||||||
|
"ConsoleWidget.h",
|
||||||
|
"InspectorWidget.h",
|
||||||
|
"LocationEdit.h",
|
||||||
|
"ModelTranslator.h",
|
||||||
|
"SettingsDialog.h",
|
||||||
|
"Tab.h",
|
||||||
|
"WebContentView.h",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
compile_qt_resource_file("compile_resource_file") {
|
||||||
|
sources = [ "ladybird.qrc" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
link_qt("ladybird_qt_components") {
|
||||||
|
qt_components = [
|
||||||
|
"Core",
|
||||||
|
"Gui",
|
||||||
|
"Widgets",
|
||||||
|
"Network",
|
||||||
|
"Svg",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
config("ladybird_config") {
|
||||||
|
include_dirs = [
|
||||||
|
"//Userland/Applications",
|
||||||
|
"//Userland",
|
||||||
|
]
|
||||||
|
defines = [ "AK_DONT_REPLACE_STD" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
executable("ladybird") {
|
||||||
|
configs += [
|
||||||
|
":ladybird_config",
|
||||||
|
":ladybird_qt_components",
|
||||||
|
]
|
||||||
|
data_deps = [
|
||||||
|
":headless-browser",
|
||||||
|
"SQLServer",
|
||||||
|
"WebContent",
|
||||||
|
"WebDriver",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
":compile_resource_file",
|
||||||
|
":generate_moc",
|
||||||
|
"//AK",
|
||||||
|
"//Userland/Libraries/LibCore",
|
||||||
|
"//Userland/Libraries/LibFileSystem",
|
||||||
|
"//Userland/Libraries/LibGUI",
|
||||||
|
"//Userland/Libraries/LibGfx",
|
||||||
|
"//Userland/Libraries/LibIPC",
|
||||||
|
"//Userland/Libraries/LibJS",
|
||||||
|
"//Userland/Libraries/LibMain",
|
||||||
|
"//Userland/Libraries/LibSQL",
|
||||||
|
"//Userland/Libraries/LibWeb",
|
||||||
|
"//Userland/Libraries/LibWebView",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"//Userland/Applications/Browser/CookieJar.cpp",
|
||||||
|
"//Userland/Applications/Browser/Database.cpp",
|
||||||
|
"//Userland/Applications/Browser/History.cpp",
|
||||||
|
"BrowserWindow.cpp",
|
||||||
|
"ConsoleWidget.cpp",
|
||||||
|
"EventLoopImplementationQt.cpp",
|
||||||
|
"HelperProcess.cpp",
|
||||||
|
"InspectorWidget.cpp",
|
||||||
|
"LocationEdit.cpp",
|
||||||
|
"ModelTranslator.cpp",
|
||||||
|
"Settings.cpp",
|
||||||
|
"SettingsDialog.cpp",
|
||||||
|
"Tab.cpp",
|
||||||
|
"Utilities.cpp",
|
||||||
|
"WebContentView.cpp",
|
||||||
|
"main.cpp",
|
||||||
|
]
|
||||||
|
sources += get_target_outputs(":generate_moc") +
|
||||||
|
get_target_outputs(":compile_resource_file")
|
||||||
|
if (current_os == "android") {
|
||||||
|
sources += [ "AndroidPlatform.cpp" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
link_qt("headless_browser_qt") {
|
||||||
|
qt_components = [ "Core" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
executable("headless-browser") {
|
||||||
|
include_dirs = [ "//Userland/Services" ]
|
||||||
|
configs += [
|
||||||
|
":ladybird_config",
|
||||||
|
":headless_browser_qt",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
"//Userland/Libraries/LibCore",
|
||||||
|
"//Userland/Libraries/LibCrypto",
|
||||||
|
"//Userland/Libraries/LibDiff",
|
||||||
|
"//Userland/Libraries/LibFileSystem",
|
||||||
|
"//Userland/Libraries/LibGemini",
|
||||||
|
"//Userland/Libraries/LibGfx",
|
||||||
|
"//Userland/Libraries/LibHTTP",
|
||||||
|
"//Userland/Libraries/LibIPC",
|
||||||
|
"//Userland/Libraries/LibJS",
|
||||||
|
"//Userland/Libraries/LibMain",
|
||||||
|
"//Userland/Libraries/LibTLS",
|
||||||
|
"//Userland/Libraries/LibWeb",
|
||||||
|
"//Userland/Libraries/LibWebSocket",
|
||||||
|
"//Userland/Libraries/LibWebView",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"//Userland/Services/WebContent/WebDriverConnection.cpp",
|
||||||
|
"//Userland/Utilities/headless-browser.cpp",
|
||||||
|
"HelperProcess.cpp",
|
||||||
|
"Utilities.cpp",
|
||||||
|
]
|
||||||
|
}
|
33
Meta/gn/secondary/Ladybird/SQLServer/BUILD.gn
Normal file
33
Meta/gn/secondary/Ladybird/SQLServer/BUILD.gn
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
import("//Ladybird/link_qt.gni")
|
||||||
|
|
||||||
|
link_qt("SQLServer_qt") {
|
||||||
|
qt_components = [
|
||||||
|
"Core",
|
||||||
|
"Gui",
|
||||||
|
"Network",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
executable("SQLServer") {
|
||||||
|
configs += [
|
||||||
|
"//Ladybird:ladybird_config",
|
||||||
|
":SQLServer_qt",
|
||||||
|
]
|
||||||
|
include_dirs = [
|
||||||
|
"//Userland/Libraries",
|
||||||
|
"//Userland/Services",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
"//AK",
|
||||||
|
"//Userland/Libraries/LibCore",
|
||||||
|
"//Userland/Libraries/LibIPC",
|
||||||
|
"//Userland/Libraries/LibMain",
|
||||||
|
"//Userland/Libraries/LibSQL",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"//Userland/Services/SQLServer/ConnectionFromClient.cpp",
|
||||||
|
"//Userland/Services/SQLServer/DatabaseConnection.cpp",
|
||||||
|
"//Userland/Services/SQLServer/SQLStatement.cpp",
|
||||||
|
"main.cpp",
|
||||||
|
]
|
||||||
|
}
|
70
Meta/gn/secondary/Ladybird/WebContent/BUILD.gn
Normal file
70
Meta/gn/secondary/Ladybird/WebContent/BUILD.gn
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
import("//Ladybird/link_qt.gni")
|
||||||
|
import("//Ladybird/moc_qt_objects.gni")
|
||||||
|
|
||||||
|
moc_qt_objects("generate_moc") {
|
||||||
|
sources = [
|
||||||
|
"//Ladybird/AudioCodecPluginLadybird.h",
|
||||||
|
"//Ladybird/AudioThread.h",
|
||||||
|
"//Ladybird/RequestManagerQt.h",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
link_qt("WebContent_qt") {
|
||||||
|
qt_components = [
|
||||||
|
"Core",
|
||||||
|
"Gui",
|
||||||
|
"Network",
|
||||||
|
"Multimedia",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
executable("WebContent") {
|
||||||
|
configs += [
|
||||||
|
"//Ladybird:ladybird_config",
|
||||||
|
":WebContent_qt",
|
||||||
|
]
|
||||||
|
include_dirs = [
|
||||||
|
"//Userland/Services",
|
||||||
|
"//Ladybird",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
":generate_moc",
|
||||||
|
"//AK",
|
||||||
|
"//Userland/Libraries/LibCore",
|
||||||
|
"//Userland/Libraries/LibFileSystem",
|
||||||
|
"//Userland/Libraries/LibGfx",
|
||||||
|
"//Userland/Libraries/LibIPC",
|
||||||
|
"//Userland/Libraries/LibJS",
|
||||||
|
"//Userland/Libraries/LibMain",
|
||||||
|
"//Userland/Libraries/LibWeb",
|
||||||
|
"//Userland/Libraries/LibWebSocket",
|
||||||
|
"//Userland/Libraries/LibWebView:WebContentClientEndpoint",
|
||||||
|
"//Userland/Libraries/LibWebView:WebContentServerEndpoint",
|
||||||
|
"//Userland/Libraries/LibWebView:WebDriverClientEndpoint",
|
||||||
|
"//Userland/Libraries/LibWebView:WebDriverServerEndpoint",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"../AudioCodecPluginLadybird.cpp",
|
||||||
|
"../AudioThread.cpp",
|
||||||
|
"../EventLoopImplementationQt.cpp",
|
||||||
|
"../FontPluginQt.cpp",
|
||||||
|
"../ImageCodecPluginLadybird.cpp",
|
||||||
|
"../RequestManagerQt.cpp",
|
||||||
|
"../Utilities.cpp",
|
||||||
|
"../WebSocketClientManagerLadybird.cpp",
|
||||||
|
"../WebSocketImplQt.cpp",
|
||||||
|
"../WebSocketLadybird.cpp",
|
||||||
|
"//Userland/Services/WebContent/ConnectionFromClient.cpp",
|
||||||
|
"//Userland/Services/WebContent/ConsoleGlobalEnvironmentExtensions.cpp",
|
||||||
|
"//Userland/Services/WebContent/PageHost.cpp",
|
||||||
|
"//Userland/Services/WebContent/WebContentConsoleClient.cpp",
|
||||||
|
"//Userland/Services/WebContent/WebDriverConnection.cpp",
|
||||||
|
"main.cpp",
|
||||||
|
]
|
||||||
|
sources += get_target_outputs(":generate_moc")
|
||||||
|
|
||||||
|
if (current_os == "mac") {
|
||||||
|
sources += [ "MacOSSetup.mm" ]
|
||||||
|
frameworks = [ "AppKit.framework" ]
|
||||||
|
}
|
||||||
|
}
|
41
Meta/gn/secondary/Ladybird/WebDriver/BUILD.gn
Normal file
41
Meta/gn/secondary/Ladybird/WebDriver/BUILD.gn
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
import("//Ladybird/link_qt.gni")
|
||||||
|
|
||||||
|
link_qt("WebDriver_qt") {
|
||||||
|
qt_components = [
|
||||||
|
"Core",
|
||||||
|
"Network",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
executable("WebDriver") {
|
||||||
|
configs += [
|
||||||
|
"//Ladybird:ladybird_config",
|
||||||
|
":WebDriver_qt",
|
||||||
|
]
|
||||||
|
include_dirs = [
|
||||||
|
"//Userland/Services",
|
||||||
|
"//Ladybird",
|
||||||
|
]
|
||||||
|
data_deps = [ "//Ladybird:headless-browser" ]
|
||||||
|
deps = [
|
||||||
|
"//AK",
|
||||||
|
"//Userland/Libraries/LibCore",
|
||||||
|
"//Userland/Libraries/LibFileSystem",
|
||||||
|
"//Userland/Libraries/LibGfx",
|
||||||
|
"//Userland/Libraries/LibIPC",
|
||||||
|
"//Userland/Libraries/LibJS",
|
||||||
|
"//Userland/Libraries/LibMain",
|
||||||
|
"//Userland/Libraries/LibWeb",
|
||||||
|
"//Userland/Libraries/LibWebSocket",
|
||||||
|
"//Userland/Libraries/LibWebView:WebDriverClientEndpoint",
|
||||||
|
"//Userland/Libraries/LibWebView:WebDriverServerEndpoint",
|
||||||
|
]
|
||||||
|
sources = [
|
||||||
|
"../HelperProcess.cpp",
|
||||||
|
"../Utilities.cpp",
|
||||||
|
"//Userland/Services/WebDriver/Client.cpp",
|
||||||
|
"//Userland/Services/WebDriver/Session.cpp",
|
||||||
|
"//Userland/Services/WebDriver/WebContentConnection.cpp",
|
||||||
|
"main.cpp",
|
||||||
|
]
|
||||||
|
}
|
24
Meta/gn/secondary/Ladybird/compile_qt_resource_file.gni
Normal file
24
Meta/gn/secondary/Ladybird/compile_qt_resource_file.gni
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
import("qt_install_prefix.gni")
|
||||||
|
|
||||||
|
template("compile_qt_resource_file") {
|
||||||
|
action_foreach(target_name) {
|
||||||
|
forward_variables_from(invoker, [ "sources" ])
|
||||||
|
|
||||||
|
script = "//Meta/gn/secondary/Ladybird/invoke_process_with_args.py"
|
||||||
|
|
||||||
|
outputs = [ "$target_gen_dir/rcc_{{source_name_part}}.cpp" ]
|
||||||
|
depfile = "$target_gen_dir/rcc_{{source_name_part}}.cpp.d"
|
||||||
|
args = [
|
||||||
|
qt_install_libexec + "rcc",
|
||||||
|
"-g",
|
||||||
|
"cpp",
|
||||||
|
"-d",
|
||||||
|
rebase_path(target_gen_dir, root_build_dir) +
|
||||||
|
"/rcc_{{source_name_part}}.cpp.d",
|
||||||
|
"-o",
|
||||||
|
rebase_path(target_gen_dir, root_build_dir) +
|
||||||
|
"/rcc_{{source_name_part}}.cpp",
|
||||||
|
"{{source}}",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
6
Meta/gn/secondary/Ladybird/invoke_process_with_args.py
Normal file
6
Meta/gn/secondary/Ladybird/invoke_process_with_args.py
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
sys.exit(subprocess.call(sys.argv[1:]))
|
25
Meta/gn/secondary/Ladybird/link_qt.gni
Normal file
25
Meta/gn/secondary/Ladybird/link_qt.gni
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
import("qt_install_prefix.gni")
|
||||||
|
|
||||||
|
template("link_qt") {
|
||||||
|
assert(defined(invoker.qt_components),
|
||||||
|
"Must define qt_component on $target_name")
|
||||||
|
|
||||||
|
config(target_name) {
|
||||||
|
include_dirs = [ qt_install_headers ]
|
||||||
|
if (current_os == "mac") {
|
||||||
|
frameworks = []
|
||||||
|
framework_dirs = [ qt_install_frameworks ]
|
||||||
|
foreach(component, invoker.qt_components) {
|
||||||
|
include_dirs += [ qt_install_headers + "Qt" + component ]
|
||||||
|
frameworks += [ "Qt" + component + ".framework" ]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
libs = []
|
||||||
|
lib_dirs = [ qt_install_lib ]
|
||||||
|
foreach(component, invoker.qt_components) {
|
||||||
|
include_dirs += [ qt_install_headers + "Qt" + component ]
|
||||||
|
libs += [ "Qt6" + component ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
18
Meta/gn/secondary/Ladybird/moc_qt_objects.gni
Normal file
18
Meta/gn/secondary/Ladybird/moc_qt_objects.gni
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
import("qt_install_prefix.gni")
|
||||||
|
|
||||||
|
template("moc_qt_objects") {
|
||||||
|
action_foreach(target_name) {
|
||||||
|
forward_variables_from(invoker, [ "sources" ])
|
||||||
|
|
||||||
|
script = "//Meta/gn/secondary/Ladybird/invoke_process_with_args.py"
|
||||||
|
|
||||||
|
outputs = [ "$target_gen_dir/moc_{{source_name_part}}.cpp" ]
|
||||||
|
args = [
|
||||||
|
qt_install_libexec + "moc",
|
||||||
|
"{{source}}",
|
||||||
|
"-o",
|
||||||
|
rebase_path(target_gen_dir, root_build_dir) +
|
||||||
|
"/moc_{{source_name_part}}.cpp",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
26
Meta/gn/secondary/Ladybird/qt_install_prefix.gni
Normal file
26
Meta/gn/secondary/Ladybird/qt_install_prefix.gni
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
declare_args() {
|
||||||
|
# Location of Qt6 binaries/libraries/frameworks.
|
||||||
|
# Likely /opt/homebrew on macOS and /usr or /usr/local on Linux
|
||||||
|
# FIXME: We could get these by parsing `qmake -query` or `pkg-config`
|
||||||
|
if (host_os == "mac") {
|
||||||
|
qt_install_prefix = "/opt/homebrew/"
|
||||||
|
} else {
|
||||||
|
qt_install_prefix = "/usr/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
declare_args() {
|
||||||
|
# Location of Qt6 headers, normally set based on $qt_install_prefix
|
||||||
|
qt_install_headers = qt_install_prefix + "include/"
|
||||||
|
if (current_os == "mac") {
|
||||||
|
# Location of Qt6 frameworks, normally set based on $qt_install_prefix
|
||||||
|
qt_install_frameworks = qt_install_prefix + "Frameworks/"
|
||||||
|
} else {
|
||||||
|
# Location of Qt6 libraries, normally set based on $qt_install_prefix
|
||||||
|
qt_install_lib = qt_install_prefix + "lib"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Location of Qt6 helper programs, normally set based on $qt_install_prefix
|
||||||
|
# Programs such as moc and rcc are expected to be in this location.
|
||||||
|
qt_install_libexec = qt_install_prefix + "share/qt/libexec/"
|
||||||
|
}
|
13
Meta/gn/secondary/Userland/Libraries/LibDiff/BUILD.gn
Normal file
13
Meta/gn/secondary/Userland/Libraries/LibDiff/BUILD.gn
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
shared_library("LibDiff") {
|
||||||
|
include_dirs = [ "//Userland/Libraries" ]
|
||||||
|
sources = [
|
||||||
|
"Format.cpp",
|
||||||
|
"Generator.cpp",
|
||||||
|
"Hunks.cpp",
|
||||||
|
]
|
||||||
|
deps = [
|
||||||
|
"//AK",
|
||||||
|
"//Userland/Libraries/LibCore",
|
||||||
|
]
|
||||||
|
output_name = "diff"
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue