Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(708)

Unified Diff: build/toolchain/nacl_toolchain.gni

Issue 1312813003: add nacl_toolchain to //build and flip to using it in the GN build. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@build_changes
Patch Set: rebase Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: build/toolchain/nacl_toolchain.gni
diff --git a/build/toolchain/nacl_toolchain.gni b/build/toolchain/nacl_toolchain.gni
new file mode 100644
index 0000000000000000000000000000000000000000..f39395bfd0f1dad6858eb4b5b93187e938caab42
--- /dev/null
+++ b/build/toolchain/nacl_toolchain.gni
@@ -0,0 +1,62 @@
+# Copyright (c) 2014 The Native Client Authors. All rights reserved.
Dirk Pranke 2015/08/28 02:29:41 This file is copied over from //native_client/buil
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/toolchain/gcc_toolchain.gni")
+
+# This template defines a NaCl toolchain.
+#
+# The template defines both a "raw" and "cooked" toolchain. These toolchains
brettw 2015/08/28 18:25:52 I don't understand this comment, I see only one to
Dirk Pranke 2015/08/28 20:08:32 I think this comment might be out of date. I will
Dirk Pranke 2015/08/28 20:37:07 Confirmed. Will clean it up.
+# are identical, but use different names to allow us to inject dependencies
+# without creating circular references.
+#
+# It requires the following variables specifying the executables to run:
+# - cc
+# - cxx
+# - ar
+# - ld
+# and the following which is used in the toolchain_args
+# - toolchain_cpu (What "current_cpu" should be set to when invoking a
+# build using this toolchain.)
+
+template("nacl_toolchain") {
+ assert(defined(invoker.cc), "nacl_toolchain() must specify a \"cc\" value")
+ assert(defined(invoker.cxx), "nacl_toolchain() must specify a \"cxx\" value")
+ assert(defined(invoker.ar), "nacl_toolchain() must specify a \"ar\" value")
+ assert(defined(invoker.ld), "nacl_toolchain() must specify a \"ld\" value")
+ assert(defined(invoker.toolchain_cpu),
+ "nacl_toolchain() must specify a \"toolchain_cpu\"")
+
+ toolchain_os = "nacl"
+ if (defined(invoker.is_clang)) {
Roland McGrath 2015/08/28 20:58:40 Use forward_variables_from for this, postlink, and
Dirk Pranke 2015/08/28 21:17:05 Ack. I debated whether to change that or not as pa
+ is_clang = invoker.is_clang
+ }
+ if (defined(invoker.executable_extension)) {
+ executable_extension = invoker.executable_extension
+ } else {
+ executable_extension = ".nexe"
+ }
+ toolchain_cpu = invoker.toolchain_cpu
+
+ cc = invoker.cc
+ cxx = invoker.cxx
+ ar = invoker.ar
+ ld = invoker.ld
+ if (defined(invoker.postlink)) {
+ postlink = invoker.postlink
+ }
+ if (defined(invoker.link_outputs)) {
+ link_outputs = invoker.link_outputs
+ }
+
+ # NaCl toolchains do not support shared libraries and so they don't support
Roland McGrath 2015/08/28 20:58:40 NaCl glibc toolchains do support shared libraries.
Dirk Pranke 2015/08/28 21:17:05 I see. I have a vague memory of ncbray telling me
Roland McGrath 2015/08/28 22:35:57 ncbray disclaims all knowledge of this particular
+ # component_mode builds.
+ is_component_build = false
+
+ gcc_toolchain(target_name) {
+ rebuild_define = "NACL_TC_REV=" + invoker.toolchain_revision
+ if (defined(invoker.deps)) {
+ deps = invoker.deps
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698