Squash commits for public release
This commit is contained in:
77
build/userland/EXEC_TEMPLATE.gni
Normal file
77
build/userland/EXEC_TEMPLATE.gni
Normal file
@@ -0,0 +1,77 @@
|
||||
template("xOS_executable_template") {
|
||||
assert(defined(invoker.sources),
|
||||
"Need sources in $target_name to build xOS App")
|
||||
|
||||
app_name = target_name
|
||||
app_build_name = app_name + "_build"
|
||||
|
||||
deplibs = []
|
||||
depbuilders = []
|
||||
includes = []
|
||||
confs = []
|
||||
if (defined(invoker.libs)) {
|
||||
deplibs = invoker.libs
|
||||
}
|
||||
if (defined(invoker.deps)) {
|
||||
depbuilders = invoker.deps
|
||||
}
|
||||
if (defined(invoker.include_dirs)) {
|
||||
includes = invoker.include_dirs
|
||||
}
|
||||
if (defined(invoker.configs)) {
|
||||
confs = invoker.configs
|
||||
}
|
||||
if (defined(invoker.deplibs)) {
|
||||
foreach(i, invoker.deplibs) {
|
||||
deplibs += [ "$root_out_dir/base/libs/" + i + ".a" ]
|
||||
depbuilders += [ "//libs/" + i + ":" + i ]
|
||||
includes += [ "//libs/" + i + "/include" ]
|
||||
confs += [ "//libs/" + i + ":" + i + "_include_config" ]
|
||||
|
||||
# Also adding libc includes.
|
||||
# Note to add libc after libcxx.
|
||||
if (i == "libcxx") {
|
||||
includes += [ "//libs/libc/include" ]
|
||||
}
|
||||
|
||||
if (i == "libui") {
|
||||
includes += [ "//libs/libapi/include" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
linkflags = []
|
||||
if (defined(invoker.need_sign_section) && invoker.need_sign_section == true) {
|
||||
# Adding empty section for a signature.
|
||||
# HACK: Since ldflags follow inputs for linker we put this
|
||||
# section as a first flag, but it will be treated as input.
|
||||
linkflags += [ rebase_path("$root_out_dir/tmp/elfsign_section.o", "") ]
|
||||
}
|
||||
if (defined(invoker.ldflags)) {
|
||||
linkflags += invoker.ldflags
|
||||
}
|
||||
|
||||
executable(app_build_name) {
|
||||
if (defined(invoker.install_path)) {
|
||||
output_name = "base/" + invoker.install_path + app_name
|
||||
} else {
|
||||
output_name = "base/bin/" + app_name
|
||||
}
|
||||
sources = invoker.sources
|
||||
libs = deplibs
|
||||
deps = depbuilders
|
||||
include_dirs = includes
|
||||
configs = confs
|
||||
ldflags = linkflags
|
||||
forward_variables_from(invoker,
|
||||
[
|
||||
"cflags",
|
||||
"cflags_c",
|
||||
"cflags_cc",
|
||||
"cflags_objc",
|
||||
"cflags_objcc",
|
||||
"asmflags",
|
||||
"public_deps",
|
||||
])
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user