blob: 1c925ba3d59238fadff38d01e8a45ef275d657f9 [file] [log] [blame]
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +00001# Copyright (C) 2011 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14{
epoger@google.com8846cb22011-07-01 20:20:07 +000015 # Define all variables, allowing for override in GYP_DEFINES.
16 #
17 # One such variable is 'skia_os', which we use instead of 'OS' throughout
18 # our gyp files. We set it automatically based on 'OS', but allow the
19 # user to override it via GYP_DEFINES if they like.
20 'variables': {
21 'skia_scalar%': 'float',
22 'skia_os%': '<(OS)',
23 },
24 'skia_scalar%': '<(skia_scalar)',
25 'skia_os': '<(skia_os)',
26
epoger@google.com5351b372011-07-01 17:16:26 +000027 'target_defaults': {
28
epoger@google.com8846cb22011-07-01 20:20:07 +000029 # Validate the 'skia_os' setting against 'OS', because only certain
30 # combinations work. You should only override 'skia_os' for certain
31 # situations, like building for iOS on a Mac.
epoger@google.com5351b372011-07-01 17:16:26 +000032 'variables': {
epoger@google.com8846cb22011-07-01 20:20:07 +000033 'conditions': [
34 ['skia_os != OS and not (skia_os == "ios" and OS == "mac")',
35 {'error': '<!(Cannot build with skia_os=<(skia_os) on OS=<(OS))'}],
36 ],
epoger@google.com5351b372011-07-01 17:16:26 +000037 },
epoger@google.com5351b372011-07-01 17:16:26 +000038
39 'configurations': {
40 'Debug': {
41 'defines': [
42 'SK_DEBUG',
43 'GR_DEBUG=1',
44 ],
45 },
46 'Release': {
47 'defines': [
48 'SK_RELEASE',
49 'GR_RELEASE=1',
50 ],
51 },
52 },
53
54 'conditions' : [
55
56 [ 'skia_scalar == "float"',
57 {
58 'defines': [
59 'SK_SCALAR_IS_FLOAT',
60 'SK_CAN_USE_FLOAT',
61 ],
62 }, { # else, skia_scalar != "float"
63 'defines': [
64 'SK_SCALAR_IS_FIXED',
65 'SK_CAN_USE_FLOAT', # we can still use floats along the way
66 ],
67 }
68 ],
69
epoger@google.com8846cb22011-07-01 20:20:07 +000070 ['skia_os == "win"',
epoger@google.com5351b372011-07-01 17:16:26 +000071 {
72 'defines': [
73 'SK_BUILD_FOR_WIN32',
74 'SK_IGNORE_STDINT_DOT_H',
75 ],
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +000076 'msvs_cygwin_shell': 0,
77 'msvs_settings': {
78 'VCCLCompilerTool': {
79 'WarningLevel': '1',
80 'WarnAsError': 'false',
81 'DebugInformationFormat': '3',
82 'AdditionalOptions': '/MP',
83 },
epoger@google.com5351b372011-07-01 17:16:26 +000084 'VCLinkerTool': {
85 'AdditionalDependencies': [
86 'OpenGL32.lib',
87 'usp10.lib',
88 ],
89 },
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +000090 },
91 'configurations': {
92 'Debug': {
93 'msvs_settings': {
94 'VCCLCompilerTool': {
epoger@google.com58007d72011-07-22 14:41:26 +000095 'DebugInformationFormat': '1', # debugOldStyleInfo (/Z7)
96 'Optimization': '0', # optimizeDisabled (/Od)
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +000097 'PreprocessorDefinitions': ['_DEBUG'],
epoger@google.com58007d72011-07-22 14:41:26 +000098 'RuntimeLibrary': '3', # rtMultiThreadedDebugDLL (/MDd)
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +000099 },
100 'VCLinkerTool': {
101 'GenerateDebugInformation': 'true',
102 },
103 },
104 },
105 'Release': {
106 'msvs_settings': {
107 'VCCLCompilerTool': {
epoger@google.com58007d72011-07-22 14:41:26 +0000108 'DebugInformationFormat': '0', # debugDisabled
109 'Optimization': '2', # optimizeMaxSpeed (/O2)
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000110 'PreprocessorDefinitions': ['NDEBUG'],
epoger@google.com58007d72011-07-22 14:41:26 +0000111 'RuntimeLibrary': '2', # rtMultiThreadedDLL (/MD)
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000112 },
113 'VCLinkerTool': {
114 'GenerateDebugInformation': 'false',
115 },
116 },
117 },
118 },
119 },
epoger@google.com5351b372011-07-01 17:16:26 +0000120 ],
121
epoger@google.com8846cb22011-07-01 20:20:07 +0000122 ['skia_os in ["linux", "freebsd", "openbsd", "solaris"]',
epoger@google.com5351b372011-07-01 17:16:26 +0000123 {
124 'defines': [
125 'SK_SAMPLES_FOR_X',
126 'SK_BUILD_FOR_UNIX',
127 ],
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000128 'configurations': {
129 'Debug': {
130 'cflags': ['-g']
131 },
132 'Release': {
133 'cflags': ['-O2']
134 },
135 },
epoger@google.com5351b372011-07-01 17:16:26 +0000136 'cflags': [ '-Wall', '-Wextra', '-Wno-unused' ],
137 'include_dirs' : [
138 '/usr/include/freetype2',
139 ],
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000140 },
epoger@google.com5351b372011-07-01 17:16:26 +0000141 ],
142
epoger@google.com8846cb22011-07-01 20:20:07 +0000143 ['skia_os == "mac"',
epoger@google.com5351b372011-07-01 17:16:26 +0000144 {
145 'defines': [
146 'SK_BUILD_FOR_MAC',
147 ],
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000148 'configurations': {
149 'Debug': {
150 'cflags': ['-g']
151 },
152 'Release': {
153 'cflags': ['-O2']
154 },
155 },
epoger@google.com5351b372011-07-01 17:16:26 +0000156 'xcode_settings': {
157 'SYMROOT': '<(DEPTH)/xcodebuild',
158 },
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000159 },
epoger@google.com5351b372011-07-01 17:16:26 +0000160 ],
161
epoger@google.comea5dfa82011-07-01 21:01:32 +0000162 ['skia_os == "ios"',
163 {
164 'defines': [
165 'SK_BUILD_FOR_IOS',
166 ],
167 'configurations': {
168 'Debug': {
169 'cflags': ['-g']
170 },
171 'Release': {
172 'cflags': ['-O2']
173 },
174 },
175 'xcode_settings': {
176 'SYMROOT': '<(DEPTH)/xcodebuild',
177 },
178 },
179 ],
180
epoger@google.com5351b372011-07-01 17:16:26 +0000181 ], # end 'conditions'
182 }, # end 'target_defaults'
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000183}
184# Local Variables:
185# tab-width:2
186# indent-tabs-mode:nil
187# End:
188# vim: set expandtab tabstop=2 shiftwidth=2: