Index: build/config/nacl/rules.gni |
diff --git a/build/config/nacl/rules.gni b/build/config/nacl/rules.gni |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e0127531016df1933cce6d1ed50498d61143518d |
--- /dev/null |
+++ b/build/config/nacl/rules.gni |
@@ -0,0 +1,101 @@ |
+# Copyright 2015 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. |
+ |
+import("//build/config/features.gni") |
+import("//build/config/nacl/config.gni") |
+ |
+template("generate_nmf") { |
brettw
2015/11/11 21:20:12
All templates should have comments at the top list
Petr Hosek
2015/11/11 23:35:03
Done.
|
+ assert(defined(invoker.executable), "Must define executable") |
+ assert(defined(invoker.nmf), "Must define nmf") |
+ objdump = rebase_path("${nacl_toolprefix}objdump") |
brettw
2015/11/11 21:20:12
You only use this once, so I'd just inline the reb
Petr Hosek
2015/11/11 23:35:03
Done.
|
+ |
+ action(target_name) { |
+ forward_variables_from(invoker, |
+ [ |
+ "deps", |
+ "data_deps", |
+ "executable", |
+ "nmf", |
+ "nmfflags", |
+ "public_deps", |
+ "testonly", |
+ ]) |
+ |
+ script = "//native_client_sdk/src/tools/create_nmf.py" |
+ sources = [ |
+ executable, |
+ ] |
+ outputs = [ |
+ nmf, |
+ ] |
+ args = [ |
+ "--no-default-libpath", |
+ "--objdump=" + objdump, |
+ "--output=" + rebase_path(nmf, root_build_dir), |
+ ] |
+ if (is_nacl_glibc) { |
+ args += [ "--library-path=" + rebase_path(root_out_dir) ] |
Roland McGrath
2015/11/11 21:44:31
Maybe the library path dir should be listed in inp
brettw
2015/11/11 22:32:56
You can't list directories as inputs, only files.
Petr Hosek
2015/11/11 23:35:03
I could remove this and it'll be up to the invoker
|
+ if (current_cpu == "x86") { |
+ args += [ "--library-path=" + |
+ rebase_path("${nacl_toolchain_tooldir}/lib32") ] |
+ data = [ |
+ "$root_build_dir/lib32/", |
brettw
2015/11/11 21:20:12
It seems surprising to me that depending on a sing
Petr Hosek
2015/11/11 23:35:03
That's intentional because those are two different
brettw
2015/11/12 17:40:58
Okay, I guess the analogy would be that normal pro
|
+ ] |
+ } else if (target_cpu == "x64" || (target_cpu == "x86" && is_win)) { |
brettw
2015/11/11 21:20:12
I'm confused by these conditions. The first if tes
Roland McGrath
2015/11/11 21:44:32
Why is Windows special? If this is the proper con
Petr Hosek
2015/11/11 23:35:03
This is taken from GYP and I haven't found any com
|
+ args += |
+ [ "--library-path=" + rebase_path("${nacl_toolchain_tooldir}/lib") ] |
+ data = [ |
+ "$root_build_dir/lib64/", |
+ ] |
+ } else if (current_cpu == "arm") { |
Roland McGrath
2015/11/11 21:44:31
Just make this the default 'else' unless you are g
Petr Hosek
2015/11/11 23:35:03
Done.
|
+ args += |
+ [ "--library-path=" + rebase_path("${nacl_toolchain_tooldir}/lib") ] |
+ data = [ |
+ "$root_build_dir/lib/", |
+ ] |
+ } |
+ } |
+ args += nmfflags + rebase_path(sources, root_build_dir) |
+ if (is_nacl_glibc && current_cpu == "arm") { |
+ deps += [ "//native_client/src/untrusted/elf_loader:elf_loader" ] |
+ } |
+ } |
+} |
+ |
+template("generate_nonsfi_test_nmf") { |
+ assert(defined(invoker.executable), "Must define executable") |
+ assert(defined(invoker.nmf), "Must define nmf") |
+ |
+ action(target_name) { |
+ forward_variables_from(invoker, |
+ [ |
+ "deps", |
+ "data_deps", |
+ "executable", |
+ "nmf", |
+ "testonly", |
+ "public_deps", |
+ ]) |
+ |
+ script = "//ppapi/tests/create_nonsfi_test_nmf.py" |
+ sources = [ |
+ executable, |
+ ] |
+ outputs = [ |
+ nmf, |
+ ] |
+ if (target_cpu == "x86") { |
+ arch = "x86-32" |
+ } else if (target_cpu == "x64") { |
+ arch = "x86-64" |
+ } else if (target_cpu == "arm") { |
Roland McGrath
2015/11/11 21:44:32
This can just default to arch = current_cpu.
All o
Petr Hosek
2015/11/11 23:35:03
Done.
Petr Hosek
2015/11/13 00:37:38
Actually, in this case we really want target_cpu a
|
+ arch = "arm" |
+ } |
+ args = [ |
+ "--program=" + rebase_path(executable, root_build_dir), |
+ "--arch=${arch}", |
+ "--output=" + rebase_path(nmf, root_build_dir), |
+ ] |
+ } |
+} |