summaryrefslogtreecommitdiff
path: root/pdfium.gni
diff options
context:
space:
mode:
authorFelix Kauselmann <licorn@gmail.com>2017-08-09 21:44:31 +0200
committerChromium commit bot <commit-bot@chromium.org>2017-08-09 20:14:43 +0000
commit00334675c18a0203f313cceb670c970a77280f49 (patch)
tree431cc04539913358cedf9f1386b7dda0e3982562 /pdfium.gni
parentd0f2dcd0802969494e991d8cef00b4bd81aefc8d (diff)
downloadpdfium-00334675c18a0203f313cceb670c970a77280f49.tar.xz
Add a build target and a proper export header for shared library builds.
This CL adds support for Chromium's component build feature to pdfium. The export header stub in fpdfview.h is expanded to match Chromium's export mechanisms and patterns (fixes pdfium:825). A component/shared library build can be triggered by adding is_component_build = true as a gn argument. Please note that setting this will also affect some of pdfiums dependencies like v8, which will be build as components too. Additionally, this CL provides a "pdf_source_set" template which dynamically enables the use of "source_set" when building a complete static library or a shared library to reduce build time. When testing this it is recommended to only build the pdfium target as most of pdfiums test rely on non-public functions which aren't exported by the shared library. Bug: pdfium:825,pdfium:826 Change-Id: Icedc538ec535e11d1e53c4d5fabc8c064b275752 Reviewed-on: https://pdfium-review.googlesource.com/8970 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'pdfium.gni')
-rw-r--r--pdfium.gni23
1 files changed, 23 insertions, 0 deletions
diff --git a/pdfium.gni b/pdfium.gni
index 530301a5d9..1842ae095b 100644
--- a/pdfium.gni
+++ b/pdfium.gni
@@ -66,3 +66,26 @@ declare_args() {
if (pdf_use_skia && pdf_use_skia_paths) {
assert(false, "Enable at most ONE of pdf_use_skia and pdf_use_skia_paths")
}
+
+# Custom template used to enable building with "source_set" instead of
+# "static_library" when doing component or complete static library builds
+
+template("pdf_source_set") {
+ if (is_component_build || pdf_is_complete_lib) {
+ pdf_link_target_type = "source_set"
+ } else {
+ pdf_link_target_type = "static_library"
+ }
+ target(pdf_link_target_type, target_name) {
+ # See http://crbug.com/594610
+ forward_variables_from(invoker, [ "visibility" ])
+ forward_variables_from(invoker, "*", [ "visibility" ])
+ }
+}
+
+set_defaults("pdf_source_set") {
+ if (!defined(deps)) {
+ deps = []
+ }
+ configs = default_compiler_configs
+}