Fix ALL the include guards.
[pdfium.git] / build / standalone.gypi
1 # Copyright 2014 PDFium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 # Definitions to be used when building stand-alone PDFium binaries.
6
7 {
8   'variables': {
9     'component%': 'static_library',
10     'clang%': 0,
11     'msvs_multi_core_compile%': '1',
12     'variables': {
13       'variables': {
14         'variables': {
15           'conditions': [
16             ['OS=="linux" or OS=="mac"', {
17               # This handles the Unix platforms we generally deal with.
18               # Anything else gets passed through, which probably won't work
19               # very well; such hosts should pass an explicit target_arch
20               # to gyp.
21               'host_arch%':
22                 '<!(uname -m | sed -e "s/i.86/ia32/;\
23                                        s/x86_64/x64/;\
24                                        s/amd64/x64/;\
25                                        s/arm.*/arm/;\
26                                        s/aarch64/arm64/;\
27                                        s/mips.*/mipsel/")',
28             }, {
29               # OS!="linux" and OS!="mac"
30               'host_arch%': 'ia32',
31             }],
32           ],
33         },
34         'host_arch%': '<(host_arch)',
35         'target_arch%': '<(host_arch)',
36       },
37       'host_arch%': '<(host_arch)',
38       'target_arch%': '<(target_arch)',
39     },
40     # These two are needed by V8.
41     'host_arch%': '<(host_arch)',
42     'target_arch%': '<(target_arch)',
43     'werror%': '-Werror',
44     'v8_optimized_debug%': 0,
45     'v8_use_external_startup_data%': 0,
46     'icu_gyp_path': '../v8/third_party/icu/icu.gyp',
47     'conditions': [
48       ['OS == "win"', {
49         'os_posix%': 0,
50       }, {
51         'os_posix%': 1,
52       }],
53     ],
54   },
55   'target_defaults': {
56     'default_configuration': 'Debug',
57     'configurations': {
58       'Debug': {
59         'cflags': [
60           '-g',
61           '-O0',
62           '-fdata-sections',
63           '-ffunction-sections',
64         ],
65         'msvs_settings': {
66           'VCCLCompilerTool': {
67             'Optimization': '0',
68             'conditions': [
69               ['component=="shared_library"', {
70                 'RuntimeLibrary': '3',  # /MDd
71               }, {
72                 'RuntimeLibrary': '1',  # /MTd
73               }],
74             ],
75           },
76           'VCLinkerTool': {
77             'LinkIncremental': '2',
78           },
79         },
80         'xcode_settings': {
81           'GCC_OPTIMIZATION_LEVEL': '0',  # -O0
82         },
83       },
84       'Release': {
85         'cflags': [
86           '-fno-strict-aliasing',
87         ],
88         'xcode_settings': {
89           'GCC_OPTIMIZATION_LEVEL': '3',  # -O3
90           'GCC_STRICT_ALIASING': 'NO',
91         },
92         'msvs_settings': {
93           'VCCLCompilerTool': {
94             'Optimization': '2',
95             'InlineFunctionExpansion': '2',
96             'EnableIntrinsicFunctions': 'true',
97             'FavorSizeOrSpeed': '0',
98             'StringPooling': 'true',
99             'conditions': [
100               ['component=="shared_library"', {
101                 'RuntimeLibrary': '2',  #/MD
102               }, {
103                 'RuntimeLibrary': '0',  #/MT
104               }],
105             ],
106           },
107           'VCLinkerTool': {
108             'LinkIncremental': '1',
109             'OptimizeReferences': '2',
110             'EnableCOMDATFolding': '2',
111           },
112         },
113         'conditions': [
114           ['OS=="linux"', {
115             'cflags': [
116               '-fdata-sections',
117               '-ffunction-sections',
118               '-O3',
119               '-O2',
120             ],
121           }],
122           ['OS=="android"', {
123             'cflags!': [
124               '-O3',
125               '-Os',
126             ],
127             'cflags': [
128               '-fdata-sections',
129               '-ffunction-sections',
130               '-O2',
131             ],
132           }],
133         ],  # conditions
134       },
135       'Debug_x64': {
136         'inherit_from': ['Debug'],
137         'msvs_configuration_platform': 'x64',
138       },
139       'Release_x64': {
140         'inherit_from': ['Release'],
141         'msvs_configuration_platform': 'x64',
142       },
143     },
144     'cflags': [
145       '-Wall',
146       '-W',
147       '-Wno-missing-field-initializers',
148       # Code might someday be made clean for -Wsign-compare, but for now
149       # this produces too much noise to be useful.
150       '-Wno-sign-compare',
151       '-Wno-unused-parameter',
152       '-pthread',
153       '-fno-exceptions',
154       '-fvisibility=hidden',
155     ],
156     'cflags_cc': [
157       '-std=gnu++0x',
158       '-Wnon-virtual-dtor',
159       '-fno-rtti',
160     ],
161     'ldflags': [
162       '-pthread',
163     ],
164     'defines': [
165       # Don't use deprecated V8 APIs anywhere.
166       'V8_DEPRECATION_WARNINGS',
167     ],
168     'msvs_cygwin_dirs': ['<(DEPTH)/v8/third_party/cygwin'],
169     'msvs_configuration_attributes': {
170       'OutputDirectory': '<(DEPTH)\\build\\$(ConfigurationName)',
171       'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
172       'CharacterSet': '1',
173     },
174     'msvs_disabled_warnings': [4800, 4996, 4456, 4457, 4458, 4459, 4091],
175     # 4456, 4457, 4458, 4459 are variable shadowing warnings that are new in
176     # VS2015.
177     # C4091: 'typedef ': ignored on left of 'X' when no variable is
178     #                    declared.
179     # This happens in a number of Windows headers with VS 2015.
180     'msvs_settings': {
181       'VCCLCompilerTool': {
182         'MinimalRebuild': 'false',
183         'BufferSecurityCheck': 'true',
184         'EnableFunctionLevelLinking': 'true',
185         'RuntimeTypeInfo': 'false',
186         'WarningLevel': '3',
187         'DebugInformationFormat': '3',
188         'Detect64BitPortabilityProblems': 'false',
189         'conditions': [
190           [ 'msvs_multi_core_compile', {
191             'AdditionalOptions': ['/MP'],
192           }],
193           ['component=="shared_library"', {
194             'ExceptionHandling': '1',  # /EHsc
195           }, {
196             'ExceptionHandling': '0',
197           }],
198           ['target_arch=="x64"', {
199             # 64-bit warnings need to be resolved.
200             # https://code.google.com/p/pdfium/issues/detail?id=101
201             'WarnAsError': 'false',
202           }, {
203             'WarnAsError': 'true',
204           }],
205         ],
206       },
207       'VCLibrarianTool': {
208         'AdditionalOptions': ['/ignore:4221'],
209       },
210       'VCLinkerTool': {
211         'GenerateDebugInformation': 'true',
212         'LinkIncremental': '1',
213         # SubSystem values:
214         #   0 == not set
215         #   1 == /SUBSYSTEM:CONSOLE
216         #   2 == /SUBSYSTEM:WINDOWS
217         'SubSystem': '1',
218       },
219     },
220     'xcode_settings': {
221       'ALWAYS_SEARCH_USER_PATHS': 'NO',
222       'CLANG_CXX_LANGUAGE_STANDARD': 'gnu++11',
223       'GCC_CW_ASM_SYNTAX': 'NO',                # No -fasm-blocks
224       'GCC_DYNAMIC_NO_PIC': 'NO',               # No -mdynamic-no-pic
225                                                 # (Equivalent to -fPIC)
226       'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',        # -fno-exceptions
227       'GCC_ENABLE_CPP_RTTI': 'NO',              # -fno-rtti
228       'GCC_ENABLE_PASCAL_STRINGS': 'NO',        # No -mpascal-strings
229       # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden
230       'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
231       'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES',      # -fvisibility=hidden
232       'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO',     # -Werror
233       'GCC_WARN_NON_VIRTUAL_DESTRUCTOR': 'YES', # -Wnon-virtual-dtor
234       'SYMROOT': '<(DEPTH)/xcodebuild',
235       'USE_HEADERMAP': 'NO',
236       'OTHER_CFLAGS': [
237         '-fno-strict-aliasing',
238       ],
239       'WARNING_CFLAGS': [
240         '-Wall',
241         '-Wendif-labels',
242         '-W',
243         '-Wno-unused-parameter',
244       ],
245     },
246   },
247   'conditions': [
248     ['component=="shared_library"', {
249       'cflags': [
250         '-fPIC',
251       ],
252     }],
253     ['OS=="win"', {
254       'target_defaults': {
255         'defines': [
256           'NOMINMAX',
257           '_CRT_SECURE_NO_DEPRECATE',
258           '_CRT_NONSTDC_NO_DEPRECATE',
259         ],
260         'conditions': [
261           ['component=="static_library"', {
262             'defines': [
263               '_HAS_EXCEPTIONS=0',
264             ],
265           }],
266         ],
267       },
268     }],  # OS=="win"
269     ['OS=="mac"', {
270       'target_defaults': {
271         'target_conditions': [
272           ['_type!="static_library"', {
273             'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
274           }],
275         ],  # target_conditions
276       },  # target_defaults
277     }],  # OS=="mac"
278     ['v8_use_external_startup_data==1', {
279       'target_defaults': {
280         'defines': [
281           'V8_USE_EXTERNAL_STARTUP_DATA',
282         ],
283       },
284     }],  # v8_use_external_startup_data==1
285   ],
286   'xcode_settings': {
287     # See comment in Chromium's common.gypi for why this is needed.
288     'SYMROOT': '<(DEPTH)/xcodebuild',
289   }
290 }