Disable warning 4267 in pdfium until it is fixed.
[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     'icu_gyp_path': '../v8/third_party/icu/icu.gyp',
46     'conditions': [
47       ['OS == "win"', {
48         'os_posix%': 0,
49       }, {
50         'os_posix%': 1,
51       }],
52     ],
53   },
54   'target_defaults': {
55     'default_configuration': 'Debug',
56     'configurations': {
57       'Debug': {
58         'cflags': [
59           '-g',
60           '-O0',          
61           '-fdata-sections',
62           '-ffunction-sections',
63         ],
64         'msvs_settings': {
65           'VCCLCompilerTool': {
66             'Optimization': '0',
67             'conditions': [
68               ['component=="shared_library"', {
69                 'RuntimeLibrary': '3',  # /MDd
70               }, {
71                 'RuntimeLibrary': '1',  # /MTd
72               }],
73             ],
74           },
75           'VCLinkerTool': {
76             'LinkIncremental': '2',
77           },
78         },
79         'xcode_settings': {
80           'GCC_OPTIMIZATION_LEVEL': '0',  # -O0
81         },
82       },
83       'Release': {
84         'cflags': [
85           '-fno-strict-aliasing',
86         ],
87         'xcode_settings': {
88           'GCC_OPTIMIZATION_LEVEL': '3',  # -O3
89           'GCC_STRICT_ALIASING': 'NO',
90         },
91         'msvs_settings': {
92           'VCCLCompilerTool': {
93             'Optimization': '2',
94             'InlineFunctionExpansion': '2',
95             'EnableIntrinsicFunctions': 'true',
96             'FavorSizeOrSpeed': '0',
97             'StringPooling': 'true',
98             'conditions': [
99               ['component=="shared_library"', {
100                 'RuntimeLibrary': '2',  #/MD
101               }, {
102                 'RuntimeLibrary': '0',  #/MT
103               }],
104             ],
105           },
106           'VCLinkerTool': {
107             'LinkIncremental': '1',
108             'OptimizeReferences': '2',
109             'EnableCOMDATFolding': '2',
110           },
111         },
112         'conditions': [
113           ['OS=="linux"', {
114             'cflags': [
115               '-fdata-sections',
116               '-ffunction-sections',
117               '-O3',
118               '-O2',
119             ],
120           }],
121           ['OS=="android"', {
122             'cflags!': [
123               '-O3',
124               '-Os',
125             ],
126             'cflags': [
127               '-fdata-sections',
128               '-ffunction-sections',
129               '-O2',
130             ],
131           }],
132         ],  # conditions
133       },
134     },
135     'defines!': [
136       'DEBUG',
137     ],
138     'cflags': [
139       '-Wall',
140       '-W',
141       '-Wno-unused-parameter',
142       '-pthread', '-fno-exceptions',
143       '-fvisibility=hidden',
144     ],
145     'cflags_cc': [
146       '-Wnon-virtual-dtor',
147       '-fno-rtti',
148     ],
149     'ldflags': [
150       '-pthread',
151     ],
152     'msvs_cygwin_dirs': ['<(DEPTH)/v8/third_party/cygwin'],
153     'msvs_configuration_attributes': {
154       'OutputDirectory': '<(DEPTH)\\build\\$(ConfigurationName)',
155       'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
156       'CharacterSet': '1',
157     },
158     'msvs_settings': {
159       'VCCLCompilerTool': {
160         'MinimalRebuild': 'false',
161         'BufferSecurityCheck': 'true',
162         'EnableFunctionLevelLinking': 'true',
163         'RuntimeTypeInfo': 'false',
164         'WarningLevel': '3',
165         'WarnAsError': 'false',
166         'DebugInformationFormat': '3',
167         'Detect64BitPortabilityProblems': 'false',
168         'conditions': [
169           [ 'msvs_multi_core_compile', {
170             'AdditionalOptions': ['/MP'],
171           }],
172           ['component=="shared_library"', {
173             'ExceptionHandling': '1',  # /EHsc
174           }, {
175             'ExceptionHandling': '0',
176           }],
177         ],
178       },
179       'VCLibrarianTool': {
180         'AdditionalOptions': ['/ignore:4221'],
181       },
182       'VCLinkerTool': {
183         'GenerateDebugInformation': 'true',
184         'LinkIncremental': '1',
185         # SubSystem values:
186         #   0 == not set
187         #   1 == /SUBSYSTEM:CONSOLE
188         #   2 == /SUBSYSTEM:WINDOWS
189         'SubSystem': '1',
190       },
191     },
192     'xcode_settings': {
193       'ALWAYS_SEARCH_USER_PATHS': 'NO',
194       'GCC_CW_ASM_SYNTAX': 'NO',                # No -fasm-blocks
195       'GCC_DYNAMIC_NO_PIC': 'NO',               # No -mdynamic-no-pic
196                                                 # (Equivalent to -fPIC)
197       'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',        # -fno-exceptions
198       'GCC_ENABLE_CPP_RTTI': 'NO',              # -fno-rtti
199       'GCC_ENABLE_PASCAL_STRINGS': 'NO',        # No -mpascal-strings
200       # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden
201       'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
202       'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES',      # -fvisibility=hidden
203       'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO',     # -Werror
204       'GCC_WARN_NON_VIRTUAL_DESTRUCTOR': 'YES', # -Wnon-virtual-dtor
205       'SYMROOT': '<(DEPTH)/xcodebuild',
206       'USE_HEADERMAP': 'NO',
207       'OTHER_CFLAGS': [
208         '-fno-strict-aliasing',
209       ],
210       'WARNING_CFLAGS': [
211         '-Wall',
212         '-Wendif-labels',
213         '-W',
214         '-Wno-unused-parameter',
215       ],
216     },
217   },
218   'conditions': [
219     ['component=="shared_library"', {
220       'cflags': [
221         '-fPIC',
222       ],
223     }],
224     ['OS=="win"', {
225       'target_defaults': {
226         'defines': [
227           'NOMINMAX',
228           '_CRT_SECURE_NO_DEPRECATE',
229           '_CRT_NONSTDC_NO_DEPRECATE',
230         ],
231         'conditions': [
232           ['component=="static_library"', {
233             'defines': [
234               '_HAS_EXCEPTIONS=0',
235             ],
236           }],
237         ],
238       },
239     }],  # OS=="win"
240     ['OS=="mac"', {
241       'target_defaults': {
242         'target_conditions': [
243           ['_type!="static_library"', {
244             'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
245           }],
246         ],  # target_conditions
247       },  # target_defaults
248     }],  # OS=="mac"
249   ],
250   'xcode_settings': {
251     # See comment in Chromium's common.gypi for why this is needed.
252     'SYMROOT': '<(DEPTH)/xcodebuild',
253   }
254 }