blob: 80fc932b8ab2065164a25ab3c023f9b02eb2449b [file] [log] [blame]
scroggo3e562272015-03-25 10:22:41 -07001# Copyright 2015 Google Inc.
2#
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
commit-bot@chromium.org9d0ecf42014-02-27 20:40:31 +00005# GYP for building gpu
epoger@google.comae85aea2011-05-31 13:50:51 +00006{
bsalomon@google.come2953132011-10-13 13:33:08 +00007 'target_defaults': {
8 'conditions': [
9 ['skia_os != "win"', {
10 'sources/': [ ['exclude', '_win.(h|cpp)$'],
11 ],
12 }],
13 ['skia_os != "mac"', {
bsalomon@google.com2b64f842012-10-02 15:25:12 +000014 'sources/': [ ['exclude', '_mac.(h|cpp|m|mm)$'],
bsalomon@google.come2953132011-10-13 13:33:08 +000015 ],
16 }],
borenet@google.com05d550e2013-06-11 15:52:19 +000017 ['skia_os != "linux" and skia_os != "chromeos"', {
derekf29dda802014-10-01 10:52:52 -070018 'sources/': [ ['exclude', '_glx.(h|cpp)$'],
bsalomon@google.come2953132011-10-13 13:33:08 +000019 ],
20 }],
21 ['skia_os != "ios"', {
bsalomon@google.com2b64f842012-10-02 15:25:12 +000022 'sources/': [ ['exclude', '_iOS.(h|cpp|m|mm)$'],
bsalomon@google.come2953132011-10-13 13:33:08 +000023 ],
24 }],
25 ['skia_os != "android"', {
26 'sources/': [ ['exclude', '_android.(h|cpp)$'],
27 ],
28 }],
borenet48087572015-04-02 12:16:36 -070029 ['skia_egl == 0', {
derekf29dda802014-10-01 10:52:52 -070030 '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 }],
bsalomon@google.comcf8fb1f2012-08-02 14:03:32 +000041 # 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 }],
bsalomon@google.come2953132011-10-13 13:33:08 +000066 ],
67 'direct_dependent_settings': {
68 'conditions': [
bsalomon@google.come2953132011-10-13 13:33:08 +000069 [ 'skia_os == "win"', {
70 'defines': [
bsalomon@google.come2953132011-10-13 13:33:08 +000071 'GR_GL_FUNCTION_TYPE=__stdcall',
72 ],
73 }],
74 ],
75 'include_dirs': [
76 '../include/gpu',
77 ],
78 },
79 },
epoger@google.comae85aea2011-05-31 13:50:51 +000080 'targets': [
81 {
robertphillips@google.come63296e2013-06-18 14:43:53 +000082 'target_name': 'skgpu',
83 'product_name': 'skia_skgpu',
epoger@google.comae85aea2011-05-31 13:50:51 +000084 'type': 'static_library',
borenet@google.comefb1d772012-10-10 19:45:51 +000085 'standalone_static_library': 1,
bungeman@google.comb8f36552013-07-22 14:39:45 +000086 'dependencies': [
bungeman@google.comb8f36552013-07-22 14:39:45 +000087 'core.gyp:*',
tomhudsonf7edcde2015-03-23 12:51:20 -070088 'utils.gyp:utils',
krajcevski9c0e6292014-06-02 07:38:14 -070089 'etc1.gyp:libetc1',
krajcevski99ffe242014-06-03 13:04:35 -070090 'ktx.gyp:libSkKTX',
bungeman@google.comb8f36552013-07-22 14:39:45 +000091 ],
bsalomon@google.com20806352012-08-23 12:55:01 +000092 'includes': [
93 'gpu.gypi',
94 ],
epoger@google.comae85aea2011-05-31 13:50:51 +000095 'include_dirs': [
bungeman@google.com899f1d82013-07-20 00:24:35 +000096 '../include/gpu',
mtkleincd1f2da2015-07-28 08:55:14 -070097 '../include/private',
bungeman@google.comb8f36552013-07-22 14:39:45 +000098 '../src/core',
bsalomon@google.com9c1f1ac2012-05-07 17:09:37 +000099 '../src/gpu',
robertphillips7b9e8a42014-12-11 08:20:31 -0800100 '../src/image/',
epoger@google.comae85aea2011-05-31 13:50:51 +0000101 ],
102 'sources': [
robertphillips@google.come63296e2013-06-18 14:43:53 +0000103 '<@(skgpu_sources)',
104 '<@(skgpu_native_gl_sources)',
105 '<@(skgpu_angle_gl_sources)',
hendrikw885bf092015-08-27 10:38:39 -0700106 '<@(skgpu_command_buffer_gl_sources)',
robertphillips@google.come63296e2013-06-18 14:43:53 +0000107 '<@(skgpu_mesa_gl_sources)',
108 '<@(skgpu_debug_gl_sources)',
109 '<@(skgpu_null_gl_sources)',
bsalomon7499e692016-02-22 12:13:19 -0800110 '<@(skgpu_vk_sources)',
bsalomon@google.com202a51b2012-09-04 14:37:12 +0000111 'gpu.gypi', # Makes the gypi appear in IDEs (but does not modify the build).
epoger@google.comae85aea2011-05-31 13:50:51 +0000112 ],
epoger@google.comae85aea2011-05-31 13:50:51 +0000113 'conditions': [
egdaniel86e31a12015-03-09 09:40:42 -0700114 [ 'skia_gpu_extra_dependency_path', {
115 'dependencies' : [
116 '<(skia_gpu_extra_dependency_path):*',
egdaniel540e4882015-08-14 08:37:50 -0700117 ],
118 'export_dependent_settings': [
119 '<(skia_gpu_extra_dependency_path):*',
120 ],
egdaniel86e31a12015-03-09 09:40:42 -0700121 }],
robertphillips@google.com42cc2372013-12-10 15:19:32 +0000122 [ 'skia_chrome_utils', {
123 'sources': [
124 '../experimental/ChromeUtils/SkBorder.cpp',
125 '../experimental/ChromeUtils/SkBorder.h',
126 ],
127 'defines': [
128 'GR_CHROME_UTILS=1',
129 ],
130 }],
borenet@google.com05d550e2013-06-11 15:52:19 +0000131 [ 'skia_os == "linux" or skia_os == "chromeos"', {
epoger@google.comae85aea2011-05-31 13:50:51 +0000132 'sources!': [
tomhudson@google.com40725562012-02-10 21:35:06 +0000133 '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
134 '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
epoger@google.comae85aea2011-05-31 13:50:51 +0000135 ],
derekf29dda802014-10-01 10:52:52 -0700136 }],
137 [ '(skia_os == "linux" or skia_os == "chromeos") and skia_egl == 1', {
138 'link_settings': {
139 'libraries': [
140 '-lEGL',
141 '-lGLESv2',
142 ],
143 },
144 }],
145 [ '(skia_os == "linux" or skia_os == "chromeos") and skia_egl == 0', {
epoger@google.comae85aea2011-05-31 13:50:51 +0000146 'link_settings': {
147 'libraries': [
148 '-lGL',
borenet@google.com7158e6a2012-11-01 17:43:44 +0000149 '-lGLU',
senorblanco@chromium.org0d923532012-11-12 20:55:02 +0000150 '-lX11',
epoger@google.comae85aea2011-05-31 13:50:51 +0000151 ],
152 },
153 }],
derekf29dda802014-10-01 10:52:52 -0700154 [ 'skia_egl == 1', {
155 'defines': [
156 'SK_EGL=1',
157 ],
158 }],
159 [ 'skia_egl == 0', {
160 'defines': [
161 'SK_EGL=0',
162 ],
163 }],
bsalomon@google.com373a6632011-10-19 20:43:20 +0000164 [ 'skia_mesa and skia_os == "linux"', {
165 'link_settings': {
166 'libraries': [
167 '-lOSMesa',
168 ],
169 },
170 }],
epoger@google.com8846cb22011-07-01 20:20:07 +0000171 [ 'skia_os == "mac"', {
epoger@google.comae85aea2011-05-31 13:50:51 +0000172 'link_settings': {
173 'libraries': [
174 '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
175 ],
176 },
177 'sources!': [
tomhudson@google.com40725562012-02-10 21:35:06 +0000178 '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
179 '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
epoger@google.comae85aea2011-05-31 13:50:51 +0000180 ],
bsalomon@google.com373a6632011-10-19 20:43:20 +0000181 }],
robertphillips@google.come63296e2013-06-18 14:43:53 +0000182 [ 'not skia_mesa', {
183 'sources!': [
184 '../src/gpu/gl/mesa/SkMesaGLContext.cpp',
185 '../src/gpu/gl/mesa/GrGLCreateMesaInterface.cpp',
186 ],
187 }],
bsalomon@google.com373a6632011-10-19 20:43:20 +0000188 [ 'skia_mesa and skia_os == "mac"', {
189 'link_settings': {
190 'libraries': [
bsalomon@google.com71cf3ae2013-02-04 22:17:13 +0000191 '/opt/X11/lib/libOSMesa.dylib',
bsalomon@google.com373a6632011-10-19 20:43:20 +0000192 ],
193 },
194 'include_dirs': [
bsalomon@google.com71cf3ae2013-02-04 22:17:13 +0000195 '/opt/X11/include/',
bsalomon@google.com373a6632011-10-19 20:43:20 +0000196 ],
197 }],
bsalomon@google.comcca3c8f2012-09-28 16:56:28 +0000198 [ 'skia_os in ["win", "ios"]', {
epoger@google.comae85aea2011-05-31 13:50:51 +0000199 'sources!': [
tomhudson@google.com40725562012-02-10 21:35:06 +0000200 '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
201 '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
epoger@google.comae85aea2011-05-31 13:50:51 +0000202 ],
203 }],
commit-bot@chromium.org9d0ecf42014-02-27 20:40:31 +0000204 [ 'skia_angle', {
205 'dependencies': [
206 'angle.gyp:*',
207 ],
208 'export_dependent_settings': [
209 'angle.gyp:*',
210 ],
211 }, { # not skia_angle
robertphillips@google.com021bce92012-04-02 20:42:26 +0000212 'sources!': [
robertphillips@google.come63296e2013-06-18 14:43:53 +0000213 '<@(skgpu_angle_gl_sources)',
djsollen@google.com403b90e2013-05-03 14:00:34 +0000214 ],
robertphillips@google.com021bce92012-04-02 20:42:26 +0000215 }],
hendrikw885bf092015-08-27 10:38:39 -0700216 [ 'skia_command_buffer', {
217 }, { # not skia_command_buffer
218 'sources!': [
219 '<@(skgpu_command_buffer_gl_sources)',
220 ],
221 }],
djsollen@google.com58629292011-11-03 13:08:29 +0000222 [ 'skia_os == "android"', {
223 'sources!': [
tomhudson@google.com40725562012-02-10 21:35:06 +0000224 '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
225 '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
djsollen@google.com58629292011-11-03 13:08:29 +0000226 ],
Derek Sollenbergerc7d29c82014-07-10 08:10:20 -0400227 'defines': [
228 'GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE=1',
229 ],
djsollen@google.com58629292011-11-03 13:08:29 +0000230 'link_settings': {
231 'libraries': [
232 '-lGLESv2',
233 '-lEGL',
djsollen@google.com58629292011-11-03 13:08:29 +0000234 ],
235 },
236 }],
bsalomon7499e692016-02-22 12:13:19 -0800237 [ 'skia_vulkan', {
bsalomon41dc3d62016-03-04 13:38:26 -0800238 'conditions': [
239 [ 'skia_os == "win"', {
240 'variables': {
241 'vulkan_lib_name': '-lvulkan-1',
bsalomonf98bc6d2016-03-03 16:38:22 -0800242 'vulkan_sdk_path' : '<!(echo %VK_SDK_PATH%)',
bsalomon41dc3d62016-03-04 13:38:26 -0800243 },
244 'include_dirs': [
245 '<(vulkan_sdk_path)/Include',
246 ],
247 'direct_dependent_settings': {
248 'include_dirs': [
249 '<(vulkan_sdk_path)/Include',
250 ],
251 },
252 'link_settings': {
bsalomona6b439a2016-03-10 12:31:20 -0800253 'conditions': [
254 [ 'skia_arch_type == "x86"', {
255 'library_dirs': [ '<(vulkan_sdk_path)/Bin32', ],
256 }, {
257 'library_dirs': [ '<(vulkan_sdk_path)/Bin', ],
258 }],
259 ]
bsalomon41dc3d62016-03-04 13:38:26 -0800260 },
261 }, {
262 'variables': {
263 'vulkan_lib_name': '-lvulkan',
264 },
265 }],
266 ],
bsalomonde7bbab2016-03-03 15:43:03 -0800267 'dependencies': [
268 'shaderc.gyp:shaderc_combined',
269 ],
bsalomon7499e692016-02-22 12:13:19 -0800270 'include_dirs': [
bsalomonde7bbab2016-03-03 15:43:03 -0800271 '../third_party/externals/shaderc2/libshaderc/include',
bsalomon7499e692016-02-22 12:13:19 -0800272 ],
273 'direct_dependent_settings': {
274 'include_dirs': [
bsalomonde7bbab2016-03-03 15:43:03 -0800275 '../third_party/externals/shaderc2/libshaderc/include',
bsalomon7499e692016-02-22 12:13:19 -0800276 ],
277 },
bsalomonf98bc6d2016-03-03 16:38:22 -0800278 'link_settings': {
bsalomon41dc3d62016-03-04 13:38:26 -0800279 'libraries': [ '<(vulkan_lib_name)', ],
bsalomonf98bc6d2016-03-03 16:38:22 -0800280 },
bsalomon7499e692016-02-22 12:13:19 -0800281 }, {
282 'sources!': [
283 '<@(skgpu_vk_sources)',
284 ],
285 }],
epoger@google.comae85aea2011-05-31 13:50:51 +0000286 ],
epoger@google.comae85aea2011-05-31 13:50:51 +0000287 },
288 ],
289}