From d3364371411d4c9ee53d9d1d378e6bbd68946c0d Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@qt.io>
Date: Fri, 1 Sep 2017 12:21:57 +0200
Subject: [PATCH] Add detection for system re2

Change-Id: Ifa305045f3594f06b0ee106cd43f9d35853f8958
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
---
 config.tests/re2/re2.cpp       | 35 ++++++++++++++++++++++++++++++++++
 config.tests/re2/re2.pro       |  3 +++
 configure.json                 | 12 ++++++++++++
 mkspecs/features/configure.prf |  1 +
 qtwebengine.pro                |  1 +
 src/core/config/linux.pri      |  1 +
 6 files changed, 53 insertions(+)
 create mode 100644 config.tests/re2/re2.cpp
 create mode 100644 config.tests/re2/re2.pro

diff --git a/config.tests/re2/re2.cpp b/config.tests/re2/re2.cpp
new file mode 100644
index 000000000..f2c0b0170
--- /dev/null
+++ b/config.tests/re2/re2.cpp
@@ -0,0 +1,35 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtWebEngine module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <re2/re2.h>
+
+int main(int, char **)
+{
+    RE2 re2("dummytest");
+    return 0;
+}
diff --git a/config.tests/re2/re2.pro b/config.tests/re2/re2.pro
new file mode 100644
index 000000000..b1a26d918
--- /dev/null
+++ b/config.tests/re2/re2.pro
@@ -0,0 +1,3 @@
+SOURCES += re2.cpp
+LIBS += -lre2
+CONFIG -= qt
diff --git a/configure.json b/configure.json
index e82247ec5..6aab3f3c9 100644
--- a/configure.json
+++ b/configure.json
@@ -78,6 +78,11 @@
         "embedded": {
             "label": "embedded",
             "type": "embedded"
+        },
+        "re2": {
+            "label": "re2",
+            "test": "re2",
+            "type": "compile"
         }
     },
 
@@ -167,6 +172,12 @@
             "condition": "libs.icu",
             "output": [ "privateFeature" ]
         },
+        "system-re2": {
+            "label": "re2",
+            "autoDetect": "config.unix",
+            "condition": "tests.re2",
+            "output": [ "privateFeature" ]
+        },
         "system-ninja": {
             "label": "Using system ninja",
             "condition": "tests.ninja",
@@ -213,6 +224,7 @@
                    "section": "System libraries",
                    "condition": "config.unix",
                    "entries": [
+                        "system-re2",
                         "system-icu",
                         "system-webp",
                         "system-opus",
diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
index 10c90e0bf..52772a562 100644
--- a/mkspecs/features/configure.prf
+++ b/mkspecs/features/configure.prf
@@ -34,6 +34,7 @@ defineTest(runConfigure) {
         qtConfig(system-opus): WEBENGINE_CONFIG += use_system_opus
         qtConfig(system-ffmpeg): WEBENGINE_CONFIG += use_system_ffmpeg
         qtConfig(system-icu): WEBENGINE_CONFIG += use_system_icu
+        qtConfig(system-re2): WEBENGINE_CONFIG += use_system_re2
         !contains(WEBENGINE_CONFIG, use_system_libwebp): WEBENGINE_CONFIG += use_bundled_libwebp
         !contains(WEBENGINE_CONFIG, use_system_opus): WEBENGINE_CONFIG += use_bundled_opus
         !contains(WEBENGINE_CONFIG, use_system_ffmpeg): WEBENGINE_CONFIG += use_bundled_ffmpeg
diff --git a/qtwebengine.pro b/qtwebengine.pro
index 5c8707b40..1375bc540 100644
--- a/qtwebengine.pro
+++ b/qtwebengine.pro
@@ -25,4 +25,5 @@ OTHER_FILES = \
     config.tests/libcap/* \
     config.tests/libvpx/* \
     config.tests/snappy/* \
+    config.tests/re2/* \
     mkspecs/features/*
diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
index a5ad4c325..28278e903 100644
--- a/src/core/config/linux.pri
+++ b/src/core/config/linux.pri
@@ -150,5 +150,6 @@ host_build {
     use?(system_vpx):      gn_args += use_system_libvpx=true
     use?(system_icu):      gn_args += use_system_icu=true icu_use_data_file=false
     use?(system_ffmpeg):   gn_args += use_system_ffmpeg=true
+    use?(system_re2):      gn_args += use_system_re2=true
     #use?(system_protobuf): gn_args += use_system_protobuf=true
 }
-- 
GitLab