Get GenericScopedHandle::Set to preserve LastError code
[chromium-blink-merge.git] / skia / skia.gyp
blobb03c3b29ebc024d8fc8f8b6aa93b4548364ba96b
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.
6   'conditions': [
7     # In component mode (shared_lib), we build all of skia as a single DLL.
8     # However, in the static mode, we need to build skia as multiple targets
9     # in order to support the use case where a platform (e.g. Android) may
10     # already have a copy of skia as a system library.
11     ['component=="static_library"', {
12       'targets': [
13         {
14           'target_name': 'skia_library',
15           'type': 'static_library',
16           'includes': [
17             'skia_common.gypi',
18             'skia_library.gypi',
19             '../build/android/increase_size_for_speed.gypi',
20             # Disable LTO due to compiler error
21             # in mems_in_disjoint_alias_sets_p, at alias.c:393
22             # crbug.com/422255
23             '../build/android/disable_gcc_lto.gypi',
24           ],
25         },
26       ],
27     }],
28     ['component=="static_library"', {
29       'targets': [
30         {
31           'target_name': 'skia',
32           'type': 'none',
33           'dependencies': [
34             'skia_library',
35             'skia_chrome',
36           ],
37           'export_dependent_settings': [
38             'skia_library',
39             'skia_chrome',
40           ],
41           'direct_dependent_settings': {
42             'conditions': [
43               [ 'OS == "win"', {
44                 'defines': [
45                   'GR_GL_FUNCTION_TYPE=__stdcall',
46                 ],
47               }],
48             ],
49           },
50         },
51         {
52           'target_name': 'skia_chrome',
53           'type': 'static_library',
54           'includes': [
55             'skia_chrome.gypi',
56             'skia_common.gypi',
57             '../build/android/increase_size_for_speed.gypi',
58           ],
59         },
60       ],
61     },
62     {  # component != static_library
63       'targets': [
64         {
65           'target_name': 'skia',
66           'type': 'shared_library',
67           'includes': [
68             # Include skia_common.gypi first since it contains filename
69             # exclusion rules. This allows the following includes to override
70             # the exclusion rules.
71             'skia_common.gypi',
72             'skia_chrome.gypi',
73             'skia_library.gypi',
74             '../build/android/increase_size_for_speed.gypi',
75           ],
76           'defines': [
77             'SKIA_DLL',
78             'SKIA_IMPLEMENTATION=1',
79             'GR_GL_IGNORE_ES3_MSAA=0',
80           ],
81           'direct_dependent_settings': {
82             'conditions': [
83               [ 'OS == "win"', {
84                 'defines': [
85                   'GR_GL_FUNCTION_TYPE=__stdcall',
86                 ],
87               }],
88             ],
89             'defines': [
90               'SKIA_DLL',
91               'GR_GL_IGNORE_ES3_MSAA=0',
92             ],
93           },
94         },
95         {
96           'target_name': 'skia_library',
97           'type': 'none',
98         },
99         {
100           'target_name': 'skia_chrome',
101           'type': 'none',
102         },
103       ],
104     }],
105   ],
107   # targets that are not dependent upon the component type
108   'targets': [
109     {
110       'target_name': 'image_operations_bench',
111       'type': 'executable',
112       'dependencies': [
113         '../base/base.gyp:base',
114         'skia',
115       ],
116       'include_dirs': [
117         '..',
118       ],
119       'sources': [
120         'ext/image_operations_bench.cc',
121       ],
122     },
123     {
124       'target_name': 'filter_fuzz_stub',
125       'type': 'executable',
126       'dependencies': [
127         '../base/base.gyp:base',
128         '../base/base.gyp:test_support_base',
129         'skia.gyp:skia',
130       ],
131       'sources': [
132         'tools/filter_fuzz_stub/filter_fuzz_stub.cc',
133       ],
134       'includes': [
135         '../build/android/increase_size_for_speed.gypi',
136       ],
137     },
138     {
139       'target_name': 'skia_mojo',
140       'type': 'static_library',
141       'dependencies': [
142         'skia',
143         '../base/base.gyp:base',
144       ],
145       'includes': [
146         '../third_party/mojo/mojom_bindings_generator.gypi',
147       ],
148       'sources': [
149         # Note: file list duplicated in GN build.
150         'public/interfaces/bitmap.mojom',
151         'public/type_converters.cc',
152       ],
153     },
154   ],