Create a standalone pdfium build.
[pdfium.git] / build / standalone.gypi
1 # Copyright 2014 PDFium Authors. All rights reserved.\r
2 # Use of this source code is governed by a BSD-style license that can be\r
3 # found in the LICENSE file.\r
4 \r
5 # Definitions to be used when building stand-alone PDFium binaries.\r
6 \r
7 {\r
8   'variables': {\r
9     'component%': 'static_library',\r
10     'clang%': 0,\r
11     'msvs_multi_core_compile%': '1',\r
12     'variables': {\r
13       'variables': {\r
14         'variables': {\r
15           'conditions': [\r
16             ['OS=="linux" or OS=="mac"', {\r
17               # This handles the Unix platforms we generally deal with.\r
18               # Anything else gets passed through, which probably won't work\r
19               # very well; such hosts should pass an explicit target_arch\r
20               # to gyp.\r
21               'host_arch%':\r
22                 '<!(uname -m | sed -e "s/i.86/ia32/;\\r
23                                        s/x86_64/x64/;\\r
24                                        s/amd64/x64/;\\r
25                                        s/arm.*/arm/;\\r
26                                        s/aarch64/arm64/;\\r
27                                        s/mips.*/mipsel/")',\r
28             }, {\r
29               # OS!="linux" and OS!="mac"\r
30               'host_arch%': 'ia32',\r
31             }],\r
32           ],\r
33         },\r
34         'host_arch%': '<(host_arch)',\r
35         'target_arch%': '<(host_arch)',\r
36       },\r
37       'host_arch%': '<(host_arch)',\r
38       'target_arch%': '<(target_arch)',\r
39     },\r
40     'host_arch%': '<(host_arch)',\r
41     'target_arch%': '<(target_arch)',\r
42     'werror%': '-Werror',\r
43     'v8_optimized_debug%': 0,\r
44     'icu_gyp_path': '../v8/third_party/icu/icu.gyp',\r
45     'conditions': [\r
46       ['OS == "win"', {\r
47         'os_posix%': 0,\r
48       }, {\r
49         'os_posix%': 1,\r
50       }],\r
51     ],\r
52   },\r
53   'target_defaults': {\r
54     'default_configuration': 'Debug',\r
55     'configurations': {\r
56       'Debug': {\r
57         'cflags': [\r
58           '-g',\r
59           '-O0',          \r
60           '-fdata-sections',\r
61           '-ffunction-sections',\r
62         ],\r
63         'msvs_settings': {\r
64           'VCCLCompilerTool': {\r
65             'Optimization': '0',\r
66             'conditions': [\r
67               ['component=="shared_library"', {\r
68                 'RuntimeLibrary': '3',  # /MDd\r
69               }, {\r
70                 'RuntimeLibrary': '1',  # /MTd\r
71               }],\r
72             ],\r
73           },\r
74           'VCLinkerTool': {\r
75             'LinkIncremental': '2',\r
76           },\r
77         },\r
78         'xcode_settings': {\r
79           'GCC_OPTIMIZATION_LEVEL': '0',  # -O0\r
80         },\r
81       },\r
82       'Release': {\r
83         'cflags': [\r
84           '-fno-strict-aliasing',\r
85         ],\r
86         'xcode_settings': {\r
87           'GCC_OPTIMIZATION_LEVEL': '3',  # -O3\r
88           'GCC_STRICT_ALIASING': 'NO',\r
89         },\r
90         'msvs_settings': {\r
91           'VCCLCompilerTool': {\r
92             'Optimization': '2',\r
93             'InlineFunctionExpansion': '2',\r
94             'EnableIntrinsicFunctions': 'true',\r
95             'FavorSizeOrSpeed': '0',\r
96             'StringPooling': 'true',\r
97             'conditions': [\r
98               ['component=="shared_library"', {\r
99                 'RuntimeLibrary': '2',  #/MD\r
100               }, {\r
101                 'RuntimeLibrary': '0',  #/MT\r
102               }],\r
103             ],\r
104           },\r
105           'VCLinkerTool': {\r
106             'LinkIncremental': '1',\r
107             'OptimizeReferences': '2',\r
108             'EnableCOMDATFolding': '2',\r
109           },\r
110         },\r
111         'conditions': [\r
112           ['OS=="linux"', {\r
113             'cflags': [\r
114               '-fdata-sections',\r
115               '-ffunction-sections',\r
116               '-O3',\r
117               '-O2',\r
118             ],\r
119           }],\r
120           ['OS=="android"', {\r
121             'cflags!': [\r
122               '-O3',\r
123               '-Os',\r
124             ],\r
125             'cflags': [\r
126               '-fdata-sections',\r
127               '-ffunction-sections',\r
128               '-O2',\r
129             ],\r
130           }],\r
131         ],  # conditions\r
132       },\r
133     },\r
134     'defines!': [\r
135       'DEBUG',\r
136     ],\r
137     'cflags!': [\r
138       '-Wall',\r
139       '-W',\r
140       '-Wno-unused-parameter',\r
141       '-pthread', '-fno-exceptions',\r
142       '-fvisibility=hidden',\r
143     ],\r
144     'cflags_cc': [\r
145       '-Wnon-virtual-dtor',\r
146       '-fno-rtti',\r
147     ],\r
148     'ldflags': [\r
149       '-pthread',\r
150     ],\r
151     'msvs_cygwin_dirs': ['<(DEPTH)/v8/third_party/cygwin'],\r
152     'msvs_configuration_attributes': {\r
153       'OutputDirectory': '<(DEPTH)\\out\\$(ConfigurationName)',\r
154       'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',\r
155       'CharacterSet': '1',\r
156     },\r
157     'msvs_settings': {\r
158       'VCCLCompilerTool': {\r
159         'MinimalRebuild': 'false',\r
160         'BufferSecurityCheck': 'true',\r
161         'EnableFunctionLevelLinking': 'true',\r
162         'RuntimeTypeInfo': 'false',\r
163         'WarningLevel': '3',\r
164         'WarnAsError': 'false',\r
165         'DebugInformationFormat': '3',\r
166         'Detect64BitPortabilityProblems': 'false',\r
167         'conditions': [\r
168           [ 'msvs_multi_core_compile', {\r
169             'AdditionalOptions': ['/MP'],\r
170           }],\r
171           ['component=="shared_library"', {\r
172             'ExceptionHandling': '1',  # /EHsc\r
173           }, {\r
174             'ExceptionHandling': '0',\r
175           }],\r
176         ],\r
177       },\r
178       'VCLibrarianTool': {\r
179         'AdditionalOptions': ['/ignore:4221'],\r
180       },\r
181       'VCLinkerTool': {\r
182         'GenerateDebugInformation': 'true',\r
183         'LinkIncremental': '1',\r
184         # SubSystem values:\r
185         #   0 == not set\r
186         #   1 == /SUBSYSTEM:CONSOLE\r
187         #   2 == /SUBSYSTEM:WINDOWS\r
188         'SubSystem': '1',\r
189         'AdditionalDependencies': [\r
190           'advapi32.lib',\r
191           'gdi32.lib',\r
192           'user32.lib',\r
193         ],\r
194       },\r
195     },\r
196     'xcode_settings': {\r
197       'ALWAYS_SEARCH_USER_PATHS': 'NO',\r
198       'GCC_CW_ASM_SYNTAX': 'NO',                # No -fasm-blocks\r
199       'GCC_DYNAMIC_NO_PIC': 'NO',               # No -mdynamic-no-pic\r
200                                                 # (Equivalent to -fPIC)\r
201       'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',        # -fno-exceptions\r
202       'GCC_ENABLE_CPP_RTTI': 'NO',              # -fno-rtti\r
203       'GCC_ENABLE_PASCAL_STRINGS': 'NO',        # No -mpascal-strings\r
204       # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden\r
205       'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',\r
206       'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES',      # -fvisibility=hidden\r
207       'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO',     # -Werror\r
208       'GCC_WARN_NON_VIRTUAL_DESTRUCTOR': 'YES', # -Wnon-virtual-dtor\r
209       'SYMROOT': '<(DEPTH)/xcodebuild',\r
210       'USE_HEADERMAP': 'NO',\r
211       'OTHER_CFLAGS': [\r
212         '-fno-strict-aliasing',\r
213       ],\r
214       'WARNING_CFLAGS': [\r
215         '-Wall',\r
216         '-Wendif-labels',\r
217         '-W',\r
218         '-Wno-unused-parameter',\r
219       ],\r
220     },\r
221   },\r
222   'conditions': [\r
223     ['component=="shared_library"', {\r
224       'cflags': [\r
225         '-fPIC',\r
226       ],\r
227     }],\r
228     ['OS=="win"', {\r
229       'target_defaults': {\r
230         'defines': [\r
231           '_CRT_SECURE_NO_DEPRECATE',\r
232           '_CRT_NONSTDC_NO_DEPRECATE',\r
233         ],\r
234         'conditions': [\r
235           ['component=="static_library"', {\r
236             'defines': [\r
237               '_HAS_EXCEPTIONS=0',\r
238             ],\r
239           }],\r
240         ],\r
241       },\r
242     }],  # OS=="win"\r
243     ['OS=="mac"', {\r
244       'target_defaults': {\r
245         'link_settings': {\r
246           'libraries': [\r
247             '$(SDKROOT)/System/Library/Frameworks/AppKit.framework',\r
248             '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',\r
249           ],\r
250         },\r
251         'target_conditions': [\r
252           ['_type!="static_library"', {\r
253             'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},\r
254           }],\r
255         ],  # target_conditions\r
256       },  # target_defaults\r
257     }],  # OS=="mac"\r
258   ],\r
259 }