Add option for building with C++20 and roll DEPS for Abseil.
To make this DEPS roll work, add an option to build with C++20 and turn
it on for Windows component builds.
Roll third_party/abseil-cpp/ 384efd2e8..1016c233b (1 commit)
https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp.git/+log/384efd2e85fa..1016c233b46f
Created with:
roll-dep third_party/abseil-cpp
Bug: pdfium:1932
Change-Id: I6d77635190d68a40c5eeaf424daf8ae3c97fa219
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/102040
Reviewed-by: K. Moon <kmoon@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/DEPS b/DEPS
index ed29f89..c37a2e7 100644
--- a/DEPS
+++ b/DEPS
@@ -34,7 +34,7 @@
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling abseil
# and whatever else without interference from each other.
- 'abseil_revision': '384efd2e85fae94657ff13c05fab21f6b44c3098',
+ 'abseil_revision': '1016c233b46f43e324184d28281eeb75e3e14f38',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling android_ndk
# and whatever else without interference from each other.
diff --git a/build_overrides/BUILDCONFIG.gn b/build_overrides/BUILDCONFIG.gn
index 768fe60..c425b91 100644
--- a/build_overrides/BUILDCONFIG.gn
+++ b/build_overrides/BUILDCONFIG.gn
@@ -402,7 +402,10 @@
# =============================================================================
# Begin PDFIUM MODIFICATIONS
# =============================================================================
-default_compiler_configs += [ "//build_overrides/compiler:force_cxx17" ]
+import("//pdfium.gni")
+if (!pdf_use_cxx20) {
+ default_compiler_configs += [ "//build_overrides/compiler:force_cxx17" ]
+}
# =============================================================================
# End PDFIUM MODIFICATIONS
diff --git a/build_overrides/pdfium.gni b/build_overrides/pdfium.gni
index b7dc9e0..85f15e6 100644
--- a/build_overrides/pdfium.gni
+++ b/build_overrides/pdfium.gni
@@ -17,6 +17,10 @@
# Default: Without XFA support.
pdf_enable_xfa_override = false
+# Build PDFium using C++20 if set to true. Otherwise builds with C++17.
+# Default: True for Windows component builds.
+pdf_use_cxx20_override = is_win && is_component_build
+
# Build PDFium with PartitionAlloc support, directing `fxcrt` to use
# it as its memory allocator in lieu of `malloc()`.
# Default: Use PartitionAlloc when building with Clang.
diff --git a/pdfium.gni b/pdfium.gni
index acbc334..72c42fe 100644
--- a/pdfium.gni
+++ b/pdfium.gni
@@ -36,6 +36,9 @@
# If XFA, also support tiff codec. Ignored if not XFA.
pdf_enable_xfa_tiff = true
+ # Build PDFium with C++20.
+ pdf_use_cxx20 = pdf_use_cxx20_override
+
# Build PDFium with PartitionAlloc as the memory allocator.
pdf_use_partition_alloc = pdf_use_partition_alloc_override