Enable compiling with clang chrome plugins for GYP build For standalone build, enable the compilation with clang_use_chrome_plugins. Also remove the previous clang_use_pdfium_plugins to be consistent with chrome build, also avoid errors on chromeos_ozone build. BUG=pdfium:469 Review-Url: https://codereview.chromium.org/2115813002
diff --git a/build_gyp/standalone.gypi b/build_gyp/standalone.gypi index b2ec4b9..1affc3c 100644 --- a/build_gyp/standalone.gypi +++ b/build_gyp/standalone.gypi
@@ -42,8 +42,10 @@ }, 'host_arch%': '<(host_arch)', 'target_arch%': '<(target_arch)', + 'clang_use_chrome_plugins%': 0, }, 'clang_dir%': 'third_party/llvm-build/Release+Asserts', + 'clang_use_chrome_plugins%': '<(clang_use_chrome_plugins)', # These two are needed by V8. 'host_arch%': '<(host_arch)', 'target_arch%': '<(target_arch)', @@ -71,6 +73,40 @@ }, { 'gomadir%': '<!(/bin/echo -n ${HOME}/goma)', }], + ['clang_use_chrome_plugins==1', { + # Share the same settings as chromium in build/common.gypi. + '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" and 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%': '', + }], + ['OS=="android" or OS=="linux"', { + 'clang_plugin_check_ipc_arg': '-Xclang -plugin-arg-find-bad-constructs -Xclang check-ipc', + }, { + 'clang_plugin_check_ipc_arg': '', + }], + ], + 'clang_plugin_args%': '-Xclang -plugin-arg-find-bad-constructs -Xclang check-templates ' + '-Xclang -plugin-arg-find-bad-constructs -Xclang follow-macro-expansion ' + '-Xclang -plugin-arg-find-bad-constructs -Xclang check-implicit-copy-ctors ', + }, + 'clang_chrome_plugins_flags%': + '<(clang_dynlib_flags)' + '-Xclang -add-plugin -Xclang find-bad-constructs <(clang_plugin_args) <(clang_plugin_check_ipc_arg)', + }], ], }, 'target_defaults': { @@ -326,6 +362,11 @@ '-Wno-microsoft-cast', # http://crbug.com/550065 ], }], + ['clang==1 and clang_use_chrome_plugins==1', { + 'AdditionalOptions': [ + '<@(clang_chrome_plugins_flags)', + ], + }], ['OS=="win" and clang==1 and MSVS_VERSION == "2013"', { 'AdditionalOptions': [ '-fmsc-version=1800', @@ -378,6 +419,13 @@ '-Wextra', '-Wno-unused-parameter', ], + 'conditions': [ + ['clang==1 and clang_use_chrome_plugins==1', { + 'OTHER_CFLAGS': [ + '<@(clang_chrome_plugins_flags)', + ], + }], + ], }, 'variables': { 'chromium_code%': '<(chromium_code)', @@ -388,6 +436,11 @@ }, 'includes': [ 'set_clang_warning_flags.gypi', ], 'conditions': [ + ['clang==1 and clang_use_chrome_plugins==1', { + 'cflags': [ + '<@(clang_chrome_plugins_flags)', + ], + }], ['component=="shared_library"', { 'cflags': [ '-fPIC',
diff --git a/pdfium.gyp b/pdfium.gyp index ca9f3f8..e54223c 100644 --- a/pdfium.gyp +++ b/pdfium.gyp
@@ -5,15 +5,12 @@ { 'variables': { 'chromium_code': 1, - - 'variables': { - 'clang_use_pdfium_plugins%': 0, - }, - 'clang_use_pdfium_plugins%': '<(clang_use_pdfium_plugins)', - 'pdf_use_skia%': 0, 'pdf_enable_v8%': 1, 'pdf_enable_xfa%': 0, # Set to 1 by standalone.gypi in a standalone build. + 'variables': { + 'clang_use_chrome_plugins': 1, + }, 'conditions': [ ['OS=="linux"', { 'bundle_freetype%': 0, @@ -21,33 +18,6 @@ # few methods are used from it. 'bundle_freetype%': 1, }], - ['clang_use_pdfium_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_pdfium_plugins_flags%': - '<(clang_dynlib_flags)' - '-Xclang -add-plugin -Xclang find-bad-constructs <(clang_plugin_args)', - }], ], }, 'target_defaults': { @@ -85,11 +55,6 @@ }], ], }], - ['clang==1 and clang_use_pdfium_plugins==1', { - 'cflags': [ - '<@(clang_pdfium_plugins_flags)', - ], - }], ], 'msvs_disabled_warnings': [ 4267,
diff --git a/xfa.gyp b/xfa.gyp index 6a0d562..791a91d 100644 --- a/xfa.gyp +++ b/xfa.gyp
@@ -2,6 +2,9 @@ "variables": { "chromium_code": 1, "pdf_enable_v8%": 1, + "variables": { + 'clang_use_chrome_plugins': 1, + }, }, "target_defaults": { "defines": [