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

Side by Side Diff: build/config/nacl/rules.gni

Issue 1943583002: GN: forward_variables_from shouldn't clobber vars. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 # Copyright 2015 The Native Client Authors. All rights reserved. 1 # Copyright 2015 The Native Client Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/features.gni") 5 import("//build/config/features.gni")
6 import("//build/config/nacl/config.gni") 6 import("//build/config/nacl/config.gni")
7 7
8 # Generate a nmf file 8 # Generate a nmf file
9 # 9 #
10 # Native Client Manifest (nmf) is a JSON file that tells the browser where to 10 # Native Client Manifest (nmf) is a JSON file that tells the browser where to
11 # download and load Native Client application files and libraries. 11 # download and load Native Client application files and libraries.
12 # 12 #
13 # Variables: 13 # Variables:
14 # executables: .nexe/.pexe/.bc executables to generate nmf for 14 # executables: .nexe/.pexe/.bc executables to generate nmf for
15 # lib_prefix: path to prepend to shared libraries in the nmf 15 # lib_prefix: path to prepend to shared libraries in the nmf
16 # nmf: the name and the path of the output file 16 # nmf: the name and the path of the output file
17 # nmfflags: additional flags for the nmf generator 17 # nmfflags: additional flags for the nmf generator
18 # stage_dependencies: directory for staging libraries 18 # stage_dependencies: directory for staging libraries
19 template("generate_nmf") { 19 template("generate_nmf") {
20 assert(defined(invoker.executables), "Must define executables") 20 assert(defined(invoker.executables), "Must define executables")
21 assert(defined(invoker.nmf), "Must define nmf") 21 assert(defined(invoker.nmf), "Must define nmf")
22 22
23 action(target_name) { 23 action(target_name) {
24 nmfflags = []
25
26 forward_variables_from(invoker, 24 forward_variables_from(invoker,
27 [ 25 [
28 "deps", 26 "deps",
29 "data_deps", 27 "data_deps",
30 "executables", 28 "executables",
31 "lib_prefix", 29 "lib_prefix",
32 "nmf", 30 "nmf",
33 "nmfflags", 31 "nmfflags",
34 "public_deps", 32 "public_deps",
35 "stage_dependencies", 33 "stage_dependencies",
36 "testonly", 34 "testonly",
37 "visibility", 35 "visibility",
38 ]) 36 ])
37 if (!defined(nmfflags)) {
38 nmfflags = []
39 }
39 40
40 # TODO(phosek): Remove this conditional once 41 # TODO(phosek): Remove this conditional once
41 # https://bugs.chromium.org/p/nativeclient/issues/detail?id=4339 is 42 # https://bugs.chromium.org/p/nativeclient/issues/detail?id=4339 is
42 # resolved. 43 # resolved.
43 if (current_cpu == "pnacl") { 44 if (current_cpu == "pnacl") {
44 objdump = rebase_path("${nacl_toolchain_bindir}/x86_64-nacl-objdump") 45 objdump = rebase_path("${nacl_toolchain_bindir}/x86_64-nacl-objdump")
45 } else { 46 } else {
46 objdump = rebase_path("${nacl_toolprefix}objdump") 47 objdump = rebase_path("${nacl_toolprefix}objdump")
47 } 48 }
48 if (host_os == "win") { 49 if (host_os == "win") {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 # 113 #
113 # Variables: 114 # Variables:
114 # executable: Non-SFI .nexe executable to generate nmf for 115 # executable: Non-SFI .nexe executable to generate nmf for
115 # nmf: the name and the path of the output file 116 # nmf: the name and the path of the output file
116 # nmfflags: additional flags for the nmf generator 117 # nmfflags: additional flags for the nmf generator
117 template("generate_nonsfi_test_nmf") { 118 template("generate_nonsfi_test_nmf") {
118 assert(defined(invoker.executable), "Must define executable") 119 assert(defined(invoker.executable), "Must define executable")
119 assert(defined(invoker.nmf), "Must define nmf") 120 assert(defined(invoker.nmf), "Must define nmf")
120 121
121 action(target_name) { 122 action(target_name) {
122 nmfflags = []
123
124 forward_variables_from(invoker, 123 forward_variables_from(invoker,
125 [ 124 [
126 "deps", 125 "deps",
127 "data_deps", 126 "data_deps",
128 "executable", 127 "executable",
129 "nmf", 128 "nmf",
130 "nmfflags",
131 "testonly", 129 "testonly",
132 "public_deps", 130 "public_deps",
133 "visibility", 131 "visibility",
134 ]) 132 ])
135 133
136 script = "//ppapi/tests/create_nonsfi_test_nmf.py" 134 script = "//ppapi/tests/create_nonsfi_test_nmf.py"
137 sources = [ 135 sources = [
138 executable, 136 executable,
139 ] 137 ]
140 outputs = [ 138 outputs = [
141 nmf, 139 nmf,
142 ] 140 ]
143 141
144 # NOTE: We use target_cpu rather than current_cpu on purpose because 142 # NOTE: We use target_cpu rather than current_cpu on purpose because
145 # current_cpu is always going to be pnacl for Non-SFI, but the Non-SFI 143 # current_cpu is always going to be pnacl for Non-SFI, but the Non-SFI
146 # .nexe executable is always translated to run on the target machine. 144 # .nexe executable is always translated to run on the target machine.
147 if (target_cpu == "x86") { 145 if (target_cpu == "x86") {
148 arch = "x86-32" 146 arch = "x86-32"
149 } else if (target_cpu == "x64") { 147 } else if (target_cpu == "x64") {
150 arch = "x86-64" 148 arch = "x86-64"
151 } else { 149 } else {
152 arch = target_cpu 150 arch = target_cpu
153 } 151 }
154 args = [ 152 args = [
155 "--program=" + rebase_path(executable, root_build_dir), 153 "--program=" + rebase_path(executable, root_build_dir),
156 "--arch=${arch}", 154 "--arch=${arch}",
157 "--output=" + rebase_path(nmf, root_build_dir), 155 "--output=" + rebase_path(nmf, root_build_dir),
158 ] + nmfflags 156 ]
157 if (defined(invoker.nmfflags)) {
158 args += invoker.nmfflags
159 }
159 } 160 }
160 } 161 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698