diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-11-20 11:49:34 +0100 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@theqtcompany.com> | 2014-11-20 19:28:22 +0100 |
commit | 8af12f0c9ee0cfdf28f557e96086bb7b08d786bc (patch) | |
tree | a0e7b3eb34d03a310dc339f232e3b3d45ee04f8c /src | |
parent | a659a309fa6f280e657458123c64a401707a9db0 (diff) |
Use a relative install_name for QtWebEngineProcess' dependenciesv5.4.0-rc1
Until we can rely on Qt using @rpath on OSX, QtWebEngineProcess'
dependencies must either be updated by macdeployqt when creating
an .app bundle, either we must make that path relative at build
time.
Since QtWebEngineProcess.app is always deployed inside
QtWebEngineCore.framework, we can safely assume that the dylib is
always in a parent directory and that QtCore.framework can be found
one directory higher.
The additional dependencies of QtWebEngineCore.framework will be
handled by the dynamic linker when it gets loaded, but this only
works for QtWebEngineProcess when macdeployqt uses @loader_path
instead of @executable_path (then relative to the application which
is in a different directory than QtWebEngineProcess).
This can be forced by passing a non-empty value for its
-executable= command-line argument (e.g
`macdeployqt Browser.app -executable=Browser.app/Contents/MacOS/Browser`)
All this will be much simpler once we got Qt framework builds to use
@rpath instead in a future minor version.
Task-number: QTBUG-41611
Change-Id: Ied46c65a09f7033b622708da6e3d85855f9abf34
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/process/process.pro | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/process/process.pro b/src/process/process.pro index 8ed09612a..ad1575c81 100644 --- a/src/process/process.pro +++ b/src/process/process.pro @@ -1,15 +1,33 @@ TARGET = $$QTWEBENGINEPROCESS_NAME TEMPLATE = app -QT_PRIVATE += webenginecore - load(qt_build_paths) contains(QT_CONFIG, qt_framework) { # Deploy the QtWebEngineProcess app bundle into the QtWebEngineCore framework. DESTDIR = $$MODULE_BASE_OUTDIR/lib/QtWebEngineCore.framework/Versions/5/Helpers + + # FIXME: We can remove those steps in Qt 5.5 once @rpath works + # "QT += webenginecore" would pull all dependencies that we'd also need to update + # with install_name_tool on OSX, but we only need access to the private + # QtWebEngine::processMain. qtAddModule will take care of finding where + # the library is without pulling additional librarie. + QT = core + qtAddModule(webenginecore, LIBS) + CONFIG -= link_prl + QMAKE_POST_LINK = \ + "xcrun install_name_tool -change " \ + "`xcrun otool -X -L $(TARGET) | grep QtWebEngineCore | cut -d ' ' -f 1` " \ + "@executable_path/../../../../QtWebEngineCore " \ + "$(TARGET); " \ + "xcrun install_name_tool -change " \ + "`xcrun otool -X -L $(TARGET) | grep QtCore | cut -d ' ' -f 1` " \ + "@executable_path/../../../../../../../QtCore.framework/QtCore " \ + "$(TARGET) " } else { CONFIG -= app_bundle DESTDIR = $$MODULE_BASE_OUTDIR/libexec + + QT_PRIVATE += webenginecore } INCLUDEPATH += ../core |