summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2016-03-03 17:04:49 -0500
committerDan Sinclair <dsinclair@chromium.org>2016-03-03 17:04:49 -0500
commit44beca7313284a60c21b4973d42f993b8c248ec9 (patch)
treeba722f85ed49508b3ea9c5d30da9bd80c0003621
parentf67387f507008b5d20e03daea2fbb3fda8b2b4f3 (diff)
downloadpdfium-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 .
-rw-r--r--pdfium.gyp38
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,