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  'targets': [
7    {
8      # GN version: //mojo/public/c/system
9      'target_name': 'mojo_system',
10      'type': 'static_library',
11      'defines': [
12        'MOJO_SYSTEM_IMPLEMENTATION',
13      ],
14      'include_dirs': [
15        '..',
16      ],
17      'direct_dependent_settings': {
18        'include_dirs': [
19          '..',
20        ],
21      },
22      'all_dependent_settings': {
23        'conditions': [
24          # We need to be able to call the MojoSetSystemThunks() function in
25          # system_thunks.cc
26          ['OS=="android"', {
27            'ldflags!': [
28              '-Wl,--exclude-libs=ALL',
29            ],
30          }],
31        ],
32      },
33      'sources': [
34        'public/c/system/buffer.h',
35        'public/c/system/core.h',
36        'public/c/system/data_pipe.h',
37        'public/c/system/functions.h',
38        'public/c/system/macros.h',
39        'public/c/system/message_pipe.h',
40        'public/c/system/system_export.h',
41        'public/c/system/types.h',
42        'public/platform/native/system_thunks.cc',
43        'public/platform/native/system_thunks.h',
44      ],
45    },
46    {
47      # GN version: //mojo/public/cpp/bindings
48      'target_name': 'mojo_cpp_bindings',
49      'type': 'static_library',
50      'include_dirs': [
51        '..'
52      ],
53      'sources': [
54        'public/cpp/bindings/array.h',
55        'public/cpp/bindings/callback.h',
56        'public/cpp/bindings/error_handler.h',
57        'public/cpp/bindings/interface_impl.h',
58        'public/cpp/bindings/interface_ptr.h',
59        'public/cpp/bindings/interface_request.h',
60        'public/cpp/bindings/message.h',
61        'public/cpp/bindings/message_filter.h',
62        'public/cpp/bindings/no_interface.h',
63        'public/cpp/bindings/string.h',
64        'public/cpp/bindings/type_converter.h',
65        'public/cpp/bindings/lib/array_internal.h',
66        'public/cpp/bindings/lib/array_internal.cc',
67        'public/cpp/bindings/lib/array_serialization.h',
68        'public/cpp/bindings/lib/bindings_internal.h',
69        'public/cpp/bindings/lib/bindings_serialization.cc',
70        'public/cpp/bindings/lib/bindings_serialization.h',
71        'public/cpp/bindings/lib/bounds_checker.cc',
72        'public/cpp/bindings/lib/bounds_checker.h',
73        'public/cpp/bindings/lib/buffer.h',
74        'public/cpp/bindings/lib/callback_internal.h',
75        'public/cpp/bindings/lib/connector.cc',
76        'public/cpp/bindings/lib/connector.h',
77        'public/cpp/bindings/lib/filter_chain.cc',
78        'public/cpp/bindings/lib/filter_chain.h',
79        'public/cpp/bindings/lib/fixed_buffer.cc',
80        'public/cpp/bindings/lib/fixed_buffer.h',
81        'public/cpp/bindings/lib/interface_impl_internal.h',
82        'public/cpp/bindings/lib/interface_ptr_internal.h',
83        'public/cpp/bindings/lib/message.cc',
84        'public/cpp/bindings/lib/message_builder.cc',
85        'public/cpp/bindings/lib/message_builder.h',
86        'public/cpp/bindings/lib/message_filter.cc',
87        'public/cpp/bindings/lib/message_header_validator.cc',
88        'public/cpp/bindings/lib/message_header_validator.h',
89        'public/cpp/bindings/lib/message_internal.h',
90        'public/cpp/bindings/lib/message_queue.cc',
91        'public/cpp/bindings/lib/message_queue.h',
92        'public/cpp/bindings/lib/no_interface.cc',
93        'public/cpp/bindings/lib/router.cc',
94        'public/cpp/bindings/lib/router.h',
95        'public/cpp/bindings/lib/shared_data.h',
96        'public/cpp/bindings/lib/shared_ptr.h',
97        'public/cpp/bindings/lib/string_serialization.h',
98        'public/cpp/bindings/lib/string_serialization.cc',
99        'public/cpp/bindings/lib/validation_errors.cc',
100        'public/cpp/bindings/lib/validation_errors.h',
101      ],
102    },
103    {
104      # GN version: //mojo/public/js/bindings
105      'target_name': 'mojo_js_bindings',
106      'type': 'static_library',
107      'include_dirs': [
108        '..'
109      ],
110      'sources': [
111        'public/js/bindings/constants.cc',
112        'public/js/bindings/constants.h',
113      ],
114    },
115    {
116      # GN version: //mojo/public/cpp/environment:standalone
117      'target_name': 'mojo_environment_standalone',
118      'type': 'static_library',
119      'sources': [
120        'public/c/environment/async_waiter.h',
121        'public/c/environment/logger.h',
122        'public/cpp/environment/environment.h',
123        'public/cpp/environment/lib/default_async_waiter.cc',
124        'public/cpp/environment/lib/default_async_waiter.h',
125        'public/cpp/environment/lib/default_logger.cc',
126        'public/cpp/environment/lib/default_logger.h',
127        'public/cpp/environment/lib/environment.cc',
128        'public/cpp/environment/lib/logging.cc',
129        'public/cpp/environment/logging.h',
130      ],
131      'include_dirs': [
132        '..',
133      ],
134    },
135    {
136      # GN version: //mojo/public/cpp/utility
137      'target_name': 'mojo_utility',
138      'type': 'static_library',
139      'sources': [
140        'public/cpp/utility/mutex.h',
141        'public/cpp/utility/run_loop.h',
142        'public/cpp/utility/run_loop_handler.h',
143        'public/cpp/utility/thread.h',
144        'public/cpp/utility/lib/mutex.cc',
145        'public/cpp/utility/lib/run_loop.cc',
146        'public/cpp/utility/lib/thread.cc',
147        'public/cpp/utility/lib/thread_local.h',
148        'public/cpp/utility/lib/thread_local_posix.cc',
149        'public/cpp/utility/lib/thread_local_win.cc',
150      ],
151      'conditions': [
152        # See crbug.com/342893:
153        ['OS=="win"', {
154          'sources!': [
155            'public/cpp/utility/mutex.h',
156            'public/cpp/utility/thread.h',
157            'public/cpp/utility/lib/mutex.cc',
158            'public/cpp/utility/lib/thread.cc',
159          ],
160        }],
161      ],
162      'include_dirs': [
163        '..',
164      ],
165    },
166    {
167      # GN version: //mojo/public/interfaces/application:application
168      'target_name': 'mojo_application_bindings',
169      'type': 'static_library',
170      'sources': [
171        'public/interfaces/application/application.mojom',
172        'public/interfaces/application/service_provider.mojom',
173        'public/interfaces/application/shell.mojom',
174      ],
175      'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ],
176      'dependencies': [
177        'mojo_cpp_bindings',
178      ],
179      'export_dependent_settings': [
180        'mojo_cpp_bindings',
181      ],
182    },
183    {
184      # GN version: //mojo/public/cpp/application
185      'target_name': 'mojo_application_base',
186      'type': 'static_library',
187      'sources': [
188        'public/cpp/application/application_connection.h',
189        'public/cpp/application/application_delegate.h',
190        'public/cpp/application/application_impl.h',
191        'public/cpp/application/connect.h',
192        'public/cpp/application/service_provider_impl.h',
193        'public/cpp/application/interface_factory.h',
194        'public/cpp/application/interface_factory_impl.h',
195        'public/cpp/application/lib/application_connection.cc',
196        'public/cpp/application/lib/application_delegate.cc',
197        'public/cpp/application/lib/application_impl.cc',
198        'public/cpp/application/lib/service_provider_impl.cc',
199        'public/cpp/application/lib/service_connector.cc',
200        'public/cpp/application/lib/service_connector.h',
201        'public/cpp/application/lib/service_registry.cc',
202        'public/cpp/application/lib/service_registry.h',
203        'public/cpp/application/lib/weak_service_provider.cc',
204        'public/cpp/application/lib/weak_service_provider.h',
205      ],
206      'dependencies': [
207        'mojo_application_bindings',
208      ],
209      'export_dependent_settings': [
210        'mojo_application_bindings',
211      ],
212    },
213    {
214      # GN version: //mojo/public/cpp/application:standalone"
215      'target_name': 'mojo_application_standalone',
216      'type': 'static_library',
217      'sources': [
218        'public/cpp/application/lib/application_runner.cc',
219        'public/cpp/application/application_runner.h',
220      ],
221      'dependencies': [
222        'mojo_application_base',
223        'mojo_environment_standalone',
224      ],
225      'export_dependent_settings': [
226        'mojo_application_base',
227      ],
228    },
229  ],
230  'conditions': [
231    ['OS == "android"', {
232      'targets': [
233        {
234          # GN version: //mojo/public/java_system
235          'target_name': 'mojo_public_java',
236          'type': 'none',
237          'variables': {
238            'java_in_dir': 'public/java/system',
239          },
240          'includes': [ '../build/java.gypi' ],
241        },
242        {
243          # GN version: //mojo/public/java_bindings
244          'target_name': 'mojo_bindings_java',
245          'type': 'none',
246          'variables': {
247            'java_in_dir': 'public/java/bindings',
248          },
249          'dependencies': [
250            'mojo_public_java',
251          ],
252          'includes': [ '../build/java.gypi' ],
253        },
254      ],
255    }],
256  ],
257}
258