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