summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
m---------src/3rdparty0
-rw-r--r--src/core/core.pro8
-rw-r--r--src/core/core_gyp_generator.pro19
-rw-r--r--src/core/core_module.pro15
-rw-r--r--src/core/qtwebengine.gypi3
-rw-r--r--src/process/process.pro10
-rw-r--r--src/webengine/webengine.pro10
-rw-r--r--src/webenginewidgets/webenginewidgets.pro19
8 files changed, 30 insertions, 54 deletions
diff --git a/src/3rdparty b/src/3rdparty
-Subproject 9001f7258c97c6fe61d6362aa3431af7128f921
+Subproject 95854d944fb9195e2b2871367726f69cea9113d
diff --git a/src/core/core.pro b/src/core/core.pro
index c5fe808a6..5f0c3c29d 100644
--- a/src/core/core.pro
+++ b/src/core/core.pro
@@ -12,13 +12,17 @@ gyp_configure_target.depends = gyp_configure_host
# gyp_run.pro calls gyp through gyp_qtwebengine on the qmake step, and ninja on the make step.
gyp_run.file = gyp_run.pro
-
gyp_run.depends = core_gyp_generator gyp_configure_host gyp_configure_target
+# This will take the compile output of ninja, and link+deploy the final binary.
+core_module.file = core_module.pro
+core_module.depends = gyp_run
+
SUBDIRS += core_gyp_generator \
gyp_configure_host \
gyp_configure_target \
- gyp_run
+ gyp_run \
+ core_module
REPACK_DIR = $$getOutDir()/$$getConfigDir()/gen/repack
locales.files = $$REPACK_DIR/qtwebengine_locales
diff --git a/src/core/core_gyp_generator.pro b/src/core/core_gyp_generator.pro
index a75eb733a..25e105da6 100644
--- a/src/core/core_gyp_generator.pro
+++ b/src/core/core_gyp_generator.pro
@@ -7,12 +7,8 @@ GYPINCLUDES += qtwebengine.gypi
TEMPLATE = lib
-TARGET = Qt5WebEngineCore
-
-# gyp sets the default install name to /usr/local/lib and we need the module libraries to
-# know its install_name so that they can let the dynamic linker load the core library.
-# FIXME: Remove this and put it in qtwebengine.gypi once we can use a relative path to @loader_path.
-macx: GYP_DYLIB_INSTALL_NAME_BASE = $$getOutDir()/$$getConfigDir()
+# This must match the target name in core_module.pro to allow it to do the linking part.
+TARGET = QtWebEngineCore
QT += qml quick
QT_PRIVATE += qml-private quick-private gui-private core-private
@@ -104,14 +100,3 @@ HEADERS = \
yuv_video_node.h \
qrc_protocol_handler_qt.h \
url_request_qrc_job_qt.h
-
-VERSION = $$MODULE_VERSION
-win32:CONFIG += skip_target_version_ext
-load(resolve_target)
-TARGET_NAME = $$basename(QMAKE_RESOLVED_TARGET)
-TARGET_NAME = $$replace(TARGET_NAME, .$${VERSION},)
-
-target.files = $$getOutDir()/$$getConfigDir()/lib/$$TARGET_NAME
-target.CONFIG += no_check_exist # Trust us, qmake...
-target.path = $$[QT_INSTALL_LIBS]
-INSTALLS += target
diff --git a/src/core/core_module.pro b/src/core/core_module.pro
new file mode 100644
index 000000000..049bd0596
--- /dev/null
+++ b/src/core/core_module.pro
@@ -0,0 +1,15 @@
+TARGET = QtWebEngineCore
+MODULE = webenginecore
+
+# Look for linking information produced by gyp for our target according to core_generated.gyp
+!include($$getOutDir()/$$getConfigDir()/$${TARGET}_linking.pri) {
+ error("Could not find the linking information that gyp should have generated.")
+}
+
+# We distribute the module binary but headers are only available in-tree.
+CONFIG += no_module_headers
+load(qt_module)
+
+# Using -Wl,-Bsymbolic-functions seems to confuse the dynamic linker
+# and doesn't let Chromium get access to libc symbols through dlsym.
+CONFIG -= bsymbolic_functions
diff --git a/src/core/qtwebengine.gypi b/src/core/qtwebengine.gypi
index 20cac744a..0a179ea26 100644
--- a/src/core/qtwebengine.gypi
+++ b/src/core/qtwebengine.gypi
@@ -1,4 +1,7 @@
{
+ # This asks gyp to generate a .pri file with linking
+ # information so that qmake can take care of the deployment.
+ 'let_qmake_do_the_linking': 1,
'dependencies': [
'<(chromium_src_dir)/content/content.gyp:content',
'<(chromium_src_dir)/content/content.gyp:content_app_browser',
diff --git a/src/process/process.pro b/src/process/process.pro
index cc68e3dda..a9f5d183f 100644
--- a/src/process/process.pro
+++ b/src/process/process.pro
@@ -1,15 +1,9 @@
TARGET = $$QTWEBENGINEPROCESS_NAME
TEMPLATE = app
-macx {
- LIBPATH = $$getOutDir()/$$getConfigDir()
- CONFIG -= app_bundle
-} else:LIBPATH = $$getOutDir()/$$getConfigDir()/lib
-LIBS_PRIVATE += -L$$LIBPATH -lQt5WebEngineCore
-QMAKE_RPATHDIR += $$LIBPATH
+QT_PRIVATE += webenginecore
-qnx: QMAKE_RPATHLINKDIR += $${QNX_DIR}/$${QNX_CPUDIR}/usr/lib/qt5/lib
-else: cross_compile: QMAKE_RPATHLINKDIR += $$[QT_INSTALL_LIBS]
+CONFIG -= app_bundle
load(qt_build_paths)
DESTDIR = $$MODULE_BASE_OUTDIR/libexec
diff --git a/src/webengine/webengine.pro b/src/webengine/webengine.pro
index 062780469..cd175bfcc 100644
--- a/src/webengine/webengine.pro
+++ b/src/webengine/webengine.pro
@@ -4,18 +4,10 @@ TARGET = QtWebEngine
DEFINES += QT_BUILD_WEBENGINE_LIB
QT += qml quick
-QT_PRIVATE += qml-private quick-private gui-private core-private
+QT_PRIVATE += webenginecore qml-private quick-private gui-private core-private
INCLUDEPATH += $$PWD api ../core
-# FIXME: all this should eventually be turned into QT += webenginecore
-macx:LIBPATH = $$getOutDir()/$$getConfigDir()
-else:LIBPATH = $$getOutDir()/$$getConfigDir()/lib
-LIBS_PRIVATE += -lQt5WebEngineCore -L$$LIBPATH
-QMAKE_RPATHDIR += $$LIBPATH
-
-#DESTDIR = $$LIBPATH
-
SOURCES = \
api/qquickwebengineloadrequest.cpp \
api/qquickwebenginenewviewrequest.cpp \
diff --git a/src/webenginewidgets/webenginewidgets.pro b/src/webenginewidgets/webenginewidgets.pro
index a871586ae..c97e4b61e 100644
--- a/src/webenginewidgets/webenginewidgets.pro
+++ b/src/webenginewidgets/webenginewidgets.pro
@@ -4,15 +4,7 @@ TARGET = QtWebEngineWidgets
DEFINES += QT_BUILD_WEBENGINEWIDGETS_LIB
QT += widgets network
-QT_PRIVATE += widgets-private gui-private network-private core-private
-
-# FIXME: all this should eventually be turned into QT += webenginecore
-macx:LIBPATH = $$getOutDir()/$$getConfigDir()
-else:LIBPATH = $$getOutDir()/$$getConfigDir()/lib
-LIBS_PRIVATE += -L$$LIBPATH -lQt5WebEngineCore
-QMAKE_RPATHDIR += $$LIBPATH
-
-DESTDIR = $$LIBPATH
+QT_PRIVATE += webenginecore widgets-private gui-private network-private core-private
INCLUDEPATH += $$PWD api ../core
@@ -33,12 +25,3 @@ HEADERS = \
render_widget_host_view_qt_delegate_webpage.h
load(qt_module)
-
-# Some binutils versions configured for cross compilation only support
-# sysroot-relative rpath values and can't use the rpath specified above.
-# Instead, append an appropriate rpath-link to lib_qt_webenginewidgets.pri.
-cross_compile:!build_pass {
- local_build_rpath_link = "QMAKE_RPATHLINKDIR += $$LIBPATH"
- # MODULE_PRI is defined in qt_module_pris.prf
- write_file($$MODULE_PRI, local_build_rpath_link, append)
-}