blob: 217d6300fb7de873b06aaa86327f7ca1cb4f85b0 [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/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
# `kernel_version_git_checkout` and `kernel_version_git_dirty_check`
# settings, which see.
kernel_version_string = ""
# By default the kernel version string is generated based on the full git
# revision found by `git rev-parse HEAD` in this checkout directory.
kernel_version_git_checkout = "//zircon/.."
# If this is true, then the kernel version string generated based on
# `kernel_version_git_checkout` also adds a "-dirty" suffix if any files in
# the checkout are modified from what's committed in git.
kernel_version_git_dirty_check = true
}
# 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)
if (kernel_version_string != "") {
generated_file("version-string.bin") {
visibility = [
":*",
"//zircon/kernel:*",
]
outputs = [ kernel_version_string_file ]
contents = kernel_version_string # Not a list so no newline added.
}
} else {
action("version-string.bin") {
# TODO(fxbug.dev/68558): figure out why this is failing on bot and remove.
hermetic_deps = false
visibility = [
":*",
"//zircon/kernel:*",
]
script = "git-version-string.sh"
outputs = [ kernel_version_string_file ]
sources = [ "$kernel_version_git_checkout/.git/HEAD" ]
if (kernel_version_git_dirty_check) {
sources += [ "$kernel_version_git_checkout/.git/index" ]
}
args = rebase_path([
kernel_version_string_file,
kernel_version_git_checkout,
],
root_build_dir) + [ "$kernel_version_git_dirty_check" ]
}
}
action("version-string.h") {
all_outputs_fresh = false
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") {
kernel = true
sources = [ "version.cc" ]
defines = [ "ARCH=\"$current_cpu\"" ]
public_deps = [ ":version-string.h($default_toolchain)" ]
public_configs = [ ":gen.config" ]
deps = [
"//zircon/kernel/lib/console",
"//zircon/kernel/lib/init",
]
}
config("gen.config") {
visibility = [ ":*" ]
include_dirs = [ gen_dir ]
}
}