blob: da51a339725c04c81342453e4075ade0d9d6c552 [file] [log] [blame]
# Copyright 2019 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("config.gni")
config("compiler") {
sdk_version = "${fuchsia_sdk_id}"
defines = [
# To force full builds after SDK updates in case of ABI changes.
"FUCHSIA_SDK_VERSION=$sdk_version",
]
cflags = []
ldflags = []
if (current_cpu == "arm64") {
cflags += [ "--target=aarch64-fuchsia" ]
} else if (current_cpu == "x64") {
cflags += [ "--target=x86_64-fuchsia" ]
} else {
assert(false, "Unsupported architecture")
}
# Add libfdio by default. This may change in future versions
# in order to move away from POSIX applications and towards
# the Fuchsia programming model.
ldflags += [
# We always want fdio or else e.g. stdio wouldn't be initialized if fdio
# happens to not be directly referenced. The common POSIX-y compiler setup
# uses -Wl,--as-needed which drops it if it's simply "-lfdio" from a libs
# setting. Disable --as-needed, add fdio, and then set back to --as-needed.
"-Wl,--no-as-needed",
"-lfdio",
"-Wl,--as-needed",
]
lib_dirs = [ "${fuchsia_sdk}/arch/${current_cpu}/lib" ]
libs = [ "zircon" ]
ldflags += cflags
asmflags = cflags
}
# This should be applied to all targets.
config("runtime_library") {
asmflags = []
cflags = []
cflags_c = []
cflags_cc = []
cflags_objc = []
cflags_objcc = []
defines = []
ldflags = []
sysroot = "${fuchsia_sdk}/arch/$current_cpu/sysroot"
# Pass the sysroot to all C compiler variants, the assembler, and linker.
cflags = [ "--sysroot=" + rebase_path(sysroot, root_build_dir) ]
ldflags = cflags
asmflags = cflags
}
# Copy the loader to place it at the expected path in the final package.
copy("sysroot_dist_libs") {
sources = [ "${fuchsia_sdk}/arch/${target_cpu}/sysroot/dist/lib/ld.so.1" ]
outputs = [ "${root_out_dir}/lib/{{source_file_part}}" ]
}
# This adds the runtime deps for //build/config/compiler:runtime_library
# as that is a config target and thus cannot include data_deps.
group("runtime_library_group") {
data_deps = [
":sysroot_dist_libs",
# This is used directly from //build/config/fuchsia:compiler and thus
# also needs to be included by default.
"${fuchsia_sdk}/pkg/fdio",
]
}
config("sdk_lib_dirs_config") {
visibility = [ ":*" ]
lib_dirs = [ "arch/${target_cpu}/lib" ]
}