Add missing operators for CFX_ByteStringC.
[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     'msvs_cygwin_dirs': ['<(DEPTH)/v8/third_party/cygwin'],
165     'msvs_configuration_attributes': {
166       'OutputDirectory': '<(DEPTH)\\build\\$(ConfigurationName)',
167       'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
168       'CharacterSet': '1',
169     },
170     'msvs_disabled_warnings': [4800, 4996, 4456, 4457, 4458, 4459, 4091],
171     # 4456, 4457, 4458, 4459 are variable shadowing warnings that are new in
172     # VS2015.
173     # C4091: 'typedef ': ignored on left of 'X' when no variable is
174     #                    declared.
175     # This happens in a number of Windows headers with VS 2015.
176     'msvs_settings': {
177       'VCCLCompilerTool': {
178         'MinimalRebuild': 'false',
179         'BufferSecurityCheck': 'true',
180         'EnableFunctionLevelLinking': 'true',
181         'RuntimeTypeInfo': 'false',
182         'WarningLevel': '3',
183         'DebugInformationFormat': '3',
184         'Detect64BitPortabilityProblems': 'false',
185         'conditions': [
186           [ 'msvs_multi_core_compile', {
187             'AdditionalOptions': ['/MP'],
188           }],
189           ['component=="shared_library"', {
190             'ExceptionHandling': '1',  # /EHsc
191           }, {
192             'ExceptionHandling': '0',
193           }],
194           ['target_arch=="x64"', {
195             # 64-bit warnings need to be resolved.
196             # https://code.google.com/p/pdfium/issues/detail?id=101
197             'WarnAsError': 'false',
198           }, {
199             'WarnAsError': 'true',
200           }],
201         ],
202       },
203       'VCLibrarianTool': {
204         'AdditionalOptions': ['/ignore:4221'],
205       },
206       'VCLinkerTool': {
207         'GenerateDebugInformation': 'true',
208         'LinkIncremental': '1',
209         # SubSystem values:
210         #   0 == not set
211         #   1 == /SUBSYSTEM:CONSOLE
212         #   2 == /SUBSYSTEM:WINDOWS
213         'SubSystem': '1',
214       },
215     },
216     'xcode_settings': {
217       'ALWAYS_SEARCH_USER_PATHS': 'NO',
218       'CLANG_CXX_LANGUAGE_STANDARD': 'gnu++11',
219       'GCC_CW_ASM_SYNTAX': 'NO',                # No -fasm-blocks
220       'GCC_DYNAMIC_NO_PIC': 'NO',               # No -mdynamic-no-pic
221                                                 # (Equivalent to -fPIC)
222       'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',        # -fno-exceptions
223       'GCC_ENABLE_CPP_RTTI': 'NO',              # -fno-rtti
224       'GCC_ENABLE_PASCAL_STRINGS': 'NO',        # No -mpascal-strings
225       # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden
226       'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
227       'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES',      # -fvisibility=hidden
228       'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO',     # -Werror
229       'GCC_WARN_NON_VIRTUAL_DESTRUCTOR': 'YES', # -Wnon-virtual-dtor
230       'SYMROOT': '<(DEPTH)/xcodebuild',
231       'USE_HEADERMAP': 'NO',
232       'OTHER_CFLAGS': [
233         '-fno-strict-aliasing',
234       ],
235       'WARNING_CFLAGS': [
236         '-Wall',
237         '-Wendif-labels',
238         '-W',
239         '-Wno-unused-parameter',
240       ],
241     },
242   },
243   'conditions': [
244     ['component=="shared_library"', {
245       'cflags': [
246         '-fPIC',
247       ],
248     }],
249     ['OS=="win"', {
250       'target_defaults': {
251         'defines': [
252           'NOMINMAX',
253           '_CRT_SECURE_NO_DEPRECATE',
254           '_CRT_NONSTDC_NO_DEPRECATE',
255         ],
256         'conditions': [
257           ['component=="static_library"', {
258             'defines': [
259               '_HAS_EXCEPTIONS=0',
260             ],
261           }],
262         ],
263       },
264     }],  # OS=="win"
265     ['OS=="mac"', {
266       'target_defaults': {
267         'target_conditions': [
268           ['_type!="static_library"', {
269             'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
270           }],
271         ],  # target_conditions
272       },  # target_defaults
273     }],  # OS=="mac"
274     ['v8_use_external_startup_data==1', {
275       'target_defaults': {
276         'defines': [
277           'V8_USE_EXTERNAL_STARTUP_DATA',
278         ],
279       },
280     }],  # v8_use_external_startup_data==1
281   ],
282   'xcode_settings': {
283     # See comment in Chromium's common.gypi for why this is needed.
284     'SYMROOT': '<(DEPTH)/xcodebuild',
285   }
286 }