OLD | NEW |
| (Empty) |
1 # Copyright (c) 2012 The Chromium 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 { | |
6 'includes': [ | |
7 '../../../../native_client/build/untrusted.gypi', | |
8 ], | |
9 'target_defaults': { | |
10 # We need to override the variables in untrusted.gypi outside of a | |
11 # target_condition block because the target_condition block in | |
12 # untrusted gypi is fully evaluated and interpolated before any of the | |
13 # target_condition blocks in this file are expanded. This means that any | |
14 # variables overriden inside a target_condition block in this file will not | |
15 # affect the values in untrusted.gypi. | |
16 'variables': { | |
17 'test_files': [], | |
18 'nacl_newlib_out_dir': '<(PRODUCT_DIR)/nacl_test_data/newlib', | |
19 'nacl_glibc_out_dir': '<(PRODUCT_DIR)/nacl_test_data/glibc', | |
20 'nacl_pnacl_newlib_out_dir': '<(PRODUCT_DIR)/nacl_test_data/pnacl', | |
21 'target_conditions': [ | |
22 ['nexe_target!=""', { | |
23 # These variables are used for nexe building and for library building, | |
24 # so they should be unconditionally re-defined. | |
25 'out_newlib32': '>(nacl_newlib_out_dir)/>(nexe_target)_newlib_x86_32.n
exe', | |
26 'out_newlib64': '>(nacl_newlib_out_dir)/>(nexe_target)_newlib_x86_64.n
exe', | |
27 'out_newlib_arm': '>(nacl_newlib_out_dir)/>(nexe_target)_newlib_arm.ne
xe', | |
28 'nmf_newlib': '>(nacl_newlib_out_dir)/>(nexe_target).nmf', | |
29 'out_glibc32': '>(nacl_glibc_out_dir)/>(nexe_target)_glibc_x86_32.nexe
', | |
30 'out_glibc64': '>(nacl_glibc_out_dir)/>(nexe_target)_glibc_x86_64.nexe
', | |
31 'out_glibc_arm': '>(nacl_glibc_out_dir)/>(nexe_target)_glibc_arm.nexe'
, | |
32 'nmf_glibc': '>(nacl_glibc_out_dir)/>(nexe_target).nmf', | |
33 'out_pnacl_newlib': '>(nacl_pnacl_newlib_out_dir)/>(nexe_target)_newli
b_pnacl.pexe', | |
34 'nmf_pnacl_newlib': '>(nacl_pnacl_newlib_out_dir)/>(nexe_target).nmf', | |
35 }], | |
36 ], | |
37 }, | |
38 'dependencies': [ | |
39 '<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_lib', | |
40 '<(DEPTH)/ppapi/ppapi_untrusted.gyp:ppapi_cpp_lib', | |
41 '<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib', | |
42 ], | |
43 'target_conditions': [ | |
44 ['test_files!=[] and build_newlib==1', { | |
45 'copies': [ | |
46 { | |
47 'destination': '>(nacl_newlib_out_dir)', | |
48 'files': [ | |
49 '>@(test_files)', | |
50 ], | |
51 }, | |
52 ], | |
53 }], | |
54 ['test_files!=[] and "<(target_arch)"!="arm" and disable_glibc==0 and buil
d_glibc==1', { | |
55 'copies': [ | |
56 { | |
57 'destination': '>(nacl_glibc_out_dir)', | |
58 'files': [ | |
59 '>@(test_files)', | |
60 ], | |
61 }, | |
62 ], | |
63 }], | |
64 ['test_files!=[] and build_pnacl_newlib==1 and disable_pnacl==0', { | |
65 'copies': [ | |
66 { | |
67 'destination': '>(nacl_pnacl_newlib_out_dir)', | |
68 'files': [ | |
69 '>@(test_files)', | |
70 ], | |
71 }, | |
72 ], | |
73 }], | |
74 ['nexe_target!=""', { | |
75 'variables': { | |
76 # Patch over the fact that untrusted.gypi doesn't define these in all | |
77 # cases. | |
78 'enable_x86_64%': 0, | |
79 'enable_x86_32%': 0, | |
80 'enable_arm%': 0, | |
81 'include_dirs': [ | |
82 '<(DEPTH)', | |
83 ], | |
84 'link_flags': [ | |
85 '-lppapi_cpp', | |
86 '-lppapi', | |
87 '-pthread', | |
88 ], | |
89 'extra_args': [ | |
90 '--strip-all', | |
91 ], | |
92 }, | |
93 'target_conditions': [ | |
94 ['build_newlib==1', { | |
95 'actions': [ | |
96 { | |
97 'action_name': 'Generate NEWLIB NMF', | |
98 # Unlike glibc, nexes are not actually inputs - only the names m
atter. | |
99 # We don't have the nexes as inputs because the ARM nexe may not | |
100 # exist. However, VS 2010 seems to blackhole this entire target
if | |
101 # there are no inputs to this action. To work around this we ad
d a | |
102 # bogus input. | |
103 'inputs': [], | |
104 'outputs': ['>(nmf_newlib)'], | |
105 'action': [ | |
106 'python', | |
107 '<(DEPTH)/native_client_sdk/src/tools/create_nmf.py', | |
108 '>@(_inputs)', | |
109 '--output=>(nmf_newlib)', | |
110 ], | |
111 'target_conditions': [ | |
112 ['enable_x86_64==1', { | |
113 'inputs': ['>(out_newlib64)'], | |
114 }], | |
115 ['enable_x86_32==1', { | |
116 'inputs': ['>(out_newlib32)'], | |
117 }], | |
118 ['enable_arm==1', { | |
119 'inputs': ['>(out_newlib_arm)'], | |
120 }], | |
121 ], | |
122 }, | |
123 ], | |
124 }], | |
125 ['"<(target_arch)"!="arm" and disable_glibc==0 and build_glibc==1', { | |
126 'variables': { | |
127 # NOTE: Use /lib, not /lib64 here; it is a symbolic link which | |
128 # doesn't work on Windows. | |
129 'libdir_glibc64': '>(nacl_glibc_tc_root)/x86_64-nacl/lib', | |
130 'libdir_glibc32': '>(nacl_glibc_tc_root)/x86_64-nacl/lib32', | |
131 'nacl_objdump': '>(nacl_glibc_tc_root)/bin/x86_64-nacl-objdump', | |
132 }, | |
133 'actions': [ | |
134 { | |
135 'action_name': 'Generate GLIBC NMF and copy libs', | |
136 'inputs': [], | |
137 # NOTE: There is no explicit dependency for the lib32 | |
138 # and lib64 directories created in the PRODUCT_DIR. | |
139 # They are created as a side-effect of NMF creation. | |
140 'outputs': ['>(nmf_glibc)'], | |
141 'action': [ | |
142 'python', | |
143 '<(DEPTH)/native_client_sdk/src/tools/create_nmf.py', | |
144 '>@(_inputs)', | |
145 '--objdump=>(nacl_objdump)', | |
146 '--output=>(nmf_glibc)', | |
147 '--path-prefix=>(nexe_target)_libs', | |
148 '--stage-dependencies=<(nacl_glibc_out_dir)', | |
149 ], | |
150 'target_conditions': [ | |
151 ['enable_x86_64==1', { | |
152 'inputs': ['>(out_glibc64)'], | |
153 'action': [ | |
154 '--library-path=>(libdir_glibc64)', | |
155 '--library-path=<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64'
, | |
156 ], | |
157 }], | |
158 ['enable_x86_32==1', { | |
159 'inputs': ['>(out_glibc32)'], | |
160 'action': [ | |
161 '--library-path=>(libdir_glibc32)', | |
162 '--library-path=<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32'
, | |
163 ], | |
164 }], | |
165 # TODO(ncbray) handle arm case. We don't have ARM glibc yet. | |
166 ], | |
167 }, | |
168 ], | |
169 }], | |
170 ['build_pnacl_newlib==1 and disable_pnacl==0', { | |
171 'actions': [ | |
172 { | |
173 'action_name': 'Generate PNACL NEWLIB NMF', | |
174 'inputs': ['>(out_pnacl_newlib)'], | |
175 'outputs': ['>(nmf_pnacl_newlib)'], | |
176 'action': [ | |
177 'python', | |
178 '<(DEPTH)/native_client_sdk/src/tools/create_nmf.py', | |
179 '>@(_inputs)', | |
180 '--output=>(nmf_pnacl_newlib)', | |
181 ], | |
182 }, | |
183 ], | |
184 }], | |
185 ], | |
186 }], | |
187 ], | |
188 }, | |
189 } | |
OLD | NEW |