blob: 75c0a8e5cae5e400f3f7d94d4d45b4422c946577 [file] [log] [blame]
# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/sdk/sdk_noop_atom.gni")
import("//build/toolchain/ifs_shared_library.gni")
import("//build/toolchain/toolchain_environment.gni")
# The vDSO ABI is provided at link time by a stub. The actual runtime image
# comes from the kernel and is not part of the build or SDK for userland at
# all. The kernel's internal build of the vDSO verifies that the ABI matches.
if (is_fuchsia && toolchain_base_environment != "kernel") {
ifs_shared_library("zircon") {
abi = "zircon.ifs"
public_deps = [ ":headers" ]
deps = [ "//zircon/vdso:ifs" ]
}
} else {
# References from other environments only get the headers. This
# makes it easy to have "//src/zircon/lib/zircon" deps in common
# libraries that need to link against it in userland but that in
# other contexts like kernel or userboot are just using the headers.
group("zircon") {
public_deps = [ ":headers" ]
}
}
group("headers") {
public_deps = [
":zircon-headers",
"//zircon/vdso:public",
]
if (!is_fuchsia && !is_kernel) {
public_deps += [ "//zircon/system/public" ]
}
}
# These headers can be used in host binaries.
source_set("zircon-headers") {
configs = []
public = [
"include/zircon/exception.h",
"include/zircon/status.h",
]
public_configs = [ ":zircon-headers.config" ]
}
config("zircon-headers.config") {
include_dirs = [ "include" ]
}
# The zircon library is not a real SDK atom since it is provided
# directly as part of the SDK sysroot.
sdk_noop_atom("zircon_sdk") {
}