Migrated to Azure pipline for CI and builds

Also added Deb 10 to CI and builds
This commit is contained in:
Jnewbon 2020-07-08 13:17:06 +01:00 committed by GitHub
parent 4b16b9339a
commit 448a787ab8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 670 additions and 502 deletions

141
CI/Linux/linux-build.yml Normal file
View File

@ -0,0 +1,141 @@
steps:
- script: |
mkdir build-release
cd build-release
if [ -z $(which cmake) ]; then cmake3 -DCMAKE_BUILD_TYPE=Release ..; else cmake -DCMAKE_BUILD_TYPE=Release ..; fi
make -j
condition: eq(variables['packager'],'deb')
displayName: 'Build Release deb'
- script: |
mkdir build-release
cd build-release
if [ -z $(which cmake) ]; then
cmake3 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..;
else cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..;
fi
make -j
make install/strip
condition: eq(variables['packager'],'rpm')
displayName: 'Build Release rpm'
- script: |
mkdir build-ent
cd build-ent
export SYNERGY_ENTERPRISE=1
if [ -z $(which cmake) ]; then cmake3 -DCMAKE_BUILD_TYPE=Release -DSYNERGY_ENTERPRISE=ON ..; else cmake -DCMAKE_BUILD_TYPE=Release -DSYNERGY_ENTERPRISE=ON ..; fi
make -j
displayName: 'Build enterprise'
condition: eq(variables['packager'],'deb')
- script: |
mkdir build-ent
cd build-ent
if [ -z $(which cmake) ]; then
cmake3 -DCMAKE_BUILD_TYPE=Release -DSYNERGY_ENTERPRISE=ON -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..;
else cmake -DCMAKE_BUILD_TYPE=Release -DSYNERGY_ENTERPRISE=ON -DCMAKE_INSTALL_PREFIX:PATH=$(pwd)/rpm/BUILDROOT/usr ..;
fi
make -j
make install/strip
condition: eq(variables['packager'],'rpm')
displayName: 'Build enterprise rpm'
- script: |
. ./build-release/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.BuildNumber)+${SYNERGY_REVISION}"
SYNERGY_RPM_VERSION="${SYNERGY_VERSION}-$(Build.BuildNumber).${SYNERGY_VERSION_STAGE}.${SYNERGY_REVISION}"
echo "##vso[task.setvariable variable=SYNERGY_VERSION_STAGE]${SYNERGY_VERSION_STAGE}"
echo "##vso[task.setvariable variable=SYNERGY_VERSION]${SYNERGY_VERSION}"
echo "##vso[task.setvariable variable=SYNERGY_REVISION]${SYNERGY_REVISION}"
echo "##vso[task.setvariable variable=SYNERGY_DEB_VERSION]${SYNERGY_DEB_VERSION}"
echo "##vso[task.setvariable variable=SYNERGY_RPM_VERSION]${SYNERGY_RPM_VERSION}"
displayName: "Setup variables"
condition: and(eq(variables['packager'],'deb'), eq(variables['Build.Reason'], 'Manual'))
- script: |
dch --create --package "synergy" --controlmaint --distribution unstable --newversion $SYNERGY_DEB_VERSION "Initial release"
export DEB_BUILD_OPTIONS="parallel=8"
export GPG_TTY=$(tty)
debuild --preserve-envvar SYNERGY_* -us -uc
mkdir standard_package
cd ..
filename=$(ls synergy_*.deb)
filename_new="synergy_${SYNERGY_DEB_VERSION}_$(name)${filename##*${SYNERGY_REVISION}}"
mv $filename $(Build.Repository.LocalPath)/standard_package/$filename_new
cd $(Build.Repository.LocalPath)/standard_package
md5sum $filename_new >> ${filename_new}.md5
sha1sum $filename_new >> ${filename_new}.sha1
sha256sum $filename_new >> ${filename_new}.sha256
ls -la
displayName: "Package Binary DEB(Standard)"
condition: and(eq(variables['packager'],'deb'), eq(variables['Build.Reason'], 'Manual'))
- script: |
export SYNERGY_ENTERPRISE=1
dch --create --package "synergy-enterprise_" --controlmaint --distribution unstable --newversion $(SYNERGY_DEB_VERSION) "Initial release"
export DEB_BUILD_OPTIONS="parallel=8"
export GPG_TTY=$(tty)
debuild --preserve-envvar SYNERGY_* -us -uc
mkdir enterprise_package
cd ..
filename=$(ls synergy_*.deb)
filename_new="synergy-enterprise_$(SYNERGY_DEB_VERSION)_$(name)${filename##*$(SYNERGY_REVISION)}"
mv $filename $(Build.Repository.LocalPath)/enterprise_package/$filename_new
cd $(Build.Repository.LocalPath)/enterprise_package
md5sum $filename_new >> ${filename_new}.md5
sha1sum $filename_new >> ${filename_new}.sha1
sha256sum $filename_new >> ${filename_new}.sha256
ls -la
displayName: "Package Binary DEB(Enterprise)"
condition: and(eq(variables['packager'],'deb'), eq(variables['Build.Reason'], 'Manual'))
- script: |
cd build-release/rpm
rpmbuild -bb --define "_topdir $(pwd)" --buildroot $(pwd)/BUILDROOT synergy.spec
rpmlint --verbose RPMS/x86_64/*.rpm
cd RPMS/x86_64
filename=$(ls *.rpm)
md5sum $filename >> ${filename}.md5
sha1sum $filename >> ${filename}.sha1
sha256sum $filename >> ${filename}.sha256
cd ..
mv x86_64 $(Build.Repository.LocalPath)/standard_package
displayName: "Package Binary RPM(standard)"
condition: and(eq(variables['packager'],'rpm'), eq(variables['Build.Reason'], 'Manual'))
- script: |
cd build-ent/rpm
rpmbuild -bb --define "_topdir $(pwd)" --buildroot $(pwd)/BUILDROOT synergy.spec
rpmlint --verbose RPMS/x86_64/*.rpm
cd RPMS/x86_64
filename=$(ls *.rpm)
md5sum $filename >> ${filename}.md5
sha1sum $filename >> ${filename}.sha1
sha256sum $filename >> ${filename}.sha256
cd ..
mv x86_64 $(Build.Repository.LocalPath)/enterprise_package
ls -la
displayName: "Package Binary RPM(enterprise)"
condition: and(eq(variables['packager'],'rpm'), eq(variables['Build.Reason'], 'Manual'))
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
sourceFolder: './standard_package'
contents: '*'
targetFolder: 'synergy-core/v1-core-standard/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send standard Package to sandor'
condition: eq(variables['Build.Reason'], 'Manual')
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
sourceFolder: './enterprise_package'
contents: '*'
targetFolder: 'synergy-core/v1-core-enterprise/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send enterprise Package to sandor'
condition: eq(variables['Build.Reason'], 'Manual')

108
CI/MacOS/mac-build.yml Normal file
View File

@ -0,0 +1,108 @@
steps:
- task: InstallAppleCertificate@2
inputs:
certSecureFile: 'AppleSigningCert.cer'
certPwd: '$(AppleCertPass)'
keychain: 'temp'
condition: eq(variables['Build.Reason'], 'Manual')
- task: AzureKeyVault@1
inputs:
azureSubscription: 'Free Trial (796b9556-9614-41a6-8040-0eb14d81fe6f'
KeyVaultName: 'Symless'
SecretsFilter: '*'
displayName: "Get keys"
condition: eq(variables['Build.Reason'], 'Manual')
- task: CmdLine@2
inputs:
script: 'brew install qt'
displayName: 'Installing QT'
- task: CmdLine@2
inputs:
script: |
export PATH="$(QT_PATH):$PATH"
mkdir build
cd build
cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=$(version) -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CONFIGURATION_TYPES=Release ..
displayName: 'Cmake standard'
condition: eq(variables['buildType'], 'standard')
- task: CmdLine@2
inputs:
script: |
export PATH="$(QT_PATH):$PATH"
export SYNERGY_ENTERPRISE=1
mkdir build
cd build
cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CONFIGURATION_TYPES=Release -DSYNERGY_ENTERPRISE=ON ..
displayName: 'Cmake enterprise'
condition: eq(variables['buildType'], 'enterprise')
- task: CmdLine@2
inputs:
script: |
cd build
make -j
make install/strip
displayName: 'Compiling'
- task: CmdLine@2
inputs:
script: |
export PATH="$(QT_PATH):$PATH"
macdeployqt $(Build.Repository.LocalPath)/build/bundle/Synergy.app -codesign="$CODESIGN_ID"
codesign -f --options runtime --deep -s "$CODESIGN_ID" $(Build.Repository.LocalPath)/build/bundle/Synergy.app
ln -s /Applications $(Build.Repository.LocalPath)/build/bundle/Applications
displayName: 'Signing'
env:
CODESIGN_ID: "Developer ID Application: Symless Ltd (4HX897Y6GJ)"
condition: eq(variables['Build.Reason'], 'Manual')
- script: |
. ./build/version
SYNERGY_VERSION="$SYNERGY_VERSION_MAJOR.$SYNERGY_VERSION_MINOR.$SYNERGY_VERSION_PATCH"
SYNERGY_REVISION=`git rev-parse --short=8 HEAD`
SYNERGY_DMG_VERSION="${SYNERGY_VERSION}-${SYNERGY_VERSION_STAGE}_b$(Build.BuildNumber)-${SYNERGY_REVISION}"
SYNERGY_DMG_FILENAME=$(prefix)_v${SYNERGY_DMG_VERSION}_macos_$(name).dmg
echo "##vso[task.setvariable variable=SYNERGY_VERSION_STAGE]${SYNERGY_VERSION_STAGE}"
echo "##vso[task.setvariable variable=SYNERGY_VERSION]${SYNERGY_VERSION}"
echo "##vso[task.setvariable variable=SYNERGY_REVISION]${SYNERGY_REVISION}"
echo "##vso[task.setvariable variable=SYNERGY_DMG_VERSION]${SYNERGY_DMG_VERSION}"
echo "##vso[task.setvariable variable=SYNERGY_DMG_FILENAME]${SYNERGY_DMG_FILENAME}"
displayName: "Setup variables"
condition: eq(variables['Build.Reason'], 'Manual')
- task: CmdLine@2
inputs:
script: |
hdiutil create -volname Synergy -srcfolder $(Build.Repository.LocalPath)/build/bundle/ -ov -format UDZO $(SYNERGY_DMG_FILENAME)
mkdir pkg
mv $(SYNERGY_DMG_FILENAME) pkg/
cd pkg
md5 -r $(SYNERGY_DMG_FILENAME) >> $(SYNERGY_DMG_FILENAME).md5
shasum $(SYNERGY_DMG_FILENAME) >> $(SYNERGY_DMG_FILENAME).sha1
shasum -a 256 $(SYNERGY_DMG_FILENAME) >> $(SYNERGY_DMG_FILENAME).sha256
displayName: 'Create Installer'
condition: eq(variables['Build.Reason'], 'Manual')
- task: Bash@3
inputs:
filePath: 'CI/MacOS/notorize.sh'
workingDirectory: 'pkg/'
env:
ASC_USERNAME: $(ASC_USERNAME)
NOTORY_APP_PASSWORD: $(NOTORY_APP_PASSWORD)
displayName: 'Submit for Notarization'
condition: eq(variables['Build.Reason'], 'Manual')
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
sourceFolder: '$(Build.Repository.LocalPath)/pkg'
contents: '*'
targetFolder: 'synergy-core/v1-core-$(buildType)/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send Package to sandor'
condition: eq(variables['Build.Reason'], 'Manual')

38
CI/MacOS/notorize.sh Executable file
View File

@ -0,0 +1,38 @@
#Notarization script from https://github.com/rednoah/notarize-app/blob/master/notarize-app
BUNDLE_ID=com.symless.synergy.${SYNERGY_VERSION}.${SYNERGY_REVISION}
echo "User: ${ASC_USERNAME}"
echo "Bundle: ${BUNDLE_ID}"
# create temporary files
NOTARIZE_APP_LOG=$(mktemp -t notarize-app)
NOTARIZE_INFO_LOG=$(mktemp -t notarize-info)
# submit app for notarization
if xcrun altool --notarize-app --primary-bundle-id "$BUNDLE_ID" --username "$ASC_USERNAME" --password "${NOTORY_APP_PASSWORD}" -f "${SYNERGY_DMG_FILENAME}" > "$NOTARIZE_APP_LOG" 2>&1; then
cat "$NOTARIZE_APP_LOG"
RequestUUID=$(awk -F ' = ' '/RequestUUID/ {print $2}' "$NOTARIZE_APP_LOG")
# check status periodically
while sleep 60 && date; do
# check notarization status
if xcrun altool --notarization-info "$RequestUUID" --username "$ASC_USERNAME" --password "${NOTORY_APP_PASSWORD}" > "$NOTARIZE_INFO_LOG" 2>&1; then
cat "$NOTARIZE_INFO_LOG"
# once notarization is complete, run stapler and exit
if ! grep -q "Status: in progress" "$NOTARIZE_INFO_LOG"; then
xcrun stapler staple "${SYNERGY_DMG_FILENAME}"
exit
fi
else
cat "$NOTARIZE_INFO_LOG" 1>&2
exit 1
fi
done
else
cat "$NOTARIZE_APP_LOG" 1>&2
exit 1
fi

View File

@ -1,56 +0,0 @@
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);
}

View File

@ -1,6 +0,0 @@
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

View File

@ -1,54 +0,0 @@
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);
}

View File

@ -0,0 +1,181 @@
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
New-Item -Force -ItemType Directory -Path ".\deps\"
$client = new-object System.Net.WebClient
$client.DownloadFile("https://binaries.symless.com/bonjour/BonjourSDK.zip",".\deps\bonjoursdk.zip")
$client.DownloadFile("https://binaries.symless.com/bonjour/Bonjour64.msi",".\deps\Bonjour64.msi")
displayName: 'Downloading Bonjour SKD'
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
addToPath: true
architecture: 'x64'
displayName: 'Set python version'
- script: |
cd $(Build.SourcesDirectory)
python -m pip install aqtinstall
displayName: 'Install aqtinstall'
- script: |
cd $(Build.SourcesDirectory)
python -m aqt install -b $(QLI_BASE_URL) --outputdir $(Build.Repository.LocalPath)\\deps\\Qt $(QT_VERSION) windows desktop win64_msvc2017_64
python -m aqt install -b $(QLI_BASE_URL) --outputdir $(Build.Repository.LocalPath)\\deps\\Qt $(QT_VERSION) windows desktop win32_msvc2017
displayName: 'Install Qt $(QT_VERSION)'
- task: ExtractFiles@1
inputs:
archiveFilePatterns: './deps/*.zip'
destinationFolder: './deps/'
cleanDestinationFolder: false
displayName: 'Extracting zips'
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Get-ChildItem '.\deps'
msiexec.exe /i ${pwd}\deps\Bonjour64.msi INSTALLDIR="${pwd}\deps\Bonjour" /qb
displayName: 'Installing bonjour SDK'
- script: |
call "%ENV_BAT%" -arch=x64
set BONJOUR_SDK_HOME=%cd%\%BONJOUR_SDK_DIR%
mkdir build64
cd build64
IF "$(buildType)"=="enterprise" (
cmake -G "Visual Studio 16 2019" -A %MSARCH% -V -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=%QT_PATH% -DSYNERGY_ENTERPRISE=ON ..
) else (
cmake -G "Visual Studio 16 2019" -A %MSARCH% -V -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=%QT_PATH% ..
)
displayName: 'Cmake x64 Standard'
env:
ENV_BAT: $(ENV_BAT)
BONJOUR_SDK_DIR: $(BONJOUR_SDK_DIR)
QT_PATH: $(QT_BIN_PATH)
MSARCH: 'x64'
- script: |
call "%ENV_BAT%" -arch=x64
cd build64
msbuild synergy-core.sln /p:Platform="x64" /p:Configuration=Release
displayName: 'Compiling x64'
env:
ENV_BAT: $(ENV_BAT)
- script: |
call "%ENV_BAT%" -arch=x86
set BONJOUR_SDK_HOME=%cd%\%BONJOUR_SDK_DIR%
mkdir build32
cd build32
IF "$(buildType)"=="enterprise" (
cmake -G "Visual Studio 16 2019" -A %MSARCH% -V -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=%QT_PATH% -DSYNERGY_ENTERPRISE=ON ..
) else (
cmake -G "Visual Studio 16 2019" -A %MSARCH% -V -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=%QT_PATH% ..
)
displayName: 'Cmake x32 Standard'
env:
ENV_BAT: $(ENV_BAT)
BONJOUR_SDK_DIR: $(BONJOUR_SDK_DIR)
QT_PATH: $(QT_BIN_PATH_32)
MSARCH: 'Win32'
- script: |
call "%ENV_BAT%" -arch=x86
cd build32
msbuild synergy-core.sln /p:Platform="Win32" /p:Configuration=Release
displayName: 'Compiling x32'
env:
ENV_BAT: $(ENV_BAT)
- task: codesigning@2
inputs:
secureFileId: 'WindowsSigningCert.pfx'
signCertPassword: '$(CODESIGN_PWD)'
files: '*\bin\Release\*.exe'
timeServer: 'http://timestamp.digicert.com'
hashingAlgorithm: 'SHA256'
displayName: "Signing Synergy binaries"
condition: eq(variables['Build.Reason'], 'Manual')
- task: MSBuild@1
inputs:
solution: 'build64/installer/Synergy.sln'
msbuildVersion: '16.0'
msbuildArchitecture: 'x64'
platform: 'x64'
configuration: 'Release'
msbuildArguments: '/m'
maximumCpuCount: true
displayName: 'Making installer x64'
env:
QT_PATH: $(QT_BIN_PATH)
- task: MSBuild@1
inputs:
solution: 'build32/installer/Synergy.sln'
msbuildVersion: '16.0'
msbuildArchitecture: 'x86'
platform: 'x86'
configuration: 'Release'
msbuildArguments: '/m'
maximumCpuCount: true
displayName: 'Making installer x86'
env:
QT_PATH: $(QT_BIN_PATH_32)
- task: codesigning@2
inputs:
secureFileId: 'WindowsSigningCert.pfx'
signCertPassword: '$(CODESIGN_PWD)'
files: '*\installer\bin\Release\Synergy.msi'
timeServer: 'http://timestamp.digicert.com'
hashingAlgorithm: 'SHA256'
displayName: "Signing installers"
condition: eq(variables['Build.Reason'], 'Manual')
- script: |
call ./build64/version
set SYNERGY_VERSION=%SYNERGY_VERSION_MAJOR%.%SYNERGY_VERSION_MINOR%.%SYNERGY_VERSION_PATCH%
git rev-parse --short=8 HEAD > gitversion
set /p SYNERGY_REVISION= < gitversion
echo ##vso[task.setvariable variable=SYNERGY_VERSION_STAGE]%SYNERGY_VERSION_STAGE%
echo ##vso[task.setvariable variable=SYNERGY_VERSION]%SYNERGY_VERSION%
echo ##vso[task.setvariable variable=SYNERGY_REVISION]%SYNERGY_REVISION%
cd $(Build.Repository.LocalPath)\build32\installer\bin\Release\
set FILENAME=$(prefix)_v%SYNERGY_VERSION%_windows_x86.msi
ren "Synergy.msi" "%FILENAME%"
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe md5 %FILENAME% > %FILENAME%.md5
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe sha1 %FILENAME% > %FILENAME%.sha1
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe sha256 %FILENAME% > %FILENAME%.sha256
cd $(Build.Repository.LocalPath)\build64\installer\bin\Release\
set FILENAME=$(prefix)_v%SYNERGY_VERSION%_windows_x64.msi
ren "Synergy.msi" "%FILENAME%"
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe md5 %FILENAME% > %FILENAME%.md5
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe sha1 %FILENAME% > %FILENAME%.sha1
$(Build.Repository.LocalPath)\ext\openssl\windows\x64\bin\openssl.exe sha256 %FILENAME% > %FILENAME%.sha256
displayName: "Rename files"
condition: eq(variables['Build.Reason'], 'Manual')
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
sourceFolder: '$(Build.Repository.LocalPath)\build32\installer\bin\Release\'
contents: '*'
targetFolder: 'synergy-core/v1-core-$(buildType)/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send x86 Package to sandor'
condition: eq(variables['Build.Reason'], 'Manual')
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
sourceFolder: '$(Build.Repository.LocalPath)\build64\installer\bin\Release\'
contents: '*'
targetFolder: 'synergy-core/v1-core-$(buildType)/$(SYNERGY_VERSION)/$(SYNERGY_VERSION_STAGE)/$(SYNERGY_REVISION)/'
readyTimeout: '20000'
displayName: 'Send x64 Package to sandor'
condition: eq(variables['Build.Reason'], 'Manual')

View File

@ -1,6 +0,0 @@
pwd
ls -la
mkdir build
cd build
cmake ..
make

4
CI/checkout.yml Normal file
View File

@ -0,0 +1,4 @@
steps:
- checkout: self
fetchDepth: 1
submodules: recursive

37
CI/job-doxygen.yml Normal file
View File

@ -0,0 +1,37 @@
jobs:
- job: DoxygenDoc
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: |
sudo DEBIAN_FRONTEND=noninteractive
sudo apt-get -y update
sudo apt-get -y install doxygen graphviz
displayName: 'Install Pakages'
- script: |
doxygen Doxyfile
cd doxygen
tar -czvf ../docs.tar.gz ./*
displayName: 'Generate Docs'
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
sourceFolder: '.'
contents: 'docs.tar.gz'
targetFolder: 'synergy-core'
readyTimeout: '20000'
displayName: 'Publish files to sandor'
- task: SSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
runOptions: 'commands'
commands: |
tar -C ./synergy-core/docs -xzvf ./synergy-core/docs.tar.gz --overwrite
readyTimeout: '20000'
displayName: 'Extract files on sandor'

View File

@ -1,12 +0,0 @@
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

View File

@ -1,25 +0,0 @@
#
# 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 debhelper devscripts && \
apt-get -y install qttools5-dev qttools5-dev-tools --no-install-recommends && \
rm -rf /var/lib/apt/lists/*
# Set environment variables.
ENV HOME /root
# Define working directory.
WORKDIR /root
# Define default command.
CMD ["bash"]

View File

@ -1,26 +0,0 @@
#
# 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 debhelper devscripts && \
apt-get -y install qttools5-dev qttools5-dev-tools --no-install-recommends && \
rm -rf /var/lib/apt/lists/*
# Set environment variables.
ENV HOME /root
# Define working directory.
WORKDIR /root
# Define default command.
CMD ["bash"]

View File

@ -1,25 +0,0 @@
#
# 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 debhelper devscripts && \
apt-get -y install qttools5-dev qttools5-dev-tools --no-install-recommends && \
rm -rf /var/lib/apt/lists/*
# Set environment variables.
ENV HOME /root
# Define working directory.
WORKDIR /root
# Define default command.
CMD ["bash"]

View File

@ -1,285 +1,123 @@
trigger:
- master
jobs:
- job: LinuxRHEL
pool:
vmImage: 'ubuntu-16.04'
strategy:
matrix:
centos7:
image: symless/centos-sudo:7
jobs:
- template: CI/job-doxygen.yml
container: $[ variables['image'] ]
- job: Linux
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: |
sudo yum -y update
sudo yum -y install epel-release boost-static git libXtst-devel qt5-qtbase-devel qt5-qtdeclarative-devel libcurl-devel openssl-devel avahi-compat-libdns_sd-devel autoconf automake gcc gcc-c++ make rpm-build redhat-rpm-config rpm-sign qt5-qttools-devel
sudo yum -y install cmake3 #for some reason this needs to be seperate otherwise it wont install
displayName: 'Install Pakages'
- script: |
mkdir build
cd build
cmake3 ..
make
displayName: 'Build'
strategy:
matrix:
ubuntu1804:
image: symless/synergy-core:ubuntu18.04
packager: deb
name: ubuntu18
ubuntu1910:
image: symless/synergy-core:ubuntu19.10
packager: deb
name: ubuntu19
ubuntu2004:
image: symless/synergy-core:ubuntu20.04
packager: deb
name: ubuntu20
debian9:
image: symless/synergy-core:debian9
packager: deb
name: debian9
debian10:
image: symless/synergy-core:debian10
packager: deb
name: debian10
fedora28:
image: symless/synergy-core:fedora28
packager: rpm
name: fedora28
fedora29:
image: symless/synergy-core:fedora29
packager: rpm
name: fedora29
fedora30:
image: symless/synergy-core:fedora30
packager: rpm
name: fedora30
centos7.6:
image: symless/synergy-core:centos7.6
packager: rpm
name: centos76
centos8:
image: symless/synergy-core:centos8
packager: rpm
name: centos8
- job: LinuxDeb1
pool:
vmImage: 'ubuntu-16.04'
strategy:
matrix:
ubuntu18:
image: symless/ubuntu-sudo:18.04
ubuntu19:
image: symless/ubuntu-sudo:19.10
container: $[ variables['image'] ]
container: $[ variables['image'] ]
steps:
- template: CI/checkout.yml
- template: CI/Linux/linux-build.yml
steps:
- script: |
sudo ln -snf /usr/share/zoneinfo/Europe/London /etc/localtime
sudo bash -c "echo 'Europe/London' > /etc/timezone"
displayName: 'Sort out timezones for updates'
- job: MacOS
strategy:
matrix:
mojave-std:
image: macOS-10.14
name: mojave
version: 10.12
buildType: "standard"
prefix: "synergy"
mojave-ent:
image: macOS-10.14
name: mojave
version: 10.12
buildType: "enterprise"
prefix: "synergy-enterprise"
catalina-std:
image: macOS-10.15
name: catalina
version: 10.14
buildType: "standard"
prefix: "synergy"
catalina-ent:
image: macOS-10.15
name: catalina
version: 10.14
buildType: "enterprise"
prefix: "synergy-enterprise"
pool:
vmImage: $[ variables['image'] ]
- script: |
sudo DEBIAN_FRONTEND=noninteractive
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install git cmake qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev debhelper devscripts
sudo apt-get -y install qttools5-dev qttools5-dev-tools --no-install-recommends #These will try to install gnome if we allow dependancies
displayName: 'Install Pakages'
variables:
QT_PATH: '/usr/local/opt/qt/bin'
- script: |
mkdir build
cd build
cmake ..
make
displayName: 'Build'
steps:
- template: CI/checkout.yml
- template: CI/MacOS/mac-build.yml
- job: LinuxDeb2
pool:
vmImage: 'ubuntu-16.04'
strategy:
matrix:
ubuntu16:
image: symless/ubuntu-sudo:16.04
debian9:
image: symless/debian-sudo:stretch
- job: Windows
strategy:
matrix:
vs2019:
image: windows-2019
buildType: "standard"
prefix: "synergy"
vs2019ent:
image: windows-2019
buildType: "enterprise"
prefix: "synergy_enterprise"
container: $[ variables['image'] ]
pool:
vmImage: $[ variables['image'] ]
steps:
- script: |
sudo ln -snf /usr/share/zoneinfo/Europe/London /etc/localtime
sudo bash -c "echo 'Europe/London' > /etc/timezone"
displayName: 'Sort out timezones for updates'
variables:
QT_VERSION: '5.12.6'
QLI_OUT_DIR: '.\deps\Qt'
QLI_BASE_URL: 'http://qt.mirror.constant.com/'
QT_BIN_PATH: '$(Build.Repository.LocalPath)\$(QLI_OUT_DIR)\$(QT_VERSION)\msvc2017_64'
QT_BIN_PATH_32: '$(Build.Repository.LocalPath)\$(QLI_OUT_DIR)\$(QT_VERSION)\msvc2017'
BONJOUR_SDK_DIR: 'deps\BonjourSDK'
ENV_BAT: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\vsdevcmd'
- script: |
sudo DEBIAN_FRONTEND=noninteractive
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install git qtbase5-dev build-essential libx11-dev libxtst-dev libgl1-mesa-dev libssl-dev libavahi-compat-libdnssd-dev debhelper devscripts
sudo apt-get -y install qttools5-dev qttools5-dev-tools --no-install-recommends #These will try to install gnome if we allow dependancies
displayName: 'Install Pakages'
- script: |
sudo DEBIAN_FRONTEND=noninteractive
sudo apt-get -y install wget
wget https://github.com/Kitware/CMake/releases/download/v3.14.7/cmake-3.14.7-Linux-x86_64.sh
sudo chmod +x ./cmake-3.14.7-Linux-x86_64.sh
sudo ./cmake-3.14.7-Linux-x86_64.sh --skip-license --prefix=/
displayName: 'Installing CMake 3.14'
- script: |
mkdir build
cd build
cmake ..
make
displayName: 'Build'
- job: MacOS
strategy:
matrix:
mojave:
image: macOS-10.14
pool:
vmImage: $[ variables['image'] ]
variables:
QT_PATH: '/usr/local/opt/qt/bin'
steps:
- task: CmdLine@2
inputs:
script: 'brew install qt'
displayName: 'Installing QT'
- task: CmdLine@2
inputs:
script: |
export PATH="$(QT_PATH):$PATH"
mkdir build
cd build
cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CONFIGURATION_TYPES=Release ..
displayName: 'Cmake'
- task: CmdLine@2
inputs:
script: |
cd build
make
displayName: 'Compiling'
- job: Windows
strategy:
matrix:
vs2019:
image: windows-2019
pool:
vmImage: $[ variables['image'] ]
variables:
QT_VERSION: '5.12.6'
QLI_VERSION: '2019.05.26.1'
QLI_OUT_DIR: '.\deps\Qt'
QLI_BASE_URL: 'http://mirrors.ocf.berkeley.edu/qt/online/qtsdkrepository/'
QT_PATH: '$(Build.Repository.LocalPath)\$(QLI_OUT_DIR)\$(QT_VERSION)\msvc2017_64'
QT_PATH_32: '$(Build.Repository.LocalPath)\$(QLI_OUT_DIR)\$(QT_VERSION)\msvc2017'
BONJOUR_SDK_DIR: 'deps\BonjourSDK'
ENV_BAT: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\vsdevcmd'
steps:
#As the official installer is rather 'slow' use an unofficial installer QLI
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
New-Item -Force -ItemType Directory -Path ".\deps\"
$client = new-object System.Net.WebClient
$client.DownloadFile("https://github.com/nelsonjchen/qli-installer/archive/v$(QLI_VERSION).zip","deps\qli.zip")
displayName: 'Downloading QLI v$(QLI_VERSION)'
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
New-Item -Force -ItemType Directory -Path ".\deps\"
$client = new-object System.Net.WebClient
$client.DownloadFile("https://binaries.symless.com/bonjour/BonjourSDK.zip",".\deps\bonjoursdk.zip")
$client.DownloadFile("https://binaries.symless.com/bonjour/Bonjour64.msi",".\deps\Bonjour64.msi")
displayName: 'Downloading Bonjour SKD'
- task: ExtractFiles@1
inputs:
archiveFilePatterns: './deps/*.zip'
destinationFolder: './deps/'
cleanDestinationFolder: false
displayName: 'Extracting zips'
- task: PowerShell@2
inputs:
targetType: 'inline'
script: 'pip install -r .\deps\qli-installer-$(QLI_VERSION)\requirements.txt'
displayName: 'Install QLI requirements'
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Get-ChildItem '.\deps'
msiexec.exe /i ${pwd}\deps\Bonjour64.msi INSTALLDIR="${pwd}\deps\Bonjour" /qb
displayName: 'Installing bonjour SDK'
- task: PythonScript@0
inputs:
scriptSource: 'filePath'
scriptPath: '.\deps\qli-installer-$(QLI_VERSION)\qli-installer.py'
arguments: '$(QT_VERSION) windows desktop win64_msvc2017_64'
displayName: 'Installing QT $(QT_VERSION) x64'
- script: |
call "$(ENV_BAT)" -arch=x64
set BONJOUR_SDK_HOME=%cd%\$(BONJOUR_SDK_DIR)
mkdir build64
cd build64
cmake -G "Visual Studio 16 2019" -A x64 -V -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$(QT_PATH) ..
displayName: 'Cmake x64'
- task: MSBuild@1
inputs:
solution: 'build64/synergy-core.sln'
msbuildVersion: '16.0'
msbuildArchitecture: 'x64'
platform: 'x64'
configuration: 'Release'
msbuildArguments: '/m'
maximumCpuCount: true
displayName: 'Compiling x64'
- task: PythonScript@0
inputs:
scriptSource: 'filePath'
scriptPath: '.\deps\qli-installer-$(QLI_VERSION)\qli-installer.py'
arguments: '$(QT_VERSION) windows desktop win32_msvc2017'
displayName: 'Installing QT $(QT_VERSION) x32'
- script: |
call "$(ENV_BAT)" -arch=x86
set BONJOUR_SDK_HOME=%cd%\$(BONJOUR_SDK_DIR)
mkdir build32
cd build32
cmake -G "Visual Studio 16 2019" -A Win32 -V -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$(QT_PATH_32) ..
displayName: 'Cmake x86'
- task: MSBuild@1
inputs:
solution: 'build32/synergy-core.sln'
msbuildVersion: '16.0'
msbuildArchitecture: 'x86'
platform: 'Win32'
configuration: 'Release'
msbuildArguments: '/m'
maximumCpuCount: true
displayName: 'Compiling x86'
- job: DoxygenDoc
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: |
sudo DEBIAN_FRONTEND=noninteractive
sudo apt-get -y update
sudo apt-get -y install doxygen graphviz
displayName: 'Install Pakages'
- script: |
doxygen Doxyfile
cd doxygen
tar -czvf ../docs.tar.gz ./*
displayName: 'Generate Docs'
- task: CopyFilesOverSSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
sourceFolder: '.'
contents: 'docs.tar.gz'
targetFolder: 'synergy-core'
readyTimeout: '20000'
displayName: 'Publish files to sandor'
- task: SSH@0
inputs:
sshEndpoint: 'Azure on Sandor'
runOptions: 'commands'
commands: |
tar -C ./synergy-core/docs -xzvf ./synergy-core/docs.tar.gz --overwrite
readyTimeout: '20000'
displayName: 'Extract files on sandor'
steps:
- template: CI/checkout.yml
- template: CI/Windows/windows-build.yml

View File

@ -6,6 +6,7 @@
<?define BinPath="@CMAKE_RUNTIME_OUTPUT_DIRECTORY@/$(var.Configuration)" ?>
<?define ResPath="@CMAKE_CURRENT_SOURCE_DIR@/res" ?>
<?define ExtPath="@CMAKE_CURRENT_SOURCE_DIR@/ext" ?>
<?define DisPath="@CMAKE_CURRENT_SOURCE_DIR@/dist" ?>
<?if $(var.Platform) = "x64" ?>
<?define ProgramFilesFolder="ProgramFiles64Folder" ?>
<?define PlatformSimpleName="64-bit" ?>

38
dist/wix/Product.wxs vendored
View File

@ -39,9 +39,9 @@
<Condition><![CDATA[Installed OR (VersionNT >= 602)]]></Condition>
</Component>
<?if $(var.Platform) = x64 ?>
<Merge Id="VC_Redist" SourceFile="$(env.ProgramFiles)\Microsoft Visual Studio\2019\BuildTools\VC\Redist\MSVC\14.23.27820\MergeModules\Microsoft_VC142_CRT_x64.msm" DiskId="1" Language="0"/>
<Merge Id="VC_Redist" SourceFile="$(var.DisPath)\wix\msm\Microsoft_VC142_CRT_x64.msm" DiskId="1" Language="0"/>
<?else ?>
<Merge Id="VC_Redist" SourceFile="$(env.ProgramFiles)\Microsoft Visual Studio\2019\BuildTools\VC\Redist\MSVC\14.23.27820\MergeModules\Microsoft_VC142_CRT_x86.msm" DiskId="1" Language="0"/>
<Merge Id="VC_Redist" SourceFile="$(var.DisPath)\wix\msm\Microsoft_VC142_CRT_x86.msm" DiskId="1" Language="0"/>
<?endif ?>
</DirectoryRef>
<Icon Id="synergy.ico" SourceFile="$(var.ResPath)/synergy.ico"/>
@ -111,37 +111,37 @@
<fire:FirewallException Id="GuiFirewallException" IgnoreFailure="yes" Name="$(var.Name)" Scope="any"/>
</File>
<?if $(var.Configuration) = "Debug" ?>
<File Source="$(var.QtBinPath)\Qt5Cored.dll"/>
<File Source="$(var.QtBinPath)\Qt5Guid.dll"/>
<File Source="$(var.QtBinPath)\Qt5Networkd.dll"/>
<File Source="$(var.QtBinPath)\Qt5Svgd.dll"/>
<File Source="$(var.QtBinPath)\Qt5Widgetsd.dll"/>
<File Source="$(var.QtBinPath)\libGLESv2d.dll"/>
<File Source="$(var.QtBinPath)\libEGLd.dll"/>
<File Source="$(var.BinPath)\Qt5Cored.dll"/>
<File Source="$(var.BinPath)\Qt5Guid.dll"/>
<File Source="$(var.BinPath)\Qt5Networkd.dll"/>
<File Source="$(var.BinPath)\Qt5Svgd.dll"/>
<File Source="$(var.BinPath)\Qt5Widgetsd.dll"/>
<File Source="$(var.BinPath)\libGLESv2d.dll"/>
<File Source="$(var.BinPath)\libEGLd.dll"/>
<!-- Hacky -->
<File Source="C:\Program Files (x86)\Windows Kits\10\bin\$(var.Platform)\ucrt\ucrtbased.dll"/>
<?else ?>
<File Source="$(var.QtBinPath)\Qt5Core.dll"/>
<File Source="$(var.QtBinPath)\Qt5Gui.dll"/>
<File Source="$(var.QtBinPath)\Qt5Network.dll"/>
<File Source="$(var.QtBinPath)\Qt5Svg.dll"/>
<File Source="$(var.QtBinPath)\Qt5Widgets.dll"/>
<File Source="$(var.QtBinPath)\libGLESv2.dll"/>
<File Source="$(var.QtBinPath)\libEGL.dll"/>
<File Source="$(var.BinPath)\Qt5Core.dll"/>
<File Source="$(var.BinPath)\Qt5Gui.dll"/>
<File Source="$(var.BinPath)\Qt5Network.dll"/>
<File Source="$(var.BinPath)\Qt5Svg.dll"/>
<File Source="$(var.BinPath)\Qt5Widgets.dll"/>
<File Source="$(var.BinPath)\libGLESv2.dll"/>
<File Source="$(var.BinPath)\libEGL.dll"/>
<?endif ?>
</Component>
</ComponentGroup>
<ComponentGroup Directory="QTStylesDir" Id="ProductQtStylesComponents">
<Component Guid="96E0F8D8-64FD-4CE8-94D1-F6EDCBBB4995" Id="Styles">
<File Id="qwindowsvistastyle" Source="$(var.QtPluginsPath)\styles\qwindowsvistastyle.dll"/>
<File Id="qwindowsvistastyle" Source="$(var.BinPath)\styles\qwindowsvistastyle.dll"/>
</Component>
</ComponentGroup>
<ComponentGroup Directory="PlatformsDir" Id="ProductQtPluginComponents">
<Component Guid="684EFA14-856B-440E-A5E6-E90E04E36B41" Id="QtPlatformPlugin">
<?if $(var.Configuration) = "Debug" ?>
<File Source="$(var.QtPluginsPath)\platforms\qwindowsd.dll"/>
<File Source="$(var.BinPath)\platforms\qwindowsd.dll"/>
<?else ?>
<File Source="$(var.QtPluginsPath)\platforms\qwindows.dll"/>
<File Source="$(var.BinPath)\platforms\qwindows.dll"/>
<?endif ?>
</Component>
</ComponentGroup>

BIN
dist/wix/msm/Microsoft_VC142_CRT_x64.msm vendored Normal file

Binary file not shown.

BIN
dist/wix/msm/Microsoft_VC142_CRT_x86.msm vendored Normal file

Binary file not shown.

View File

@ -59,7 +59,6 @@ if (WIN32)
HINTS ENV BONJOUR_SDK_HOME
PATH_SUFFIXES "Lib/Win32")
endif()
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
target_link_libraries (synergy dns_sd)
endif()
@ -81,3 +80,34 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
install (TARGETS synergy DESTINATION bin)
endif()
if (WIN32)
if(Qt5_FOUND AND WIN32 AND TARGET Qt5::qmake AND NOT TARGET Qt5::windeployqt)
get_target_property(_qt5_qmake_location Qt5::qmake IMPORTED_LOCATION)
execute_process(
COMMAND "${_qt5_qmake_location}" -query QT_INSTALL_PREFIX
RESULT_VARIABLE return_code
OUTPUT_VARIABLE qt5_install_prefix
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(imported_location "${qt5_install_prefix}/bin/windeployqt.exe")
if(EXISTS ${imported_location})
add_executable(Qt5::windeployqt IMPORTED)
set_target_properties(Qt5::windeployqt PROPERTIES
IMPORTED_LOCATION ${imported_location}
)
endif()
endif()
if(TARGET Qt5::windeployqt)
# execute windeployqt in a tmp directory after build
add_custom_command(TARGET synergy
POST_BUILD
COMMAND set PATH=%PATH%$<SEMICOLON>${qt5_install_prefix}/bin
COMMAND Qt5::windeployqt "$<TARGET_FILE_DIR:synergy>/$<TARGET_FILE_NAME:synergy>"
)
endif()
endif()

View File

@ -98,7 +98,7 @@ int main(int argc, char* argv[])
app.switchTranslator(appConfig.language());
#ifdef SYNERGY_ENTERPRISE
MainWindow mainWindow(settings, appConfig);
MainWindow mainWindow(appConfig);
#else
MainWindow mainWindow(appConfig, licenseManager);
#endif