d40afe1a95affbed031beb554db41ed23b827d70
[platform/framework/web/crosswalk.git] / src / third_party / skia / gyp / gpu.gyp
1 # GYP for building gpu
2 {
3   'target_defaults': {
4     'conditions': [
5       ['skia_os != "win"', {
6         'sources/': [ ['exclude', '_win.(h|cpp)$'],
7         ],
8       }],
9       ['skia_os != "mac"', {
10         'sources/': [ ['exclude', '_mac.(h|cpp|m|mm)$'],
11         ],
12       }],
13       ['skia_os != "linux" and skia_os != "chromeos"', {
14         'sources/': [ ['exclude', '_glx.(h|cpp)$'],
15         ],
16       }],
17       ['skia_os != "ios"', {
18         'sources/': [ ['exclude', '_iOS.(h|cpp|m|mm)$'],
19         ],
20       }],
21       ['skia_os != "android"', {
22         'sources/': [ ['exclude', '_android.(h|cpp)$'],
23         ],
24       }],
25       ['skia_os != "nacl"', {
26         'sources/': [ ['exclude', '_nacl.(h|cpp)$'],
27         ],
28       }],
29       ['skia_os == "nacl" or skia_egl == 0', {
30         'sources/': [ ['exclude', '_egl.(h|cpp)$'],
31         ],
32       }],
33       ['skia_os == "android"', {
34         'sources/': [ ['exclude', 'GrGLCreateNativeInterface_egl.cpp'],
35         ],
36       }],
37       ['skia_egl == 1', {
38         'sources/': [ ['exclude', '_glx.(h|cpp)$'],
39         ],
40       }],
41       # nullify the targets in this gyp file if skia_gpu is 0
42       [ 'skia_gpu == 0', {
43         'sources/': [
44           ['exclude', '.*'],
45         ],
46         'defines/': [
47           ['exclude', '.*'],
48         ],
49         'include_dirs/': [
50            ['exclude', '.*'],
51         ],
52         'link_settings': {
53           'libraries/': [
54             ['exclude', '.*'],
55           ],
56         },
57         'direct_dependent_settings': {
58           'defines/': [
59             ['exclude', '.*'],
60           ],
61           'include_dirs/': [
62             ['exclude', '.*'],
63           ],
64         },
65       }],
66       [ 'skia_resource_cache_mb_limit != 0', {
67         'defines': [
68           'GR_DEFAULT_RESOURCE_CACHE_MB_LIMIT=<(skia_resource_cache_mb_limit)',
69         ],
70       }],
71       [ 'skia_resource_cache_count_limit != 0', {
72         'defines': [
73           'GR_DEFAULT_RESOURCE_CACHE_COUNT_LIMIT=<(skia_resource_cache_count_limit)',
74         ],
75       }],
76     ],
77     'direct_dependent_settings': {
78       'conditions': [
79         [ 'skia_os == "win"', {
80           'defines': [
81             'GR_GL_FUNCTION_TYPE=__stdcall',
82           ],
83         }],
84       ],
85       'include_dirs': [
86         '../include/gpu',
87       ],
88     },
89   },
90   'targets': [
91     {
92       'target_name': 'skgpu',
93       'product_name': 'skia_skgpu',
94       'type': 'static_library',
95       'standalone_static_library': 1,
96       'dependencies': [
97         'core.gyp:*',
98         'utils.gyp:*',
99         'etc1.gyp:libetc1',
100         'ktx.gyp:libSkKTX',
101       ],
102       'includes': [
103         'gpu.gypi',
104       ],
105       'include_dirs': [
106         '../include/gpu',
107         '../src/core',
108         '../src/gpu',
109       ],
110       'sources': [
111         '<@(skgpu_sources)',
112         '<@(skgpu_native_gl_sources)',
113         '<@(skgpu_angle_gl_sources)',
114         '<@(skgpu_mesa_gl_sources)',
115         '<@(skgpu_debug_gl_sources)',
116         '<@(skgpu_null_gl_sources)',
117         'gpu.gypi', # Makes the gypi appear in IDEs (but does not modify the build).
118       ],
119       'conditions': [
120         [ 'skia_stroke_path_rendering', {
121           'sources': [
122             '../experimental/StrokePathRenderer/GrStrokePathRenderer.h',
123             '../experimental/StrokePathRenderer/GrStrokePathRenderer.cpp',
124           ],
125           'defines': [
126             'GR_STROKE_PATH_RENDERING=1',
127           ],
128         }],
129         [ 'skia_android_path_rendering', {
130           'sources': [
131             '../experimental/AndroidPathRenderer/GrAndroidPathRenderer.cpp',
132             '../experimental/AndroidPathRenderer/GrAndroidPathRenderer.h',
133             '../experimental/AndroidPathRenderer/AndroidPathRenderer.cpp',
134             '../experimental/AndroidPathRenderer/AndroidPathRenderer.h',
135             '../experimental/AndroidPathRenderer/Vertex.h',
136           ],
137           'defines': [
138             'GR_ANDROID_PATH_RENDERING=1',
139           ],
140         }],
141         [ 'skia_chrome_utils', {
142           'sources': [
143             '../experimental/ChromeUtils/SkBorder.cpp',
144             '../experimental/ChromeUtils/SkBorder.h',
145           ],
146           'defines': [
147             'GR_CHROME_UTILS=1',
148           ],
149         }],
150         [ 'skia_os == "linux" or skia_os == "chromeos"', {
151           'sources!': [
152             '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
153             '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
154           ],
155         }],
156         [ '(skia_os == "linux" or skia_os == "chromeos") and skia_egl == 1', {
157           'link_settings': {
158             'libraries': [
159               '-lEGL',
160               '-lGLESv2',
161             ],
162           },
163         }],
164         [ '(skia_os == "linux" or skia_os == "chromeos") and skia_egl == 0', {
165           'link_settings': {
166             'libraries': [
167               '-lGL',
168               '-lGLU',
169               '-lX11',
170             ],
171           },
172         }],
173         [ 'skia_os == "nacl"', {
174           'link_settings': {
175             'libraries': [
176               '-lppapi_gles2',
177             ],
178           },
179         }],
180         [ 'skia_egl == 1', {
181           'defines': [
182             'SK_EGL=1',
183           ],
184         }],
185         [ 'skia_egl == 0', {
186           'defines': [
187             'SK_EGL=0',
188           ],
189         }],
190         [ 'skia_mesa and skia_os == "linux"', {
191           'link_settings': {
192             'libraries': [
193               '-lOSMesa',
194             ],
195           },
196         }],
197         [ 'skia_os == "mac"', {
198           'link_settings': {
199             'libraries': [
200               '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
201             ],
202           },
203           'sources!': [
204             '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
205             '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
206           ],
207         }],
208         [ 'not skia_mesa', {
209           'sources!': [
210             '../src/gpu/gl/mesa/SkMesaGLContext.cpp',
211             '../src/gpu/gl/mesa/GrGLCreateMesaInterface.cpp',
212           ],
213         }],
214         [ 'skia_mesa and skia_os == "mac"', {
215           'link_settings': {
216             'libraries': [
217               '/opt/X11/lib/libOSMesa.dylib',
218             ],
219           },
220           'include_dirs': [
221              '/opt/X11/include/',
222           ],
223         }],
224         [ 'skia_os in ["win", "ios"]', {
225           'sources!': [
226             '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
227             '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
228           ],
229         }],
230         [ 'skia_angle', {
231           'dependencies': [
232             'angle.gyp:*',
233           ],
234           'export_dependent_settings': [
235             'angle.gyp:*',
236           ],
237         }, { # not skia_angle
238           'sources!': [
239             '<@(skgpu_angle_gl_sources)',
240           ],
241         }],
242         [ 'skia_os == "android"', {
243           'sources!': [
244             '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
245             '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
246           ],
247           'defines': [
248             'GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE=1',
249           ],
250           'link_settings': {
251             'libraries': [
252               '-lGLESv2',
253               '-lEGL',
254             ],
255           },
256         }],
257       ],
258     },
259   ],
260 }