- add sources.
[platform/framework/web/crosswalk.git] / src / sync / sync.gyp
1 # Copyright 2013 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     'chromium_code': 1,
8   },
9
10   'includes': [
11     'sync_android.gypi',
12     'sync_tests.gypi',
13   ],
14
15   'conditions': [
16     # Notes:
17     # 1) In static mode, the public 'sync' target has a target type of 'none',
18     #    and is composed of the static library targets 'sync_api', 'sync_core',
19     #    'sync_internal_api', 'sync_notifier', and 'sync_proto'.
20     # 2) In component mode, we build the public 'sync' target into a single DLL,
21     #    which includes the contents of sync_api.gypi, sync_core.gypi,
22     #    sync_internal_api.gypi, sync_notifier.gypi, and sync_proto.gypi.
23     # 3) All external targets that depend on anything in sync/ must simply
24     #    declare a dependency on 'sync.gyp:sync'
25     ['component=="static_library"', {
26       'targets': [
27         # The public sync static library target.
28         {
29           'target_name': 'sync',
30           'type': 'none',
31           'dependencies': [
32             'sync_api',
33             'sync_core',
34             'sync_internal_api',
35             'sync_notifier',
36             'sync_proto',
37           ],
38           'export_dependent_settings': [
39             'sync_notifier',
40             'sync_proto',
41           ],
42         },
43
44         # The sync external API library.
45         {
46           'target_name': 'sync_api',
47           'type': 'static_library',
48           'variables': { 'enable_wexit_time_destructors': 1, },
49           'includes': [
50             'sync_api.gypi',
51           ],
52           'dependencies': [
53             'sync_internal_api',
54             'sync_proto',
55           ],
56         },
57
58         # The core sync library.
59         {
60           'target_name': 'sync_core',
61           'type': 'static_library',
62           'variables': { 'enable_wexit_time_destructors': 1, },
63           'includes': [
64             'sync_core.gypi',
65           ],
66           'dependencies': [
67             'sync_notifier',
68             'sync_proto',
69           ],
70           'export_dependent_settings': [
71             'sync_notifier',
72             'sync_proto',
73           ],
74         },
75
76         # The sync internal API library.
77         {
78           'target_name': 'sync_internal_api',
79           'type': 'static_library',
80           'variables': { 'enable_wexit_time_destructors': 1, },
81           'includes': [
82             'sync_internal_api.gypi',
83           ],
84           'dependencies': [
85             'sync_core',
86             'sync_notifier',
87             'sync_proto',
88           ],
89           'export_dependent_settings': [
90             'sync_core',
91             'sync_proto',
92           ],
93         },
94
95         # The sync notifications library.
96         {
97           'target_name': 'sync_notifier',
98           'type': 'static_library',
99           'variables': { 'enable_wexit_time_destructors': 1, },
100           'includes': [
101             'sync_notifier.gypi',
102           ],
103         },
104
105         # The sync protocol buffer library.
106         {
107           'target_name': 'sync_proto',
108           'type': 'static_library',
109           'variables': { 'enable_wexit_time_destructors': 1, },
110           'includes': [
111             'sync_proto.gypi',
112           ],
113         },
114       ],
115     },
116     {  # component != static_library
117       'targets': [
118         # The public sync shared library target.
119         {
120           'target_name': 'sync',
121           'type': 'shared_library',
122           'variables': { 'enable_wexit_time_destructors': 1, },
123           'includes': [
124             'sync_api.gypi',
125             'sync_core.gypi',
126             'sync_internal_api.gypi',
127             'sync_notifier.gypi',
128             'sync_proto.gypi',
129           ],
130         },
131       ],
132     }],
133   ],
134 }