Files
pilotclient/install.pri
Mathew Sutcliffe 50b8fbe8fe [bug][Windows][Installer][DBus] Install session.conf in the correct location where dbus-daemon will look for it.
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
2017-05-14 17:21:37 +01:00

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