#6486 Added CI solution for automated builds
* Added Ubuntu Dockers for 16, 18, and 19 * Added Cirrus CI build task for gcloud instance with SSDs * Added macOS instance build with brew Qt install * Fixed Qt headers for 5.12.2 used in Ubuntu 19.04 * Consolidated version info into CMake file
This commit is contained in:
parent
2713b95af7
commit
9bccfb89cc
|
@ -0,0 +1,62 @@
|
||||||
|
gcp_credentials: ENCRYPTED[d3110e2399b82e1d2adb6f9294917064a448a4d102c42c5023815723841db4ff7aa1d0df64a44281ed25b3adbeb08eff]
|
||||||
|
|
||||||
|
windows_task:
|
||||||
|
gce_instance:
|
||||||
|
image_project: buildcluster-237411
|
||||||
|
image_name: windows2019-vs2017-ramdisk
|
||||||
|
platform: windows
|
||||||
|
zone: us-central1-a
|
||||||
|
type: n1-highcpu-16
|
||||||
|
disk: 32
|
||||||
|
use_ssd: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
BONJOUR_SDK_HOME: C:\Program Files\Bonjour SDK\
|
||||||
|
CMAKE_PREFIX_PATH: C:\Qt\5.9.5\msvc2017_64
|
||||||
|
CIRRUS_WORKING_DIR: D:\
|
||||||
|
|
||||||
|
build_script:
|
||||||
|
- .\CI\Windows\build.bat
|
||||||
|
|
||||||
|
ubuntu1604_task:
|
||||||
|
use_compute_credits: true
|
||||||
|
container:
|
||||||
|
dockerfile: CI/ubuntu1604.Dockerfile
|
||||||
|
build_script:
|
||||||
|
- pwd; ls -la
|
||||||
|
- chmod +x ./CI/build.sh
|
||||||
|
- ./CI/build.sh
|
||||||
|
|
||||||
|
ubuntu1804_task:
|
||||||
|
use_compute_credits: true
|
||||||
|
container:
|
||||||
|
dockerfile: CI/ubuntu1804.Dockerfile
|
||||||
|
build_script:
|
||||||
|
- pwd; ls -la
|
||||||
|
- chmod +x ./CI/build.sh
|
||||||
|
- ./CI/build.sh
|
||||||
|
|
||||||
|
ubuntu1904_task:
|
||||||
|
use_compute_credits: true
|
||||||
|
container:
|
||||||
|
dockerfile: CI/ubuntu1904.Dockerfile
|
||||||
|
build_script:
|
||||||
|
- pwd; ls -la
|
||||||
|
- chmod +x ./CI/build.sh
|
||||||
|
- ./CI/build.sh
|
||||||
|
|
||||||
|
macos_task:
|
||||||
|
use_compute_credits: true
|
||||||
|
osx_instance:
|
||||||
|
image: mojave-xcode-10.2
|
||||||
|
|
||||||
|
env:
|
||||||
|
PATH: /usr/local/opt/qt/bin:$PATH
|
||||||
|
|
||||||
|
install_script:
|
||||||
|
- brew install qt
|
||||||
|
build_script:
|
||||||
|
- mkdir build
|
||||||
|
- cd build
|
||||||
|
- cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.10 -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DCMAKE_CONFIGURATION_TYPES=$CMAKE_BUILD_TYPE ..
|
||||||
|
- make
|
|
@ -0,0 +1,56 @@
|
||||||
|
function Controller() {
|
||||||
|
installer.autoRejectMessageBoxes();
|
||||||
|
installer.installationFinished.connect(function() {
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.WelcomePageCallback = function() {
|
||||||
|
gui.clickButton(buttons.NextButton, 3000);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.CredentialsPageCallback = function() {
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.IntroductionPageCallback = function() {
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.TargetDirectoryPageCallback = function()
|
||||||
|
{
|
||||||
|
gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("HomeDir") + "/Qt");
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.ComponentSelectionPageCallback = function() {
|
||||||
|
var widget = gui.currentPageWidget();
|
||||||
|
|
||||||
|
widget.deselectAll();
|
||||||
|
|
||||||
|
widget.selectComponent("qt.595.clang_64")
|
||||||
|
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.LicenseAgreementPageCallback = function() {
|
||||||
|
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.StartMenuDirectoryPageCallback = function() {
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.ReadyForInstallationPageCallback = function()
|
||||||
|
{
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.FinishedPageCallback = function() {
|
||||||
|
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm
|
||||||
|
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {
|
||||||
|
checkBoxForm.launchQtCreatorCheckBox.checked = false;
|
||||||
|
}
|
||||||
|
gui.clickButton(buttons.FinishButton);
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
SET VS_INSTALL_PATH=C:\"Program Files (x86)"\"Microsoft Visual Studio"\2019\Community\
|
||||||
|
call %VS_INSTALL_PATH%Common7\Tools\VsDevCmd.bat
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Debug ..
|
||||||
|
msbuild synergy-core.sln /p:Platform="x64" /p:Configuration=Debug /m
|
|
@ -0,0 +1,54 @@
|
||||||
|
function Controller() {
|
||||||
|
installer.autoRejectMessageBoxes();
|
||||||
|
installer.installationFinished.connect(function() {
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.WelcomePageCallback = function() {
|
||||||
|
gui.clickButton(buttons.NextButton, 3000);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.CredentialsPageCallback = function() {
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.IntroductionPageCallback = function() {
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.TargetDirectoryPageCallback = function() {
|
||||||
|
gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.environmentVariable("QT_INSTALL_DIR"));
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.ComponentSelectionPageCallback = function() {
|
||||||
|
var widget = gui.currentPageWidget();
|
||||||
|
widget.deselectAll();
|
||||||
|
widget.selectComponent("qt.595.win32_msvc2015");
|
||||||
|
widget.selectComponent("qt.595.win64_msvc2015_64");
|
||||||
|
widget.selectComponent("qt.595.qtscript");
|
||||||
|
widget.selectComponent("qt.tools.vcredist_msvc2015_x86");
|
||||||
|
widget.selectComponent("qt.tools.vcredist_msvc2015_x64");
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.LicenseAgreementPageCallback = function() {
|
||||||
|
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.StartMenuDirectoryPageCallback = function() {
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.ReadyForInstallationPageCallback = function() {
|
||||||
|
gui.clickButton(buttons.NextButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
Controller.prototype.FinishedPageCallback = function() {
|
||||||
|
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm;
|
||||||
|
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox)
|
||||||
|
checkBoxForm.launchQtCreatorCheckBox.checked = false;
|
||||||
|
gui.clickButton(buttons.FinishButton);
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
pwd
|
||||||
|
ls -la
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
|
@ -0,0 +1,12 @@
|
||||||
|
cd ${CIRRUS_WORKING_DIR}
|
||||||
|
|
||||||
|
source ./build/version
|
||||||
|
|
||||||
|
SYNERGY_VERSION="$SYNERGY_VERSION_MAJOR.$SYNERGY_VERSION_MINOR.$SYNERGY_VERSION_PATCH"
|
||||||
|
SYNERGY_REVISION=`git rev-parse --short=8 HEAD`
|
||||||
|
SYNERGY_DEB_VERSION="${SYNERGY_VERSION}.${SYNERGY_VERSION_STAGE}~b${BUILD_NUMBER}+${SYNERGY_REVISION}"
|
||||||
|
|
||||||
|
dch --create --package "synergy" --controlmaint --distribution unstable --newversion $SYNERGY_DEB_VERSION "Initial release"
|
||||||
|
|
||||||
|
export DEB_BUILD_OPTIONS="parallel=4"
|
||||||
|
debuild --preserve-envvar SYNERGY_* --preserve-envvar GIT_COMMIT --preserve-envvar BUILD_NUMBER
|
|
@ -0,0 +1,24 @@
|
||||||
|
#
|
||||||
|
# Ubuntu Dockerfile
|
||||||
|
#
|
||||||
|
# https://github.com/dockerfile/ubuntu
|
||||||
|
#
|
||||||
|
|
||||||
|
# Pull base image.
|
||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
# Install.
|
||||||
|
RUN \
|
||||||
|
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y git cmake qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev && \
|
||||||
|
apt-get install -y debhelper devscripts
|
||||||
|
|
||||||
|
# Set environment variables.
|
||||||
|
ENV HOME /root
|
||||||
|
|
||||||
|
# Define working directory.
|
||||||
|
WORKDIR /root
|
||||||
|
|
||||||
|
# Define default command.
|
||||||
|
CMD ["bash"]
|
|
@ -0,0 +1,24 @@
|
||||||
|
#
|
||||||
|
# Ubuntu Dockerfile
|
||||||
|
#
|
||||||
|
# https://github.com/dockerfile/ubuntu
|
||||||
|
#
|
||||||
|
|
||||||
|
# Pull base image.
|
||||||
|
FROM ubuntu:18.04
|
||||||
|
|
||||||
|
# Install.
|
||||||
|
RUN \
|
||||||
|
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y git cmake qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev && \
|
||||||
|
apt-get install -y debhelper devscripts
|
||||||
|
|
||||||
|
# Set environment variables.
|
||||||
|
ENV HOME /root
|
||||||
|
|
||||||
|
# Define working directory.
|
||||||
|
WORKDIR /root
|
||||||
|
|
||||||
|
# Define default command.
|
||||||
|
CMD ["bash"]
|
|
@ -0,0 +1,24 @@
|
||||||
|
#
|
||||||
|
# Ubuntu Dockerfile
|
||||||
|
#
|
||||||
|
# https://github.com/dockerfile/ubuntu
|
||||||
|
#
|
||||||
|
|
||||||
|
# Pull base image.
|
||||||
|
FROM ubuntu:19.04
|
||||||
|
|
||||||
|
# Install.
|
||||||
|
RUN \
|
||||||
|
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y git cmake qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev && \
|
||||||
|
apt-get install -y debhelper devscripts
|
||||||
|
|
||||||
|
# Set environment variables.
|
||||||
|
ENV HOME /root
|
||||||
|
|
||||||
|
# Define working directory.
|
||||||
|
WORKDIR /root
|
||||||
|
|
||||||
|
# Define default command.
|
||||||
|
CMD ["bash"]
|
|
@ -336,6 +336,23 @@ macro (configure_files srcDir destDir)
|
||||||
endforeach (templateFile)
|
endforeach (templateFile)
|
||||||
endmacro (configure_files)
|
endmacro (configure_files)
|
||||||
|
|
||||||
|
macro(generate_versionfile)
|
||||||
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
|
FILE(WRITE ${CMAKE_BINARY_DIR}/version
|
||||||
|
"export SYNERGY_VERSION_MAJOR=\"${SYNERGY_VERSION_MAJOR}\"\n"
|
||||||
|
"export SYNERGY_VERSION_MINOR=\"${SYNERGY_VERSION_MINOR}\"\n"
|
||||||
|
"export SYNERGY_VERSION_PATCH=\"${SYNERGY_VERSION_PATCH}\"\n"
|
||||||
|
"export SYNERGY_VERSION_STAGE=\"${SYNERGY_VERSION_STAGE}\"\n")
|
||||||
|
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||||
|
FILE(WRITE ${CMAKE_BINARY_DIR}/version
|
||||||
|
"$env:SYNERGY_VERSION_MAJOR=\"${SYNERGY_VERSION_MAJOR}\"\n"
|
||||||
|
"$env:SYNERGY_VERSION_MINOR=\"${SYNERGY_VERSION_MINOR}\"\n"
|
||||||
|
"$env:SYNERGY_VERSION_PATCH=\"${SYNERGY_VERSION_PATCH}\"\n"
|
||||||
|
"$env:SYNERGY_VERSION_STAGE=\"${SYNERGY_VERSION_STAGE}\"\n")
|
||||||
|
endif()
|
||||||
|
endmacro(generate_versionfile)
|
||||||
|
|
||||||
|
|
||||||
if (${SYNERGY_BUILD_LEGACY_INSTALLER})
|
if (${SYNERGY_BUILD_LEGACY_INSTALLER})
|
||||||
#
|
#
|
||||||
# macOS app Bundle
|
# macOS app Bundle
|
||||||
|
@ -346,7 +363,8 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||||
set (SYNERGY_BUNDLE_DIR ${CMAKE_BINARY_DIR}/bundle)
|
set (SYNERGY_BUNDLE_DIR ${CMAKE_BINARY_DIR}/bundle)
|
||||||
set (SYNERGY_BUNDLE_APP_DIR ${SYNERGY_BUNDLE_DIR}/Synergy.app)
|
set (SYNERGY_BUNDLE_APP_DIR ${SYNERGY_BUNDLE_DIR}/Synergy.app)
|
||||||
set (SYNERGY_BUNDLE_BINARY_DIR ${SYNERGY_BUNDLE_APP_DIR}/Contents/MacOS)
|
set (SYNERGY_BUNDLE_BINARY_DIR ${SYNERGY_BUNDLE_APP_DIR}/Contents/MacOS)
|
||||||
|
|
||||||
|
generate_versionfile()
|
||||||
configure_files (${SYNERGY_BUNDLE_SOURCE_DIR} ${SYNERGY_BUNDLE_DIR})
|
configure_files (${SYNERGY_BUNDLE_SOURCE_DIR} ${SYNERGY_BUNDLE_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -356,6 +374,7 @@ endif()
|
||||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
||||||
message (STATUS "Configuring the v1 installer")
|
message (STATUS "Configuring the v1 installer")
|
||||||
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/wix ${CMAKE_BINARY_DIR}/installer)
|
configure_files (${CMAKE_CURRENT_SOURCE_DIR}/dist/wix ${CMAKE_BINARY_DIR}/installer)
|
||||||
|
generate_versionfile()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -369,6 +388,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||||
else()
|
else()
|
||||||
install(FILES res/synergy.desktop DESTINATION share/applications)
|
install(FILES res/synergy.desktop DESTINATION share/applications)
|
||||||
endif()
|
endif()
|
||||||
|
generate_versionfile()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
else()
|
else()
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
#include <QtCore>
|
#include <QtCore>
|
||||||
#include <QtGui>
|
#include <QtGui>
|
||||||
|
#include <qbuttongroup.h>
|
||||||
|
|
||||||
ActionDialog::ActionDialog(QWidget* parent, ServerConfig& config, Hotkey& hotkey, Action& action) :
|
ActionDialog::ActionDialog(QWidget* parent, ServerConfig& config, Hotkey& hotkey, Action& action) :
|
||||||
QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
|
QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
|
|
||||||
#include <QtCore>
|
#include <QtCore>
|
||||||
#include <QtGui>
|
#include <QtGui>
|
||||||
|
#include <qheaderview.h>
|
||||||
|
|
||||||
ScreenSetupView::ScreenSetupView(QWidget* parent) :
|
ScreenSetupView::ScreenSetupView(QWidget* parent) :
|
||||||
QTableView(parent)
|
QTableView(parent)
|
||||||
|
|
Loading…
Reference in New Issue