summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@theqtcompany.com>2016-04-19 13:39:48 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-05-04 17:26:28 +0000
commit37d68796ce8e9e6ddec39342f955a349d2298920 (patch)
treec9b7329a93a90c4a72584329359303b5a18b4821
parent7dde2a0d8b65f963268f9bacbcb96601ac34327b (diff)
Provide a debug version of QtWebEngineProcess
We never shipped a debug version of the QtWebEngineProcess executable. This is problematic in debug_and_release builds when a debug application starts the release version of QtWebEngineProcess. The Qt libraries will then be loaded twice, in debug and release. Also, in development setups where only the debug libraries are deployed, the release version of QtWebEngineProcess cannot be loaded. Task-number: QTBUG-49493 Change-Id: I2f7bfb9c7cf8e869dc91007f4e967a713f438065 Reviewed-by: Michael BrĂ¼ning <michael.bruning@theqtcompany.com>
-rw-r--r--src/core/core_gyp_generator.pro1
-rw-r--r--src/core/gyp_run.pro3
-rw-r--r--src/core/qtwebengine_extras.gypi22
-rw-r--r--src/process/process.pro2
-rw-r--r--tools/qmake/mkspecs/features/default_pre.prf12
5 files changed, 37 insertions, 3 deletions
diff --git a/src/core/core_gyp_generator.pro b/src/core/core_gyp_generator.pro
index 09df6b48d..3e6a9eac0 100644
--- a/src/core/core_gyp_generator.pro
+++ b/src/core/core_gyp_generator.pro
@@ -13,7 +13,6 @@ include(core_common.pri)
DEFINES += QT_NO_KEYWORDS \
QT_USE_QSTRINGBUILDER \
Q_FORWARD_DECLARE_OBJC_CLASS=QT_FORWARD_DECLARE_CLASS \
- QTWEBENGINEPROCESS_NAME=\\\"$$QTWEBENGINEPROCESS_NAME\\\" \
QTWEBENGINECORE_VERSION_STR=\\\"$$MODULE_VERSION\\\" \
BUILDING_CHROMIUM
diff --git a/src/core/gyp_run.pro b/src/core/gyp_run.pro
index f7fca8fa8..2e2422dce 100644
--- a/src/core/gyp_run.pro
+++ b/src/core/gyp_run.pro
@@ -16,7 +16,8 @@ cross_compile {
mac: include(config/mac_osx.pri)
win32: include(config/windows.pri)
}
-
+GYP_CONFIG += qtwe_process_name_debug=$$QTWEBENGINEPROCESS_NAME_DEBUG
+GYP_CONFIG += qtwe_process_name_release=$$QTWEBENGINEPROCESS_NAME_RELEASE
GYP_CONFIG += disable_glibcxx_debug=1
!webcore_debug: GYP_CONFIG += remove_webcore_debug_symbols=1
!v8base_debug: GYP_CONFIG += remove_v8base_debug_symbols=1
diff --git a/src/core/qtwebengine_extras.gypi b/src/core/qtwebengine_extras.gypi
index a5de08b55..229421efa 100644
--- a/src/core/qtwebengine_extras.gypi
+++ b/src/core/qtwebengine_extras.gypi
@@ -63,6 +63,28 @@
'defines': [
'TOOLKIT_QT',
],
+ 'configurations': {
+ 'Debug': {
+ 'defines': [
+ 'QTWEBENGINEPROCESS_NAME="<(qtwe_process_name_debug)"'
+ ],
+ },
+ 'Debug_x64': {
+ 'defines': [
+ 'QTWEBENGINEPROCESS_NAME="<(qtwe_process_name_debug)"'
+ ],
+ },
+ 'Release': {
+ 'defines': [
+ 'QTWEBENGINEPROCESS_NAME="<(qtwe_process_name_release)"'
+ ],
+ },
+ 'Release_x64': {
+ 'defines': [
+ 'QTWEBENGINEPROCESS_NAME="<(qtwe_process_name_release)"'
+ ],
+ },
+ },
},
'conditions': [
[ 'qt_os=="embedded_linux"', {
diff --git a/src/process/process.pro b/src/process/process.pro
index cdda429e7..1483008f7 100644
--- a/src/process/process.pro
+++ b/src/process/process.pro
@@ -16,6 +16,8 @@ win32 {
load(qt_app)
+CONFIG += build_all
+
contains(QT_CONFIG, qt_framework) {
# Deploy the QtWebEngineProcess app bundle into the QtWebEngineCore framework.
DESTDIR = $$MODULE_BASE_OUTDIR/lib/QtWebEngineCore.framework/Versions/5/Helpers
diff --git a/tools/qmake/mkspecs/features/default_pre.prf b/tools/qmake/mkspecs/features/default_pre.prf
index cb0625c2e..27aded013 100644
--- a/tools/qmake/mkspecs/features/default_pre.prf
+++ b/tools/qmake/mkspecs/features/default_pre.prf
@@ -4,7 +4,17 @@ QTWEBENGINE_ROOT = $$replace(PWD, /tools/qmake/mkspecs/features$,)
# We depend on libc++ to build chromium so our macosx-version-min has to be 10.7
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
-QTWEBENGINEPROCESS_NAME = QtWebEngineProcess
+QTWEBENGINEPROCESS_NAME_RELEASE = QtWebEngineProcess
+debug_and_release {
+ QTWEBENGINEPROCESS_NAME_DEBUG = $$join(QTWEBENGINEPROCESS_NAME_RELEASE,,,d)
+} else {
+ QTWEBENGINEPROCESS_NAME_DEBUG = $$QTWEBENGINEPROCESS_NAME_RELEASE
+}
+build_pass:CONFIG(debug, debug|release) {
+ QTWEBENGINEPROCESS_NAME = $$QTWEBENGINEPROCESS_NAME_DEBUG
+} else {
+ QTWEBENGINEPROCESS_NAME = $$QTWEBENGINEPROCESS_NAME_RELEASE
+}
# Location of sync.profile
MODULE_BASE_DIR = $$QTWEBENGINE_ROOT