blob: 8b50fdacea0e3f93808d06e964719cf31590d73c [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 }],
borenet43bf5112016-04-29 14:01:34 -070017 ['skia_os != "linux"', {
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': {
bsalomon@google.come2953132011-10-13 13:33:08 +000068 'include_dirs': [
69 '../include/gpu',
70 ],
71 },
72 },
epoger@google.comae85aea2011-05-31 13:50:51 +000073 'targets': [
74 {
robertphillips@google.come63296e2013-06-18 14:43:53 +000075 'target_name': 'skgpu',
76 'product_name': 'skia_skgpu',
epoger@google.comae85aea2011-05-31 13:50:51 +000077 'type': 'static_library',
borenet@google.comefb1d772012-10-10 19:45:51 +000078 'standalone_static_library': 1,
bungeman@google.comb8f36552013-07-22 14:39:45 +000079 'dependencies': [
bungeman@google.comb8f36552013-07-22 14:39:45 +000080 'core.gyp:*',
tomhudsonf7edcde2015-03-23 12:51:20 -070081 'utils.gyp:utils',
krajcevski9c0e6292014-06-02 07:38:14 -070082 'etc1.gyp:libetc1',
Leon Scroggins427da6f2016-12-16 13:51:59 +000083 'ktx.gyp:libSkKTX',
ethannicholasb3058bd2016-07-01 08:22:01 -070084 'sksl.gyp:sksl',
bungeman@google.comb8f36552013-07-22 14:39:45 +000085 ],
epoger@google.comae85aea2011-05-31 13:50:51 +000086 'include_dirs': [
bungeman@google.com899f1d82013-07-20 00:24:35 +000087 '../include/gpu',
mtkleincd1f2da2015-07-28 08:55:14 -070088 '../include/private',
bungeman@google.comb8f36552013-07-22 14:39:45 +000089 '../src/core',
bsalomon@google.com9c1f1ac2012-05-07 17:09:37 +000090 '../src/gpu',
robertphillips7b9e8a42014-12-11 08:20:31 -080091 '../src/image/',
ethannicholasb3058bd2016-07-01 08:22:01 -070092 '../src/sksl',
epoger@google.comae85aea2011-05-31 13:50:51 +000093 ],
94 'sources': [
Mike Klein9034b132016-10-26 17:54:36 -040095 '<!@(python read_gni.py ../gn/gpu.gni skia_gpu_sources)',
96 '<!@(python read_gni.py ../gn/gpu.gni skia_native_gpu_sources)',
97 '<!@(python read_gni.py ../gn/gpu.gni skia_vk_sources)',
epoger@google.comae85aea2011-05-31 13:50:51 +000098 ],
epoger@google.comae85aea2011-05-31 13:50:51 +000099 'conditions': [
egdaniel86e31a12015-03-09 09:40:42 -0700100 [ 'skia_gpu_extra_dependency_path', {
101 'dependencies' : [
102 '<(skia_gpu_extra_dependency_path):*',
egdaniel540e4882015-08-14 08:37:50 -0700103 ],
104 'export_dependent_settings': [
105 '<(skia_gpu_extra_dependency_path):*',
106 ],
egdaniel86e31a12015-03-09 09:40:42 -0700107 }],
robertphillips@google.com42cc2372013-12-10 15:19:32 +0000108 [ 'skia_chrome_utils', {
109 'sources': [
110 '../experimental/ChromeUtils/SkBorder.cpp',
111 '../experimental/ChromeUtils/SkBorder.h',
112 ],
113 'defines': [
114 'GR_CHROME_UTILS=1',
115 ],
116 }],
borenet43bf5112016-04-29 14:01:34 -0700117 [ 'skia_os == "linux"', {
epoger@google.comae85aea2011-05-31 13:50:51 +0000118 'sources!': [
tomhudson@google.com40725562012-02-10 21:35:06 +0000119 '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
120 '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
epoger@google.comae85aea2011-05-31 13:50:51 +0000121 ],
derekf29dda802014-10-01 10:52:52 -0700122 }],
borenet43bf5112016-04-29 14:01:34 -0700123 [ 'skia_os == "linux" and skia_egl == 1', {
derekf29dda802014-10-01 10:52:52 -0700124 'link_settings': {
125 'libraries': [
126 '-lEGL',
127 '-lGLESv2',
128 ],
129 },
130 }],
borenet43bf5112016-04-29 14:01:34 -0700131 [ 'skia_os == "linux" and skia_egl == 0', {
epoger@google.comae85aea2011-05-31 13:50:51 +0000132 'link_settings': {
133 'libraries': [
134 '-lGL',
borenet@google.com7158e6a2012-11-01 17:43:44 +0000135 '-lGLU',
senorblanco@chromium.org0d923532012-11-12 20:55:02 +0000136 '-lX11',
epoger@google.comae85aea2011-05-31 13:50:51 +0000137 ],
138 },
139 }],
epoger@google.com8846cb22011-07-01 20:20:07 +0000140 [ 'skia_os == "mac"', {
epoger@google.comae85aea2011-05-31 13:50:51 +0000141 'link_settings': {
142 'libraries': [
143 '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
144 ],
145 },
146 'sources!': [
tomhudson@google.com40725562012-02-10 21:35:06 +0000147 '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
148 '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
epoger@google.comae85aea2011-05-31 13:50:51 +0000149 ],
bsalomon@google.com373a6632011-10-19 20:43:20 +0000150 }],
bsalomon@google.comcca3c8f2012-09-28 16:56:28 +0000151 [ 'skia_os in ["win", "ios"]', {
epoger@google.comae85aea2011-05-31 13:50:51 +0000152 'sources!': [
tomhudson@google.com40725562012-02-10 21:35:06 +0000153 '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
154 '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
epoger@google.comae85aea2011-05-31 13:50:51 +0000155 ],
156 }],
djsollen@google.com58629292011-11-03 13:08:29 +0000157 [ 'skia_os == "android"', {
158 'sources!': [
tomhudson@google.com40725562012-02-10 21:35:06 +0000159 '../src/gpu/gl/GrGLDefaultInterface_none.cpp',
160 '../src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
djsollen@google.com58629292011-11-03 13:08:29 +0000161 ],
Derek Sollenbergerc7d29c82014-07-10 08:10:20 -0400162 'defines': [
163 'GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE=1',
164 ],
djsollen@google.com58629292011-11-03 13:08:29 +0000165 'link_settings': {
166 'libraries': [
167 '-lGLESv2',
168 '-lEGL',
djsollen@google.com58629292011-11-03 13:08:29 +0000169 ],
170 },
171 }],
bsalomon7499e692016-02-22 12:13:19 -0800172 [ 'skia_vulkan', {
djsollend5fd2ff2016-07-06 09:17:35 -0700173 'link_settings': {
174 'libraries': [ '<(vulkan_lib_name)', ],
175 },
bsalomon41dc3d62016-03-04 13:38:26 -0800176 'conditions': [
177 [ 'skia_os == "win"', {
178 'variables': {
179 'vulkan_lib_name': '-lvulkan-1',
bsalomonb2be02b2016-09-06 08:40:51 -0700180 'vulkan_sdk_path' : '<!(echo %VULKAN_SDK%)',
bsalomon41dc3d62016-03-04 13:38:26 -0800181 },
182 'include_dirs': [
183 '<(vulkan_sdk_path)/Include',
184 ],
185 'direct_dependent_settings': {
186 'include_dirs': [
187 '<(vulkan_sdk_path)/Include',
188 ],
189 },
190 'link_settings': {
bsalomona6b439a2016-03-10 12:31:20 -0800191 'conditions': [
192 [ 'skia_arch_type == "x86"', {
193 'library_dirs': [ '<(vulkan_sdk_path)/Bin32', ],
194 }, {
195 'library_dirs': [ '<(vulkan_sdk_path)/Bin', ],
196 }],
197 ]
bsalomon41dc3d62016-03-04 13:38:26 -0800198 },
199 }, {
200 'variables': {
201 'vulkan_lib_name': '-lvulkan',
202 },
203 }],
egdaniel58daedb2016-06-17 12:04:05 -0700204 [ 'skia_os == "linux"', {
205 'variables': {
206 'vulkan_sdk_path' : '<!(echo $VULKAN_SDK)',
207 },
208 'include_dirs': [
209 '<(vulkan_sdk_path)/include',
210 ],
211 'direct_dependent_settings': {
212 'include_dirs': [
213 '<(vulkan_sdk_path)/include',
214 ],
215 },
216 'link_settings': {
217 'library_dirs': [ '<(vulkan_sdk_path)/lib', ],
218 },
219 }],
djsollend5fd2ff2016-07-06 09:17:35 -0700220 [ 'skia_android_framework', {
221 'include_dirs': [
222 'frameworks/native/vulkan/include',
223 '../tools/viewer/sk_app',
224 '../tools/viewer/sk_app/android',
225 ],
226 'direct_dependent_settings': {
227 'include_dirs': [
228 'frameworks/native/vulkan/include',
229 '../tools/viewer/sk_app',
230 '../tools/viewer/sk_app/android',
231 ],
232 },
djsollend5fd2ff2016-07-06 09:17:35 -0700233 'sources': [
234 # the gyp -> android.mk generator doesn't seem to like cpp files
235 # in directories outside of src, bench, or dm. Until this gets fixed
236 # I just start the path in the src directory.
mtklein3d96cb82016-08-10 07:30:21 -0700237 '<(skia_src_path)/../tools/viewer/sk_app/WindowContext.cpp',
djsollend5fd2ff2016-07-06 09:17:35 -0700238 '<(skia_src_path)/../tools/viewer/sk_app/VulkanWindowContext.cpp',
239 '<(skia_src_path)/../tools/viewer/sk_app/android/VulkanWindowContext_android.cpp'
240 ],
241 }],
bsalomon41dc3d62016-03-04 13:38:26 -0800242 ],
bsalomon7499e692016-02-22 12:13:19 -0800243 }, {
244 'sources!': [
Mike Klein9034b132016-10-26 17:54:36 -0400245 '<!@(python read_gni.py ../gn/gpu.gni skia_vk_sources)',
bsalomon7499e692016-02-22 12:13:19 -0800246 ],
247 }],
epoger@google.comae85aea2011-05-31 13:50:51 +0000248 ],
epoger@google.comae85aea2011-05-31 13:50:51 +0000249 },
250 ],
251}