blob: 6bba0f231d16b52a596aed7b54b41e9d618b972c [file] [log] [blame]
epoger@google.comfd03db02011-07-28 14:24:55 +00001# Copyright 2011 The Android Open Source Project
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +00002#
epoger@google.comfd03db02011-07-28 14:24:55 +00003# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +00005{
epoger@google.com8846cb22011-07-01 20:20:07 +00006 # Define all variables, allowing for override in GYP_DEFINES.
7 #
8 # One such variable is 'skia_os', which we use instead of 'OS' throughout
9 # our gyp files. We set it automatically based on 'OS', but allow the
10 # user to override it via GYP_DEFINES if they like.
11 'variables': {
12 'skia_scalar%': 'float',
13 'skia_os%': '<(OS)',
14 },
15 'skia_scalar%': '<(skia_scalar)',
16 'skia_os': '<(skia_os)',
17
epoger@google.com5351b372011-07-01 17:16:26 +000018 'target_defaults': {
19
epoger@google.com8846cb22011-07-01 20:20:07 +000020 # Validate the 'skia_os' setting against 'OS', because only certain
21 # combinations work. You should only override 'skia_os' for certain
22 # situations, like building for iOS on a Mac.
epoger@google.com5351b372011-07-01 17:16:26 +000023 'variables': {
epoger@google.com8846cb22011-07-01 20:20:07 +000024 'conditions': [
25 ['skia_os != OS and not (skia_os == "ios" and OS == "mac")',
26 {'error': '<!(Cannot build with skia_os=<(skia_os) on OS=<(OS))'}],
27 ],
epoger@google.com5351b372011-07-01 17:16:26 +000028 },
epoger@google.com5351b372011-07-01 17:16:26 +000029
30 'configurations': {
31 'Debug': {
32 'defines': [
33 'SK_DEBUG',
34 'GR_DEBUG=1',
35 ],
36 },
37 'Release': {
38 'defines': [
39 'SK_RELEASE',
40 'GR_RELEASE=1',
41 ],
42 },
43 },
44
45 'conditions' : [
46
47 [ 'skia_scalar == "float"',
48 {
49 'defines': [
50 'SK_SCALAR_IS_FLOAT',
51 'SK_CAN_USE_FLOAT',
52 ],
53 }, { # else, skia_scalar != "float"
54 'defines': [
55 'SK_SCALAR_IS_FIXED',
56 'SK_CAN_USE_FLOAT', # we can still use floats along the way
57 ],
58 }
59 ],
60
epoger@google.com8846cb22011-07-01 20:20:07 +000061 ['skia_os == "win"',
epoger@google.com5351b372011-07-01 17:16:26 +000062 {
63 'defines': [
64 'SK_BUILD_FOR_WIN32',
65 'SK_IGNORE_STDINT_DOT_H',
66 ],
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +000067 'msvs_cygwin_shell': 0,
68 'msvs_settings': {
69 'VCCLCompilerTool': {
70 'WarningLevel': '1',
71 'WarnAsError': 'false',
72 'DebugInformationFormat': '3',
73 'AdditionalOptions': '/MP',
74 },
epoger@google.com5351b372011-07-01 17:16:26 +000075 'VCLinkerTool': {
76 'AdditionalDependencies': [
77 'OpenGL32.lib',
78 'usp10.lib',
79 ],
80 },
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +000081 },
82 'configurations': {
83 'Debug': {
84 'msvs_settings': {
85 'VCCLCompilerTool': {
epoger@google.com58007d72011-07-22 14:41:26 +000086 'DebugInformationFormat': '1', # debugOldStyleInfo (/Z7)
87 'Optimization': '0', # optimizeDisabled (/Od)
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +000088 'PreprocessorDefinitions': ['_DEBUG'],
epoger@google.com58007d72011-07-22 14:41:26 +000089 'RuntimeLibrary': '3', # rtMultiThreadedDebugDLL (/MDd)
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +000090 },
91 'VCLinkerTool': {
92 'GenerateDebugInformation': 'true',
93 },
94 },
95 },
96 'Release': {
97 'msvs_settings': {
98 'VCCLCompilerTool': {
epoger@google.com58007d72011-07-22 14:41:26 +000099 'DebugInformationFormat': '0', # debugDisabled
100 'Optimization': '2', # optimizeMaxSpeed (/O2)
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000101 'PreprocessorDefinitions': ['NDEBUG'],
epoger@google.com58007d72011-07-22 14:41:26 +0000102 'RuntimeLibrary': '2', # rtMultiThreadedDLL (/MD)
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000103 },
104 'VCLinkerTool': {
105 'GenerateDebugInformation': 'false',
106 },
107 },
108 },
109 },
110 },
epoger@google.com5351b372011-07-01 17:16:26 +0000111 ],
112
epoger@google.com8846cb22011-07-01 20:20:07 +0000113 ['skia_os in ["linux", "freebsd", "openbsd", "solaris"]',
epoger@google.com5351b372011-07-01 17:16:26 +0000114 {
115 'defines': [
116 'SK_SAMPLES_FOR_X',
117 'SK_BUILD_FOR_UNIX',
118 ],
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000119 'configurations': {
120 'Debug': {
121 'cflags': ['-g']
122 },
123 'Release': {
124 'cflags': ['-O2']
125 },
126 },
epoger@google.com5351b372011-07-01 17:16:26 +0000127 'cflags': [ '-Wall', '-Wextra', '-Wno-unused' ],
128 'include_dirs' : [
129 '/usr/include/freetype2',
130 ],
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000131 },
epoger@google.com5351b372011-07-01 17:16:26 +0000132 ],
133
epoger@google.com8846cb22011-07-01 20:20:07 +0000134 ['skia_os == "mac"',
epoger@google.com5351b372011-07-01 17:16:26 +0000135 {
136 'defines': [
137 'SK_BUILD_FOR_MAC',
138 ],
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000139 'configurations': {
140 'Debug': {
141 'cflags': ['-g']
142 },
143 'Release': {
144 'cflags': ['-O2']
145 },
146 },
epoger@google.com5351b372011-07-01 17:16:26 +0000147 'xcode_settings': {
148 'SYMROOT': '<(DEPTH)/xcodebuild',
149 },
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000150 },
epoger@google.com5351b372011-07-01 17:16:26 +0000151 ],
152
epoger@google.comea5dfa82011-07-01 21:01:32 +0000153 ['skia_os == "ios"',
154 {
155 'defines': [
156 'SK_BUILD_FOR_IOS',
157 ],
158 'configurations': {
159 'Debug': {
160 'cflags': ['-g']
161 },
162 'Release': {
163 'cflags': ['-O2']
164 },
165 },
166 'xcode_settings': {
167 'SYMROOT': '<(DEPTH)/xcodebuild',
168 },
169 },
170 ],
171
epoger@google.com5351b372011-07-01 17:16:26 +0000172 ], # end 'conditions'
173 }, # end 'target_defaults'
senorblanco@chromium.orgafac8882011-04-11 15:59:47 +0000174}
175# Local Variables:
176# tab-width:2
177# indent-tabs-mode:nil
178# End:
179# vim: set expandtab tabstop=2 shiftwidth=2: