mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 23:05:36 +08:00
Summary: On Windows, libdbus will spawn dbus-daemon when swift tries to connect to the session bus. The daemon looks for session.conf in the share directory. This patch ensures session.conf is installed in that directory. Fixes T79. Reviewers: rwinklmeier Reviewed By: rwinklmeier Subscribers: jenkins Tags: #swift_pilot_client Maniphest Tasks: T79 Differential Revision: https://dev.swift-project.org/D22
340 lines
15 KiB
Plaintext
340 lines
15 KiB
Plaintext
############### Readme, License etc. #####
|
|
|
|
text_files_target.path = $${PREFIX}/bin
|
|
text_files_target.files *= README.md
|
|
text_files_target.files *= LICENSE
|
|
|
|
INSTALLS += text_files_target
|
|
|
|
############### Install Qt5 ##############
|
|
|
|
win32 {
|
|
QT5_LIBRARIES *= Qt5Core$${DLL_DEBUG_SUFFIX}.dll
|
|
QT5_LIBRARIES *= Qt5Gui$${DLL_DEBUG_SUFFIX}.dll
|
|
QT5_LIBRARIES *= Qt5Network$${DLL_DEBUG_SUFFIX}.dll
|
|
QT5_LIBRARIES *= Qt5DBus$${DLL_DEBUG_SUFFIX}.dll
|
|
QT5_LIBRARIES *= Qt5Xml$${DLL_DEBUG_SUFFIX}.dll
|
|
QT5_LIBRARIES *= Qt5Multimedia$${DLL_DEBUG_SUFFIX}.dll
|
|
QT5_LIBRARIES *= Qt5Svg$${DLL_DEBUG_SUFFIX}.dll
|
|
QT5_LIBRARIES *= Qt5Widgets$${DLL_DEBUG_SUFFIX}.dll
|
|
|
|
qt5_target.path = $${PREFIX}/bin
|
|
QT5_LIBRARY_DIR = $$[QT_INSTALL_BINS]
|
|
}
|
|
else:macx {
|
|
# OSX workaround using rsync. Otherwise all headers are also copied.
|
|
qt5_target.path = $${PREFIX}/lib/QtCore.framework
|
|
qt5_target.extra += rsync -avz --exclude \'Headers*\' --exclude \'*debug*\' $$[QT_INSTALL_LIBS]/QtCore.framework/ $${PREFIX}/lib/QtCore.framework/ &&
|
|
qt5_target.extra += rsync -avz --exclude \'Headers*\' --exclude \'*debug*\' $$[QT_INSTALL_LIBS]/QtGui.framework/ $${PREFIX}/lib/QtGui.framework/ &&
|
|
qt5_target.extra += rsync -avz --exclude \'Headers*\' --exclude \'*debug*\' $$[QT_INSTALL_LIBS]/QtNetwork.framework/ $${PREFIX}/lib/QtNetwork.framework/ &&
|
|
qt5_target.extra += rsync -avz --exclude \'Headers*\' --exclude \'*debug*\' $$[QT_INSTALL_LIBS]/QtDBus.framework/ $${PREFIX}/lib/QtDBus.framework/ &&
|
|
qt5_target.extra += rsync -avz --exclude \'Headers*\' --exclude \'*debug*\' $$[QT_INSTALL_LIBS]/QtXml.framework/ $${PREFIX}/lib/QtXml.framework/ &&
|
|
qt5_target.extra += rsync -avz --exclude \'Headers*\' --exclude \'*debug*\' $$[QT_INSTALL_LIBS]/QtMultimedia.framework/ $${PREFIX}/lib/QtMultimedia.framework/ &&
|
|
qt5_target.extra += rsync -avz --exclude \'Headers*\' --exclude \'*debug*\' $$[QT_INSTALL_LIBS]/QtSvg.framework/ $${PREFIX}/lib/QtSvg.framework/ &&
|
|
qt5_target.extra += rsync -avz --exclude \'Headers*\' --exclude \'*debug*\' $$[QT_INSTALL_LIBS]/QtWidgets.framework/ $${PREFIX}/lib/QtWidgets.framework/ &&
|
|
qt5_target.extra += rsync -avz --exclude \'Headers*\' --exclude \'*debug*\' $$[QT_INSTALL_LIBS]/QtPrintSupport.framework/ $${PREFIX}/lib/QtPrintSupport.framework/
|
|
}
|
|
else:unix: {
|
|
QT5_LIBRARIES *= libQt5Core.so.5
|
|
QT5_LIBRARIES *= libQt5DBus.so.5
|
|
QT5_LIBRARIES *= libQt5Gui.so.5
|
|
QT5_LIBRARIES *= libQt5Multimedia.so.5
|
|
QT5_LIBRARIES *= libQt5MultimediaWidgets.so.5
|
|
QT5_LIBRARIES *= libQt5Network.so.5
|
|
QT5_LIBRARIES *= libQt5OpenGL.so.5
|
|
QT5_LIBRARIES *= libQt5Svg.so.5
|
|
QT5_LIBRARIES *= libQt5Widgets.so.5
|
|
QT5_LIBRARIES *= libQt5XcbQpa.so.5
|
|
QT5_LIBRARIES *= libQt5Xml.so.5
|
|
QT5_LIBRARIES *= libqgsttools_p.so.1
|
|
|
|
ICU_LIBRARIES *= libicui18n.so.56
|
|
ICU_LIBRARIES *= libicuuc.so.56
|
|
ICU_LIBRARIES *= libicudata.so.56
|
|
|
|
qt5_target.path = $${PREFIX}/lib
|
|
QT5_LIBRARY_DIR = $$[QT_INSTALL_LIBS]
|
|
}
|
|
|
|
for (LIBRARY, QT5_LIBRARIES) {
|
|
LIBRARY_PATH = $${QT5_LIBRARY_DIR}/$${LIBRARY}
|
|
!exists($$LIBRARY_PATH): error("Cannot find $${LIBRARY_PATH}")
|
|
qt5_target.files *= $${LIBRARY_PATH}
|
|
}
|
|
|
|
for (LIBRARY, ICU_LIBRARIES) {
|
|
LIBRARY_PATH = $${QT5_LIBRARY_DIR}/$${LIBRARY}
|
|
exists($$LIBRARY_PATH): qt5_target.files *= $${LIBRARY_PATH}
|
|
}
|
|
|
|
INSTALLS += qt5_target
|
|
|
|
############### Install Qt5 audio plugins ##############
|
|
|
|
win32: qt5_audio_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/audio/*$${DLL_DEBUG_SUFFIX}.dll
|
|
else:macx: qt5_audio_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/audio/*.dylib
|
|
else:unix:qt5_audio_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/audio/*.so
|
|
qt5_audio_plugins_target.path = $${PREFIX}/bin/audio
|
|
INSTALLS += qt5_audio_plugins_target
|
|
|
|
############### Install Qt5 bearer plugins ##############
|
|
|
|
win32: qt5_bearer_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/bearer/*$${DLL_DEBUG_SUFFIX}.dll
|
|
else:macx: qt5_bearer_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/bearer/*.dylib
|
|
else:unix:qt5_bearer_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/bearer/*.so
|
|
qt5_bearer_plugins_target.path = $${PREFIX}/bin/bearer
|
|
INSTALLS += qt5_bearer_plugins_target
|
|
|
|
############### Install Qt5 iconengines plugins ##############
|
|
|
|
win32: qt5_iconengines_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/iconengines/*$${DLL_DEBUG_SUFFIX}.dll
|
|
else:macx: qt5_iconengines_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/iconengines/*.dylib
|
|
else:unix:qt5_iconengines_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/iconengines/*.so
|
|
qt5_iconengines_plugins_target.path = $${PREFIX}/bin/iconengines
|
|
INSTALLS += qt5_iconengines_plugins_target
|
|
|
|
############### Install Qt5 imageformats plugins ##############
|
|
|
|
win32: qt5_imageformats_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/imageformats/*$${DLL_DEBUG_SUFFIX}.dll
|
|
else:macx: qt5_imageformats_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/imageformats/*.dylib
|
|
else:unix:qt5_imageformats_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/imageformats/*.so
|
|
qt5_imageformats_plugins_target.path = $${PREFIX}/bin/imageformats
|
|
INSTALLS += qt5_imageformats_plugins_target
|
|
|
|
############### Install Qt5 mediaservice plugins ##############
|
|
|
|
win32: qt5_mediaservice_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/mediaservice/*$${DLL_DEBUG_SUFFIX}.dll
|
|
else:macx: qt5_mediaservice_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/mediaservice/*.dylib
|
|
else:unix:qt5_mediaservice_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/mediaservice/*.so
|
|
qt5_mediaservice_plugins_target.path = $${PREFIX}/bin/mediaservice
|
|
INSTALLS += qt5_mediaservice_plugins_target
|
|
|
|
############### Install Qt5 platforms plugins ##############
|
|
|
|
win32: qt5_platforms_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/platforms/qwindows$${DLL_DEBUG_SUFFIX}.dll
|
|
else:macx: qt5_platforms_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/platforms/libqcocoa.dylib
|
|
else:unix:qt5_platforms_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/platforms/libqxcb.so
|
|
qt5_platforms_plugins_target.path = $${PREFIX}/bin/platforms
|
|
INSTALLS += qt5_platforms_plugins_target
|
|
|
|
############### Install Qt5 platforminputcontexts plugins ##############
|
|
|
|
win32: qt5_platforminputcontexts_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/platforminputcontexts/*$${DLL_DEBUG_SUFFIX}.dll
|
|
else:macx: qt5_platforminputcontexts_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/platforminputcontexts/*.dylib
|
|
else:unix:qt5_platforminputcontexts_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/platforminputcontexts/*.so
|
|
qt5_platforminputcontexts_plugins_target.path = $${PREFIX}/bin/platforminputcontexts
|
|
INSTALLS += qt5_platforminputcontexts_plugins_target
|
|
|
|
############### Install Qt5 platformthemes plugins ##############
|
|
|
|
win32: qt5_platformthemes_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/platformthemes/*$${DLL_DEBUG_SUFFIX}.dll
|
|
else:macx: qt5_platformthemes_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/platformthemes/*.dylib
|
|
else:unix:qt5_platformthemes_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/platformthemes/*.so
|
|
qt5_platformthemes_plugins_target.path = $${PREFIX}/bin/platformthemes
|
|
INSTALLS += qt5_platformthemes_plugins_target
|
|
|
|
############### Install Qt5 xcbglintegrations plugins ##############
|
|
|
|
unix:!macx {
|
|
qt5_xcbglintegrations_plugins_target.files *= $$[QT_INSTALL_PLUGINS]/xcbglintegrations/*.so
|
|
qt5_xcbglintegrations_plugins_target.path = $${PREFIX}/bin/xcbglintegrations
|
|
INSTALLS += qt5_xcbglintegrations_plugins_target
|
|
}
|
|
|
|
############### Install DBus ##############
|
|
|
|
win32-g++ {
|
|
DBUS_BINARY_SOURCE_DIR = $$[QT_INSTALL_BINS]
|
|
DBUS_BINARIES *= dbus-daemon.exe
|
|
dbus_binary_target.path = $${PREFIX}/bin
|
|
|
|
DBUS_LIBARY_SOURCE_DIR = $$[QT_INSTALL_BINS]
|
|
DBUS_LIBRARIES *= libdbus-1-3.dll
|
|
dbus_library_target.path = $${PREFIX}/bin
|
|
|
|
DBUS_CONFIG_SOURCE_DIR = $$SourceRoot
|
|
DBUS_CONFIG_FILES *= etc/dbus-1/*
|
|
dbus_config_target.path = $${PREFIX}/share/dbus-1
|
|
}
|
|
|
|
win32-msvc2015 {
|
|
DBUS_BINARY_SOURCE_DIR = $$[QT_INSTALL_BINS]
|
|
DBUS_BINARIES *= dbus-daemon.exe
|
|
dbus_binary_target.path = $${PREFIX}/bin
|
|
|
|
DBUS_LIBARY_SOURCE_DIR = $$[QT_INSTALL_BINS]
|
|
DBUS_LIBRARIES *= expat.dll
|
|
DBUS_LIBRARIES *= dbus-1-3.dll
|
|
dbus_library_target.path = $${PREFIX}/bin
|
|
|
|
DBUS_CONFIG_SOURCE_DIR = $$SourceRoot
|
|
DBUS_CONFIG_FILES *= etc/dbus-1/*
|
|
dbus_config_target.path = $${PREFIX}/share/dbus-1
|
|
}
|
|
|
|
macx {
|
|
# Binaries are copied from externals
|
|
dbus_binary_target.path = $${PREFIX}/bin
|
|
dbus_library_target.path = $${PREFIX}/lib
|
|
|
|
DBUS_CONFIG_SOURCE_DIR = /usr/local/share/dbus-1
|
|
DBUS_CONFIG_FILES *= session.conf
|
|
DBUS_CONFIG_FILES *= system.conf
|
|
dbus_config_target.path = $${PREFIX}/share/dbus-1
|
|
}
|
|
|
|
for (BINARY, DBUS_BINARIES) {
|
|
BINARY_PATH = $${DBUS_BINARY_SOURCE_DIR}/$${BINARY}
|
|
!exists($$BINARY_PATH): error("Cannot find $${BINARY_PATH}")
|
|
dbus_binary_target.files *= $${BINARY_PATH}
|
|
}
|
|
|
|
for (LIBRARY, DBUS_LIBRARIES) {
|
|
LIBRARY_PATH = $${DBUS_LIBARY_SOURCE_DIR}/$${LIBRARY}
|
|
!exists($$LIBRARY_PATH): error("Cannot find $${LIBRARY_PATH}")
|
|
dbus_library_target.files *= $${LIBRARY_PATH}
|
|
}
|
|
|
|
for (DBUS_CONFIG_FILE, DBUS_CONFIG_FILES) {
|
|
DBUS_CONFIG_FILE_PATH = $${DBUS_CONFIG_SOURCE_DIR}/$${DBUS_CONFIG_FILE}
|
|
!exists($$DBUS_CONFIG_FILE_PATH): error("Cannot find $${DBUS_CONFIG_FILE_PATH}")
|
|
dbus_config_target.files *= $${DBUS_CONFIG_FILE_PATH}
|
|
}
|
|
|
|
win32|macx: INSTALLS += dbus_binary_target dbus_library_target dbus_config_target
|
|
|
|
############### Install VC runtime ##############
|
|
|
|
win32-msvc2015 {
|
|
equals(WORD_SIZE,64) {
|
|
vc_redist_target.files *= $$(VS140COMNTOOLS)../../VC/redist/1033/vcredist_x64.exe
|
|
}
|
|
equals(WORD_SIZE,32) {
|
|
vc_redist_target.files *= $$(VS140COMNTOOLS)../../VC/redist/1033/vcredist_x86.exe
|
|
}
|
|
vc_redist_target.path *= $${PREFIX}/vcredist
|
|
INSTALLS += vc_redist_target
|
|
}
|
|
|
|
win32-g++ {
|
|
equals(WORD_SIZE,32) {
|
|
VC_RUNTIME_LIBS *= libgcc_s_dw2-1
|
|
}
|
|
equals(WORD_SIZE,64) {
|
|
VC_RUNTIME_LIBS *= libgcc_s_seh-1
|
|
}
|
|
VC_RUNTIME_LIBS *= libwinpthread-1
|
|
|
|
vc_runtime_target.path *= $${PREFIX}/bin
|
|
|
|
for (LIBRARY, VC_RUNTIME_LIBS) {
|
|
vc_runtime_target.files *= $$[QT_INSTALL_BINS]/$${LIBRARY}.$${QMAKE_EXTENSION_SHLIB}
|
|
}
|
|
|
|
INSTALLS += vc_runtime_target
|
|
|
|
# libstdc++-6.dll needs a workaround since copy does not accept a filepath with '+' in it
|
|
vc_runtime_target.depends += copy_libstdc
|
|
copy_libstdc.target = copy_libstdc
|
|
source_path = $$[QT_INSTALL_BINS]/libstdc++-6.dll
|
|
dest_path = $$vc_runtime_target.path
|
|
copy_libstdc.commands = xcopy /Y $$shell_path($$source_path) $$shell_path($$dest_path)
|
|
QMAKE_EXTRA_TARGETS += copy_libstdc
|
|
}
|
|
|
|
############### Install externals ##############
|
|
|
|
win32: externals_lib_target.path = $${PREFIX}/bin
|
|
else: externals_lib_target.path = $${PREFIX}/lib
|
|
!win32-g++: externals_lib_target.files *= $${EXTERNALS_LIB_DIR}/*.$${QMAKE_EXTENSION_SHLIB}
|
|
INSTALLS += externals_lib_target
|
|
|
|
# win32-g++ needs a workaround since copy does not accept a filepath with '+' in it
|
|
# we also need to make it dependent on vc_runtime_target since this target has no
|
|
# files and does not generate any install target.
|
|
win32-g++ {
|
|
vc_runtime_target.depends += copy_externals
|
|
copy_externals.target = copy_externals
|
|
source_path = $${EXTERNALS_LIB_DIR}//*.dll
|
|
dest_path = $${externals_lib_target.path}
|
|
copy_externals.commands += xcopy /Y $$shell_path($$source_path) $$shell_path($$dest_path) $$escape_expand(\n\t)
|
|
QMAKE_EXTRA_TARGETS += copy_externals
|
|
}
|
|
|
|
win32: externals_bin_target.path = $${PREFIX}/bin
|
|
else: externals_bin_target.path = $${PREFIX}/bin
|
|
!win32-g++: externals_bin_target.files *= $${EXTERNALS_BIN_DIR}/*
|
|
INSTALLS += externals_bin_target
|
|
|
|
############### Installbuilder ##############
|
|
|
|
bitrock_customize_bin = $$(BITROCK_CUSTOMIZE)
|
|
bitrock_builder_bin = $$(BITROCK_BUILDER)
|
|
!isEmpty(bitrock_customize_bin):!isEmpty(bitrock_builder_bin) {
|
|
|
|
copy_installer_project.depends = install
|
|
win32: copy_installer_project.commands = xcopy /Y /E /I $$shell_path($$SourceRoot/installer) $$shell_path($$DestRoot/../../installer)
|
|
else: copy_installer_project.commands = cp -R $$shell_path($$SourceRoot/installer) $$shell_path($$DestRoot/../../)
|
|
QMAKE_EXTRA_TARGETS += copy_installer_project
|
|
|
|
bitrock_autoupdateproject = "$${PREFIX}/../installer/installbuilder/autoupdateproject.xml"
|
|
bitrock_project = $${PREFIX}/../installer/installbuilder/project.xml
|
|
|
|
create_updater.depends = copy_installer_project
|
|
win32: create_updater.commands = $${bitrock_customize_bin} build $${bitrock_autoupdateproject} windows
|
|
else:macx: create_updater.commands = $${bitrock_customize_bin} build $${bitrock_autoupdateproject} osx
|
|
else:unix: create_updater.commands = $${bitrock_customize_bin} build $${bitrock_autoupdateproject} linux-x64
|
|
QMAKE_EXTRA_TARGETS += create_updater
|
|
|
|
create_installer.depends = create_updater
|
|
win32 {
|
|
INSTALLER_PLATFORM = windows
|
|
INSTALLER_BASENAME = swift-installer-win-$${WORD_SIZE}-$${BLACK_VERSION}
|
|
INSTALLER_EXT = exe
|
|
}
|
|
else:macx {
|
|
INSTALLER_PLATFORM = osx
|
|
INSTALLER_BASENAME = swift-installer-osx-$${WORD_SIZE}-$${BLACK_VERSION}
|
|
INSTALLER_EXT = app
|
|
INSTALLER_CONTAINER_EXT = dmg
|
|
}
|
|
else:unix {
|
|
INSTALLER_PLATFORM = linux-x$${WORD_SIZE}
|
|
INSTALLER_BASENAME = swift-installer-linux-$${WORD_SIZE}-$${BLACK_VERSION}
|
|
INSTALLER_EXT = run
|
|
}
|
|
create_installer.commands = $${bitrock_builder_bin} build $${bitrock_project} $${INSTALLER_PLATFORM} \
|
|
--setvars project.outputDirectory=$$shell_path($${PREFIX}/..) \
|
|
project.installerFilename=$${INSTALLER_BASENAME}.$${INSTALLER_EXT} \
|
|
project.version=$${BLACK_VERSION}
|
|
QMAKE_EXTRA_TARGETS += create_installer
|
|
}
|
|
|
|
############### Publish Jenkins build artifact ###############
|
|
|
|
!isEmpty(create_installer.commands) {
|
|
win32: {
|
|
# Fixme: the path to date.exe is currently hard coded
|
|
PUBLISHED_FILENAME = $${INSTALLER_BASENAME}.$$system(C:\UnxUtils\usr\local\wbin\date.exe -u +%Y%m%d%H%M%S).$${INSTALLER_EXT}
|
|
publish_installer.commands = move $${INSTALLER_BASENAME}.$${INSTALLER_EXT} ../$${PUBLISHED_FILENAME}
|
|
}
|
|
|
|
unix: {
|
|
isEmpty(INSTALLER_CONTAINER_EXT) {
|
|
PUBLISHED_FILENAME = $${INSTALLER_BASENAME}.$$system(date -u '+%Y%m%d%H%M%S').$${INSTALLER_EXT}
|
|
publish_installer.commands = mv $${INSTALLER_BASENAME}.$${INSTALLER_EXT} ../$${PUBLISHED_FILENAME}
|
|
} else {
|
|
PUBLISHED_FILENAME = $${INSTALLER_BASENAME}.$$system(date -u '+%Y%m%d%H%M%S').$${INSTALLER_CONTAINER_EXT}
|
|
publish_installer.commands = mv $${INSTALLER_BASENAME}.$${INSTALLER_CONTAINER_EXT} ../$${PUBLISHED_FILENAME}
|
|
}
|
|
}
|
|
|
|
publish_installer.depends = create_installer
|
|
QMAKE_EXTRA_TARGETS += publish_installer
|
|
}
|
|
|
|
############### Bitrock Installbuilder Files ###############
|
|
|
|
# List them in IDE
|
|
OTHER_FILES += installer/installbuilder/*.xml
|