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

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

Issue 1432313002: Factor out nmf generation into a GN template (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Allow setting path for staging libraries Created 5 years, 1 month 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
« no previous file with comments | « no previous file | ppapi/BUILD.gn » ('j') | ppapi/BUILD.gn » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 # found in the LICENSE file.
4
5 import("//build/config/features.gni")
6 import("//build/config/nacl/config.gni")
7
8 # Generate a nmf file
9 #
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.
12 #
13 # Variables:
14 # executables: .nexe/.pexe/.bc executables to generate nmf for
15 # lib_prefix: path to prepend to shared libraries in the nmf
16 # nmf: the name and the path of the output file
17 # nmfflags: additional flags for the nmf generator
18 # stage_dependencies: directory for staging libraries
19 template("generate_nmf") {
20 assert(defined(invoker.executables), "Must define executables")
21 assert(defined(invoker.nmf), "Must define nmf")
22
23 action(target_name) {
24 nmfflags = []
25
26 forward_variables_from(invoker,
27 [
28 "deps",
29 "data_deps",
30 "executables",
31 "lib_prefix",
32 "nmf",
33 "nmfflags",
34 "public_deps",
35 "stage_dependencies",
36 "testonly",
37 ])
38
39 script = "//native_client_sdk/src/tools/create_nmf.py"
40 sources = executables
41 outputs = [
42 nmf,
43 ]
44 if (is_nacl_glibc) {
45 if (defined(stage_dependencies)) {
46 nmfflags += [ "--stage-dependencies=" +
47 rebase_path(stage_dependencies, root_build_dir) ]
48 lib_path = stage_dependencies
49 } else {
50 lib_path = root_build_dir
51 }
52 if (defined(lib_prefix)) {
53 nmfflags += [ "--lib-prefix=" + lib_prefix ]
54 lib_path += "/${lib_prefix}"
55 }
56
57 # NOTE: There is no explicit dependency for the lib32
58 # and lib64 directories created in the product directory.
59 # They are created as a side-effect of nmf creation.
60 if (current_cpu == "x86") {
61 nmfflags += [ "--library-path=" +
62 rebase_path("${nacl_toolchain_tooldir}/lib32") ]
63 data = [
64 "${lib_path}/lib32/",
65 ]
66 } else if (current_cpu == "x64") {
67 nmfflags +=
68 [ "--library-path=" + rebase_path("${nacl_toolchain_tooldir}/lib") ]
69 data = [
70 "${lib_path}/lib64/",
71 ]
72 } else {
73 nmfflags +=
74 [ "--library-path=" + rebase_path("${nacl_toolchain_tooldir}/lib") ]
75 data = [
76 "${lib_path}/lib/",
77 ]
78 }
79 }
80 args = [
81 "--no-default-libpath",
82 "--objdump=" + rebase_path("${nacl_toolprefix}objdump"),
83 "--output=" + rebase_path(nmf, root_build_dir),
84 ] + nmfflags + rebase_path(sources, root_build_dir)
85 if (is_nacl_glibc && current_cpu == "arm") {
86 deps += [ "//native_client/src/untrusted/elf_loader:elf_loader" ]
87 }
88 }
89 }
90
91 # Generate a nmf file for Non-SFI tests
92 #
93 # Non-SFI tests use a different manifest format from regular Native Client and
94 # as such requires a different generator.
95 #
96 # Variables:
97 # executable: Non-SFI .nexe executable to generate nmf for
98 # nmf: the name and the path of the output file
99 template("generate_nonsfi_test_nmf") {
100 assert(defined(invoker.executable), "Must define executable")
101 assert(defined(invoker.nmf), "Must define nmf")
102
103 action(target_name) {
104 forward_variables_from(invoker,
105 [
106 "deps",
107 "data_deps",
108 "executable",
109 "nmf",
110 "testonly",
111 "public_deps",
112 ])
113
114 script = "//ppapi/tests/create_nonsfi_test_nmf.py"
115 sources = [
116 executable,
117 ]
118 outputs = [
119 nmf,
120 ]
121 if (target_cpu == "x86") {
Roland McGrath 2015/11/13 19:08:20 Add a comment saying why this is target_cpu rather
Petr Hosek 2015/11/13 20:38:09 Done.
122 arch = "x86-32"
123 } else if (target_cpu == "x64") {
124 arch = "x86-64"
125 } else {
126 arch = target_cpu
127 }
128 args = [
129 "--program=" + rebase_path(executable, root_build_dir),
130 "--arch=${arch}",
131 "--output=" + rebase_path(nmf, root_build_dir),
132 ]
133 }
134 }
OLDNEW
« no previous file with comments | « no previous file | ppapi/BUILD.gn » ('j') | ppapi/BUILD.gn » ('J')

Powered by Google App Engine
This is Rietveld 408576698