blob: 71e0446c5800a3edd6b58636527b74cfc7c48876 [file] [log] [blame]
# Copyright (c) 2014 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This is the root build file for GN. GN will start processing by loading this
# file, and recursively load all dependencies until all dependencies are either
# resolved or known not to exist (which will cause the build to fail). So if
# you add a new build file, there must be some path of dependencies from this
# file to your new one or GN won't know about it.
#
# All targets in this file file are built by default.
#
# Here we declare the meta targets which pull in the various architecture
# combinations of the real targets.
#
declare_args() {
# Untrusted architecture
use_nacl_x86 = target_cpu == "x86"
use_nacl_x64 = target_cpu == "x64" || target_os == "win"
use_nacl_arm = target_cpu == "arm"
# Untrusted libc
use_gcc_glibc = false
use_clang_newlib = true
}
group("trusted") {
deps = [
"//native_client/src:trusted_targets",
]
}
#
# This is the root untrusted target which will build all trusted components
#
group("untrusted") {
deps = []
if (use_nacl_x86) {
if (use_gcc_glibc) {
deps += [ "//native_client/src/:untrusted_targets(//build/toolchain/nacl:glibc_x86)" ]
}
if (use_clang_newlib) {
deps += [ "//native_client/src/:untrusted_targets(//build/toolchain/nacl:clang_newlib_x86)" ]
}
deps += [ "//native_client/src/:irt_targets(//build/toolchain/nacl:irt_x86)" ]
}
if (use_nacl_x64) {
if (use_gcc_glibc) {
deps += [ "//native_client/src/:untrusted_targets(//build/toolchain/nacl:glibc_x64)" ]
}
if (use_clang_newlib) {
deps += [ "//native_client/src/:untrusted_targets(//build/toolchain/nacl:clang_newlib_x64)" ]
}
deps += [ "//native_client/src/:irt_targets(//build/toolchain/nacl:irt_x64)" ]
}
if (use_nacl_arm) {
if (use_gcc_glibc) {
deps += [ "//native_client/src/:untrusted_targets(//build/toolchain/nacl:glibc_arm)" ]
}
if (use_clang_newlib) {
deps += [ "//native_client/src/:untrusted_targets(//build/toolchain/nacl:clang_newlib_arm)" ]
}
deps += [ "//native_client/src/:irt_targets(//build/toolchain/nacl:irt_arm)" ]
}
}