Upstream version 5.34.92.0
[platform/framework/web/crosswalk.git] / src / third_party / liblouis / liblouis_nacl.gyp
1 # Copyright 2014 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   'variables': {
7     'braille_test_data_dir': '<(PRODUCT_DIR)/chromevox_test_data/braille',
8     'braille_chromevox_dir': '<(PRODUCT_DIR)/resources/chromeos/chromevox/chromevox/background/braille',
9     'table_files': [
10       '>!@pymod_do_main(liblouis_list_tables -D overrides/tables -D src/tables tables.json)',
11     ],
12   },
13   # x86 targets build both 32 and 64 bit binaries by default.  We only need
14   # the one that matches our target architecture.
15   'target_defaults': {
16     'conditions': [
17       ['target_arch=="ia32"', {
18         'variables': {
19           'enable_x86_64': 0,
20         },
21       }],
22       ['target_arch=="x64"', {
23         'variables': {
24           'enable_x86_32': 0,
25         },
26       }],
27     ],
28   },
29   'includes': [
30     '../../build/common_untrusted.gypi',
31   ],
32   'conditions': [
33     ['disable_nacl==0 and disable_nacl_untrusted==0', {
34       'targets': [
35         {
36           'target_name': 'liblouis_nacl',
37           'type': 'none',
38           'variables': {
39             'nacl_untrusted_build': 1,
40             'nlib_target': 'liblouis_nacl.a',
41             'build_newlib': 1,
42           },
43           'compile_flags': [
44             '-Wno-switch',
45             '-Wno-unused-but-set-variable',
46           ],
47           'include_dirs': [
48             'overrides/liblouis',
49             'src/liblouis',
50             '.',
51           ],
52           'direct_dependent_settings': {
53             'include_dirs': [
54               'overrides',
55             ],
56           },
57           'sources': [
58             'overrides/liblouis/config.h',
59             'overrides/liblouis/liblouis.h',
60             'overrides/liblouis/compileTranslationTable.c',
61             'src/liblouis/lou_backTranslateString.c',
62             'src/liblouis/lou_translateString.c',
63             'src/liblouis/transcommon.ci',
64             'src/liblouis/wrappers.c',
65           ],
66           'dependencies': [
67             '../../native_client/tools.gyp:prep_toolchain',
68           ],
69         },
70         {
71           'target_name': 'liblouis_nacl_wrapper_nacl',
72           'type': 'none',
73           'variables': {
74             'nacl_untrusted_build': 1,
75             'nexe_target': 'liblouis_nacl',
76             'out_newlib64': '<(braille_test_data_dir)/>(nexe_target)_x86_64.nexe',
77             'out_newlib32': '<(braille_test_data_dir)/>(nexe_target)_x86_32.nexe',
78             'out_newlib_arm': '<(braille_test_data_dir)/>(nexe_target)_arm.nexe',
79             'build_newlib': 1,
80             'extra_args': [
81               '--strip-debug',
82             ],
83             'nmf': '<(braille_test_data_dir)/>(nexe_target).nmf',
84             'target_conditions': [
85               ['enable_x86_64==1', {
86                 'nexe_files': ['>(out_newlib64)'],
87               }],
88               ['enable_x86_32==1', {
89                 'nexe_files': ['>(out_newlib32)'],
90               }],
91               ['enable_arm==1', {
92                 'nexe_files': ['>(out_newlib_arm)'],
93               }],
94             ],
95           },
96           'sources': [
97             'nacl_wrapper/liblouis_instance.h',
98             'nacl_wrapper/liblouis_instance.cc',
99             'nacl_wrapper/liblouis_module.h',
100             'nacl_wrapper/liblouis_module.cc',
101             'nacl_wrapper/liblouis_wrapper.h',
102             'nacl_wrapper/liblouis_wrapper.cc',
103             'nacl_wrapper/translation_params.h',
104             'nacl_wrapper/translation_result.h',
105           ],
106           'link_flags': [
107             '-lppapi',
108             '-lppapi_cpp',
109             '-llouis_nacl',
110             '-ljsoncpp_nacl',
111             '-lpthread',
112             '-lnacl_io',
113           ],
114           'dependencies': [
115             '../../native_client/src/untrusted/nacl/nacl.gyp:nacl_lib',
116             '../../native_client/tools.gyp:prep_toolchain',
117             '../../native_client_sdk/native_client_sdk_untrusted.gyp:nacl_io_untrusted',
118             '../../ppapi/native_client/native_client.gyp:ppapi_lib',
119             '../../ppapi/ppapi_untrusted.gyp:ppapi_cpp_lib',
120             '../jsoncpp/jsoncpp_nacl.gyp:jsoncpp_nacl',
121             'liblouis_nacl',
122           ],
123           'actions': [
124             {
125               'action_name': 'Generate NEWLIB NMF',
126               'inputs': [
127                 '>@(nexe_files)',
128               ],
129               'outputs': ['>(nmf)'],
130               'action': [
131                 'python',
132                 '<(DEPTH)/native_client_sdk/src/tools/create_nmf.py',
133                 '>@(_inputs)',
134                 '--output=>(nmf)',
135               ],
136             },
137           ],
138           # Copy specific files into the product directory to avoid
139           # copying over the unstripped binary file.
140           'copies': [
141             {
142               'destination': '<(braille_chromevox_dir)',
143               'files': [
144                 '<(nmf)',
145                 '>@(nexe_files)',
146                 'tables.json',
147               ],
148             },
149             {
150               'destination': '<(braille_chromevox_dir)/tables',
151               'files': [
152                 '<@(table_files)',
153               ],
154             },
155           ],
156         },
157         {
158           'target_name': 'liblouis_test_data',
159           'type': 'none',
160           'variables': {
161             'test_extension_dir': '<(DEPTH)/chrome/test/data/chromeos/liblouis_nacl',
162           },
163           'dependencies': [
164             'liblouis_nacl_wrapper_nacl',
165           ],
166           'copies': [
167             {
168               'destination': '<(braille_test_data_dir)',
169               'files': [
170                 'tables.json',
171                 '<(test_extension_dir)/manifest.json',
172                 '<(test_extension_dir)/test.js',
173               ],
174             },
175             {
176               'destination': '<(braille_test_data_dir)/tables',
177               'files': [
178                 '<@(table_files)',
179               ],
180             },
181           ],
182         },
183       ],
184     }],
185   ],
186 }