diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2016-03-03 17:04:49 -0500 |
---|---|---|
committer | Dan Sinclair <dsinclair@chromium.org> | 2016-03-03 17:04:49 -0500 |
commit | 44beca7313284a60c21b4973d42f993b8c248ec9 (patch) | |
tree | ba722f85ed49508b3ea9c5d30da9bd80c0003621 /pdfium.gyp | |
parent | f67387f507008b5d20e03daea2fbb3fda8b2b4f3 (diff) | |
download | pdfium-44beca7313284a60c21b4973d42f993b8c248ec9.tar.xz |
Add option to GYP to use chromium clang plugins.
This CL will enable the chromium-style checks when building. It is currently
disabled by default as there are a lot of warnings.
I only added this to GYP because there is no standalone GN build, so I have
no way to test.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1760213002 .
Diffstat (limited to 'pdfium.gyp')
-rw-r--r-- | pdfium.gyp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/pdfium.gyp b/pdfium.gyp index 08d3f085f0..6c535373e3 100644 --- a/pdfium.gyp +++ b/pdfium.gyp @@ -6,6 +6,12 @@ 'variables': { # TODO(thakis): Enable this, pdfium:29 #'chromium_code': 1, + + 'variables': { + 'clang_use_chrome_plugins%': 0, + }, + 'clang_use_chrome_plugins%': '<(clang_use_chrome_plugins)', + 'pdf_use_skia%': 0, 'pdf_enable_v8%': 1, 'pdf_enable_xfa%': 0, # Set to 1 by standalone.gypi in a standalone build. @@ -16,6 +22,33 @@ # few methods are used from it. 'bundle_freetype%': 1, }], + ['clang_use_chrome_plugins==1', { + 'variables': { + 'conditions': [ + ['OS!="win"', { + 'variables': { + 'conditions': [ + ['OS=="mac" or OS=="ios"', { + 'clang_lib_path%': '<!(cd <(DEPTH) && pwd -P)/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib', + }, { # OS != "mac" or OS != "ios" + 'clang_lib_path%': '<!(cd <(DEPTH) && pwd -P)/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so', + }], + ], + }, + 'clang_dynlib_flags%': '-Xclang -load -Xclang <(clang_lib_path) ', + }, { # OS == "win" + # On Windows, the plugin is built directly into clang, so there's + # no need to load it dynamically. + 'clang_dynlib_flags%': '', + }], + ], + 'clang_plugin_args%': '-Xclang -plugin-arg-find-bad-constructs -Xclang check-templates ' + '-Xclang -plugin-arg-find-bad-constructs -Xclang follow-macro-expansion ', + }, + 'clang_chrome_plugins_flags%': + '<(clang_dynlib_flags)' + '-Xclang -add-plugin -Xclang find-bad-constructs <(clang_plugin_args)', + }], ], }, 'target_defaults': { @@ -54,6 +87,11 @@ }], ], }], + ['clang==1 and clang_use_chrome_plugins==1', { + 'cflags': [ + '<@(clang_chrome_plugins_flags)', + ], + }], ], 'msvs_disabled_warnings': [ 4005, 4018, 4146, 4333, 4345, 4267, |