Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / ppapi / native_client / src / untrusted / pnacl_support_extension / pnacl_support_extension.gyp
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   # re: untrusted.gypi -- Though this doesn't really use build_nexe.py or
7   # anything, it depends on untrusted nexes from the toolchain and for the shim.
8   'includes': [
9     '../../../../../build/common_untrusted.gypi',
10   ],
11   'targets': [
12   {
13     'target_name': 'untar_pnacl_translator',
14     'type': 'none',
15     'actions': [{
16       'action_name': 'Untar pnacl_translator',
17       'description': 'Untar pnacl_translator',
18       'inputs': [
19         '<(DEPTH)/native_client/build/package_version/package_version.py',
20         '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/pnacl_translator.json',
21       ],
22       'outputs': ['<(SHARED_INTERMEDIATE_DIR)/<(TOOLCHAIN_OS)_x86/pnacl_translator/pnacl_translator.json'],
23       'action': [
24         'python',
25         '<(DEPTH)/native_client/build/package_version/package_version.py',
26         '--quiet',
27         '--packages', 'pnacl_translator',
28         '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
29         '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)',
30         'extract',
31       ],
32     }],
33   },
34   {
35     'target_name': 'pnacl_support_extension',
36     'type': 'none',
37     'conditions': [
38       ['disable_nacl==0 and disable_pnacl==0 and disable_nacl_untrusted==0', {
39         'dependencies': [
40           '../../../../../ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:browser',
41           '../../../../../native_client/tools.gyp:prep_toolchain',
42           'untar_pnacl_translator',
43         ],
44         'sources': [
45           'pnacl_component_crx_gen.py',
46         ],
47         # We could use 'copies', but we want to rename the files
48         # in a white-listed way first.  Thus use a script.
49         'actions': [
50           {
51             'action_name': 'generate_pnacl_support_extension',
52             'inputs': [
53               'pnacl_component_crx_gen.py',
54               # A stamp file representing the contents of pnacl_translator.
55               '<(SHARED_INTERMEDIATE_DIR)/<(TOOLCHAIN_OS)_x86/pnacl_translator/pnacl_translator.json',
56               '<(DEPTH)/native_client/pnacl/driver/pnacl_info_template.json',
57               '<(DEPTH)/native_client/toolchain_revisions/pnacl_newlib.json',
58             ],
59             'conditions': [
60                 # On windows we need both ia32 and x64.
61                 ['OS=="win"', {
62                     'outputs': [
63                       '<(PRODUCT_DIR)/pnacl/pnacl_public_pnacl_json',
64                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_crtbegin_o',
65                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_ld_nexe',
66                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_libcrt_platform_a',
67                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_libgcc_a',
68                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_libgcc_eh_a',
69                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_libpnacl_irt_shim_a',
70                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_pnacl_llc_nexe',
71                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_crtbegin_o',
72                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_ld_nexe',
73                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_libcrt_platform_a',
74                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_libgcc_a',
75                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_libgcc_eh_a',
76                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_libpnacl_irt_shim_a',
77                       '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_pnacl_llc_nexe',
78                     ],
79                     'inputs': [
80                       '>(tc_lib_dir_pnacl_translate)/lib-x86-32/browser/libpnacl_irt_shim.a',
81                       '>(tc_lib_dir_pnacl_translate)/lib-x86-64/browser/libpnacl_irt_shim.a',
82                     ],
83                     'variables': {
84                       'lib_overrides': [
85                         # Use the two freshly generated shims.
86                         '--lib_override=ia32,>(tc_lib_dir_pnacl_translate)/lib-x86-32/browser/libpnacl_irt_shim.a',
87                         '--lib_override=x64,>(tc_lib_dir_pnacl_translate)/lib-x86-64/browser/libpnacl_irt_shim.a',
88                       ],
89                     },
90                 }],
91                 # Non-windows installers only need the matching architecture.
92                 ['OS!="win"', {
93                    'conditions': [
94                       ['target_arch=="arm"', {
95                         'outputs': [
96                           '<(PRODUCT_DIR)/pnacl/pnacl_public_pnacl_json',
97                           '<(PRODUCT_DIR)/pnacl/pnacl_public_arm_crtbegin_o',
98                           '<(PRODUCT_DIR)/pnacl/pnacl_public_arm_ld_nexe',
99                           '<(PRODUCT_DIR)/pnacl/pnacl_public_arm_libcrt_platform_a',
100                           '<(PRODUCT_DIR)/pnacl/pnacl_public_arm_libgcc_a',
101                           '<(PRODUCT_DIR)/pnacl/pnacl_public_arm_libgcc_eh_a',
102                           '<(PRODUCT_DIR)/pnacl/pnacl_public_arm_libpnacl_irt_shim_a',
103                           '<(PRODUCT_DIR)/pnacl/pnacl_public_arm_pnacl_llc_nexe',
104                         ],
105                         'inputs': [
106                           '>(tc_lib_dir_pnacl_translate)/lib-arm/browser/libpnacl_irt_shim.a',
107                         ],
108                         'variables': {
109                           'lib_overrides': [
110                             # Use the freshly generated shim.
111                             '--lib_override=arm,>(tc_lib_dir_pnacl_translate)/lib-arm/browser/libpnacl_irt_shim.a',
112                           ],
113                         },
114                       }],
115                       ['target_arch=="mipsel"', {
116                         'outputs': [
117                           '<(PRODUCT_DIR)/pnacl/pnacl_public_pnacl_json',
118                           '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_crtbegin_o',
119                           '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_ld_nexe',
120                           '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_libcrt_platform_a',
121                           '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_libgcc_a',
122                           '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_libgcc_eh_a',
123                           '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_libpnacl_irt_shim_a',
124                           '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_llc_nexe',
125                         ],
126                         'inputs': [
127                           '>(tc_lib_dir_pnacl_translate)/lib-mips32/browser/libpnacl_irt_shim.a',
128                         ],
129                         'variables': {
130                           'lib_overrides': [
131                             # Use the freshly generated shim.
132                             '--lib_override=mipsel,>(tc_lib_dir_pnacl_translate)/lib-mips32/browser/libpnacl_irt_shim.a',
133                           ],
134                         },
135                       }],
136                       ['target_arch=="ia32"', {
137                         'outputs': [
138                           '<(PRODUCT_DIR)/pnacl/pnacl_public_pnacl_json',
139                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_crtbegin_o',
140                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_ld_nexe',
141                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_libcrt_platform_a',
142                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_libgcc_a',
143                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_libgcc_eh_a',
144                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_libpnacl_irt_shim_a',
145                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_pnacl_llc_nexe',
146                         ],
147                         'inputs': [
148                           '>(tc_lib_dir_pnacl_translate)/lib-x86-32/browser/libpnacl_irt_shim.a',
149                         ],
150                         'variables': {
151                           'lib_overrides': [
152                             # Use the freshly generated shim.
153                             '--lib_override=ia32,>(tc_lib_dir_pnacl_translate)/lib-x86-32/browser/libpnacl_irt_shim.a',
154                           ],
155                         },
156                       }],
157                       ['target_arch=="x64"', {
158                         'outputs': [
159                           '<(PRODUCT_DIR)/pnacl/pnacl_public_pnacl_json',
160                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_crtbegin_o',
161                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_ld_nexe',
162                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_libcrt_platform_a',
163                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_libgcc_a',
164                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_libgcc_eh_a',
165                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_libpnacl_irt_shim_a',
166                           '<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_pnacl_llc_nexe',
167                         ],
168                         'inputs': [
169                           '>(tc_lib_dir_pnacl_translate)/lib-x86-64/browser/libpnacl_irt_shim.a',
170                         ],
171                         'variables': {
172                           'lib_overrides': [
173                             # Use the freshly generated shim.
174                             '--lib_override=x64,>(tc_lib_dir_pnacl_translate)/lib-x86-64/browser/libpnacl_irt_shim.a',
175                           ],
176                         },
177                       }],
178                   ],
179                }],
180             ],
181             'action': [
182               'python', 'pnacl_component_crx_gen.py',
183               '--dest=<(PRODUCT_DIR)/pnacl',
184               '<@(lib_overrides)',
185               '--target_arch=<(target_arch)',
186               '--info_template_path=<(DEPTH)/native_client/pnacl/driver/pnacl_info_template.json',
187               '--pnacl_translator_path=<(SHARED_INTERMEDIATE_DIR)/<(TOOLCHAIN_OS)_x86/pnacl_translator',
188               '--package_version_path=<(DEPTH)/native_client/build/package_version/package_version.py',
189               '--pnacl_package_name=pnacl_newlib',
190               # ABI Version Number.
191               '1',
192             ],
193           },
194         ],
195       }],
196     ],
197   }],
198 }