blob: b0364a278d99f08d534a0ec677aeed44f2694563 [file] [log] [blame]
# Copyright 2019 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT
import("//build/tracer/tracer.gni")
import("//build/zircon/migrated_targets.gni")
import("version_string.gni")
declare_args() {
# Version string embedded in the kernel for `zx_system_get_version_string`.
# If set to the default "", a string is generated based on the
# status of the fuchsia git repository.
kernel_version_string = ""
}
# The version string depends solely on the source and doesn't vary across
# machines or toolchains, so generate it only once.
gen_dir = get_label_info(".($default_toolchain)", "target_gen_dir")
if (current_toolchain == default_toolchain) {
assert(gen_dir == target_gen_dir)
_bin_visibility = [
":*",
"//zircon/kernel:*",
]
if (kernel_version_string != "") {
generated_file("version-string.bin") {
visibility = _bin_visibility
outputs = [ kernel_version_string_file ]
contents = kernel_version_string # Not a list so no newline added.
}
} else {
action("version-string.bin") {
visibility = _bin_visibility
script = "git-version-string.sh"
inputs = [
# Regenerate version if HEAD moves
"//.git/HEAD",
# Add "-dirty" suffix as needed
"//.git/index",
]
outputs = [ kernel_version_string_file ]
hermetic_deps = false
args = rebase_path([
kernel_version_string_file,
"//",
],
root_build_dir)
}
}
action("version-string.h") {
visibility = [ ":*" ]
script = "gen-version-string-header.sh"
outputs = [ "$gen_dir/lib/version/version-string.h" ]
deps = [ ":version-string.bin" ]
sources = [ kernel_version_string_file ]
args = rebase_path(sources + outputs, root_build_dir)
}
} else {
zx_library("version") {
sources = [
"version-string.S",
"version.cc",
]
defines = [ "ARCH=\"$current_cpu\"" ]
public_deps = [ ":version-string.h($default_toolchain)" ]
public_configs = [ ":gen.config" ]
deps = [
"//zircon/kernel/lib/arch",
"//zircon/kernel/lib/console",
"//zircon/kernel/lib/init",
]
}
config("gen.config") {
visibility = [ ":*" ]
include_dirs = [ gen_dir ]
}
}