Index: build/standalone.gypi |
diff --git a/build/standalone.gypi b/build/standalone.gypi |
new file mode 100644 |
index 0000000000000000000000000000000000000000..de4042bba2ec5dd50442ae84839b9563c71b7398 |
--- /dev/null |
+++ b/build/standalone.gypi |
@@ -0,0 +1,309 @@ |
+# Copyright 2014 PDFium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+# Definitions to be used when building stand-alone PDFium binaries. |
+ |
+{ |
+ 'variables': { |
+ 'component%': 'static_library', |
+ 'clang%': 0, |
+ 'visibility%': 'hidden', |
Nico
2014/05/23 21:14:33
Do you need this? (The mac branch of this file alw
jam
2014/05/23 23:52:13
I had copied it from v8's file; removed.
|
+ 'msvs_multi_core_compile%': '1', |
+ 'variables': { |
+ 'variables': { |
+ 'variables': { |
+ 'conditions': [ |
+ ['OS=="linux" or OS=="mac"', { |
+ # This handles the Unix platforms we generally deal with. |
+ # Anything else gets passed through, which probably won't work |
+ # very well; such hosts should pass an explicit target_arch |
+ # to gyp. |
+ 'host_arch%': |
+ '<!(uname -m | sed -e "s/i.86/ia32/;\ |
+ s/x86_64/x64/;\ |
+ s/amd64/x64/;\ |
+ s/arm.*/arm/;\ |
+ s/aarch64/arm64/;\ |
+ s/mips.*/mipsel/")', |
+ }, { |
+ # OS!="linux" and OS!="mac" |
+ 'host_arch%': 'ia32', |
+ }], |
+ ], |
+ }, |
+ 'host_arch%': '<(host_arch)', |
+ 'target_arch%': '<(host_arch)', |
+ }, |
+ 'host_arch%': '<(host_arch)', |
+ 'target_arch%': '<(target_arch)', |
+ }, |
+ 'host_arch%': '<(host_arch)', |
+ 'target_arch%': '<(target_arch)', |
+ 'werror%': '-Werror', |
+ 'v8_optimized_debug%': 0, |
+ 'icu_gyp_path': '../v8/third_party/icu/icu.gyp', |
+ 'conditions': [ |
+ ['OS == "win"', { |
+ 'os_posix%': 0, |
+ }, { |
+ 'os_posix%': 1, |
+ }], |
+ ], |
+ }, |
+ 'target_defaults': { |
+ 'default_configuration': 'Debug', |
+ 'configurations': { |
+ 'Debug': { |
+ 'cflags': [ '-g', '-O0' ], |
+ 'msvs_settings': { |
+ 'VCCLCompilerTool': { |
+ 'Optimization': '0', |
+ 'conditions': [ |
+ ['component=="shared_library"', { |
+ 'RuntimeLibrary': '3', # /MDd |
+ }, { |
+ 'RuntimeLibrary': '1', # /MTd |
+ }], |
+ ], |
+ }, |
+ 'VCLinkerTool': { |
+ 'LinkIncremental': '2', |
+ }, |
+ }, |
+ 'conditions': [ |
+ ['OS=="linux"', { |
+ 'cflags!': [ |
+ '-O0', |
+ '-O3', |
+ '-O2', |
+ '-O1', |
+ '-Os', |
Nico
2014/05/23 21:14:33
This looks strange. I'm guessing you don't need it
jam
2014/05/23 23:52:13
Done.
|
+ ], |
+ 'cflags': [ |
+ '-fdata-sections', |
+ '-ffunction-sections', |
Nico
2014/05/23 21:14:33
cflags is only used on linux anyway, so add these
jam
2014/05/23 23:52:13
Done.
|
+ ], |
+ }], |
+ ['OS=="mac"', { |
+ 'xcode_settings': { |
Nico
2014/05/23 21:14:33
xcode_settings is only used on mac anyways, move i
jam
2014/05/23 23:52:13
Done.
|
+ 'GCC_OPTIMIZATION_LEVEL': '0', # -O0 |
+ }, |
+ }], |
+ ], |
+ }, |
+ 'Release': { |
+ 'conditions': [ |
+ ['OS=="linux"', { |
+ 'cflags!': [ |
Nico
2014/05/23 21:14:33
Not sure why this is needed, since nothing added -
jam
2014/05/23 23:52:13
Done.
|
+ '-Os', |
+ ], |
+ 'cflags': [ |
+ '-fdata-sections', |
+ '-ffunction-sections', |
+ '-O3', |
+ '-O2', |
+ ], |
+ }], |
+ ['OS=="android"', { |
+ 'cflags!': [ |
+ '-O3', |
+ '-Os', |
+ ], |
+ 'cflags': [ |
+ '-fdata-sections', |
+ '-ffunction-sections', |
+ '-O2', |
+ ], |
+ }], |
+ ['OS=="mac"', { |
Nico
2014/05/23 21:14:33
Again, doesn't have to be in a conditional
jam
2014/05/23 23:52:13
Done.
|
+ 'xcode_settings': { |
+ 'GCC_OPTIMIZATION_LEVEL': '3', # -O3 |
+ |
+ # -fstrict-aliasing. Mainline gcc |
+ # enables this at -O2 and above, |
+ # but Apple gcc does not unless it |
+ # is specified explicitly. |
Nico
2014/05/23 21:14:33
This is no longer true, -fstrict-aliasing is now o
jam
2014/05/23 23:52:13
Done.
|
+ 'GCC_STRICT_ALIASING': 'YES', |
+ }, |
+ }], # OS=="mac" |
+ ['OS=="win"', { |
+ 'msvs_settings': { |
Nico
2014/05/23 21:14:33
msvs_settings is only used on windows, so no need
jam
2014/05/23 23:52:13
Done.
|
+ 'VCCLCompilerTool': { |
+ 'Optimization': '2', |
+ 'InlineFunctionExpansion': '2', |
+ 'EnableIntrinsicFunctions': 'true', |
+ 'FavorSizeOrSpeed': '0', |
+ 'StringPooling': 'true', |
+ 'conditions': [ |
+ ['component=="shared_library"', { |
+ 'RuntimeLibrary': '2', #/MD |
+ }, { |
+ 'RuntimeLibrary': '0', #/MT |
+ }], |
+ ], |
+ }, |
+ 'VCLinkerTool': { |
+ 'LinkIncremental': '1', |
+ 'OptimizeReferences': '2', |
+ 'EnableCOMDATFolding': '2', |
+ }, |
+ }, |
+ }], # OS=="win" |
+ ], # conditions |
+ }, |
+ }, |
+ 'defines!': [ |
+ 'DEBUG', |
+ ], |
+ 'conditions': [ |
+ ['os_posix == 1 and OS != "mac"', { |
Nico
2014/05/23 21:14:33
cflags isn't used on mac, no need to check for OS!
jam
2014/05/23 23:52:13
Done.
|
+ 'cflags!': [ |
+ '-Werror', |
+ ], |
+ }], |
+ ['OS == "mac"', { |
Nico
2014/05/23 21:14:33
check unneeded
jam
2014/05/23 23:52:13
Done.
|
+ 'xcode_settings': { |
+ 'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO', # -Werror |
+ }, |
+ }], |
+ ['OS == "win"', { |
Nico
2014/05/23 21:14:33
check unneeded
jam
2014/05/23 23:52:13
Done.
|
+ 'msvs_settings': { |
+ 'VCCLCompilerTool': { |
+ 'WarnAsError': 'false', |
+ }, |
+ }, |
+ 'msvs_configuration_attributes': { |
+ 'OutputDirectory': '<(DEPTH)\\out\\$(ConfigurationName)', |
+ 'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)', |
+ 'CharacterSet': '1', |
+ }, |
+ }], |
+ ], |
+ }, |
+ 'conditions': [ |
+ ['OS=="linux"', { |
Nico
2014/05/23 21:14:33
you probably want all that on android too? in that
jam
2014/05/23 23:52:13
Done.
|
+ 'target_defaults': { |
+ 'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter', |
+ '-pthread', '-fno-exceptions'], |
+ 'cflags_cc': [ '-Wnon-virtual-dtor', '-fno-rtti' ], |
+ 'ldflags': [ '-pthread', ], |
+ 'conditions': [ |
+ [ 'visibility=="hidden"', { |
+ 'cflags': [ '-fvisibility=hidden' ], |
+ }], |
+ [ 'component=="shared_library"', { |
+ 'cflags': [ '-fPIC', ], |
+ }], |
+ ], |
+ }, |
+ }], |
+ ['OS=="win"', { |
Nico
2014/05/23 21:14:33
conditional not needed
jam
2014/05/23 23:52:13
seems like defines that are windows specific don't
Nico
2014/05/24 23:14:23
Oh, you're right. Maybe move the msvs_foo out thou
jam
2014/05/27 01:46:21
well those ones won't impact other platforms right
|
+ 'target_defaults': { |
+ 'defines': [ |
+ '_CRT_SECURE_NO_DEPRECATE', |
+ '_CRT_NONSTDC_NO_DEPRECATE', |
+ ], |
+ 'conditions': [ |
+ ['component=="static_library"', { |
+ 'defines': [ |
+ '_HAS_EXCEPTIONS=0', |
+ ], |
+ }], |
+ ], |
+ 'msvs_cygwin_dirs': ['<(DEPTH)/v8/third_party/cygwin'], |
Nico
2014/05/23 21:14:33
hopefully not needed! :-)
jam
2014/05/23 23:52:13
unfortunately it is (i had found out the hard way
|
+ 'msvs_settings': { |
+ 'VCCLCompilerTool': { |
+ 'MinimalRebuild': 'false', |
+ 'BufferSecurityCheck': 'true', |
+ 'EnableFunctionLevelLinking': 'true', |
+ 'RuntimeTypeInfo': 'false', |
+ 'WarningLevel': '3', |
+ 'WarnAsError': 'true', |
Nico
2014/05/23 21:14:33
Fine with me, but linux and mac check 'werror' for
jam
2014/05/23 23:52:13
this is copied from v8 and chrome's gypis, so sinc
|
+ 'DebugInformationFormat': '3', |
+ 'Detect64BitPortabilityProblems': 'false', |
+ 'conditions': [ |
+ [ 'msvs_multi_core_compile', { |
+ 'AdditionalOptions': ['/MP'], |
+ }], |
+ ['component=="shared_library"', { |
+ 'ExceptionHandling': '1', # /EHsc |
+ }, { |
+ 'ExceptionHandling': '0', |
+ }], |
+ ], |
+ }, |
+ 'VCLibrarianTool': { |
+ 'AdditionalOptions': ['/ignore:4221'], |
+ }, |
+ 'VCLinkerTool': { |
+ 'GenerateDebugInformation': 'true', |
+ 'LinkIncremental': '1', |
+ # SubSystem values: |
+ # 0 == not set |
+ # 1 == /SUBSYSTEM:CONSOLE |
+ # 2 == /SUBSYSTEM:WINDOWS |
+ 'SubSystem': '1', |
+ 'AdditionalDependencies': [ |
+ 'advapi32.lib', |
+ 'gdi32.lib', |
+ 'user32.lib', |
+ ], |
+ }, |
+ }, |
+ }, |
+ }], # OS=="win" |
+ ['OS=="mac"', { |
+ 'xcode_settings': { |
+ 'SYMROOT': '<(DEPTH)/xcodebuild', |
+ }, |
+ 'target_defaults': { |
+ 'xcode_settings': { |
+ 'ALWAYS_SEARCH_USER_PATHS': 'NO', |
+ 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks |
+ 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic |
+ # (Equivalent to -fPIC) |
+ 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions |
+ 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti |
+ 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings |
+ # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden |
+ 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES', |
+ 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden |
+ 'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics |
Nico
2014/05/23 21:14:33
Do you want this? I think msvs's statics are threa
jam
2014/05/23 23:52:13
Done.
|
+ 'GCC_WARN_NON_VIRTUAL_DESTRUCTOR': 'YES', # -Wnon-virtual-dtor |
+ # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min |
Nico
2014/05/23 21:14:33
Remove comment, the thing it refers to isn't here
jam
2014/05/23 23:52:13
Done.
|
+ 'PREBINDING': 'NO', # No -Wl,-prebind |
Nico
2014/05/23 21:14:33
You can probably remove this, current toolchains d
jam
2014/05/23 23:52:13
Done.
|
+ 'SYMROOT': '<(DEPTH)/xcodebuild', |
+ 'USE_HEADERMAP': 'NO', |
+ 'OTHER_CFLAGS': [ |
+ '-fno-strict-aliasing', |
+ ], |
+ 'WARNING_CFLAGS': [ |
+ '-Wall', |
+ '-Wendif-labels', |
+ '-W', |
+ '-Wno-unused-parameter', |
+ ], |
+ }, |
+ 'link_settings': { |
+ 'libraries': [ |
+ '$(SDKROOT)/System/Library/Frameworks/AppKit.framework', |
+ '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework', |
+ ], |
+ }, |
+ 'conditions': [ |
+ ['werror==""', { |
+ 'xcode_settings': {'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO'}, |
+ }, { |
+ 'xcode_settings': {'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES'}, |
+ }], |
+ ], |
+ 'target_conditions': [ |
+ ['_type!="static_library"', { |
+ 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']}, |
+ }], |
+ ], # target_conditions |
+ }, # target_defaults |
+ }], # OS=="mac" |
+ ], |
+} |