mirror of
https://github.com/deskflow/deskflow.git
synced 2026-06-25 21:12:01 +08:00
Migrated to Azure pipline for CI and builds
Also added Deb 10 to CI and builds
This commit is contained in:
parent
4b16b9339a
commit
448a787ab8
141
CI/Linux/linux-build.yml
Normal file
141
CI/Linux/linux-build.yml
Normal 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
108
CI/MacOS/mac-build.yml
Normal 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
38
CI/MacOS/notorize.sh
Executable 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
|
||||
@ -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);
|
||||
}
|
||||
@ -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
|
||||
@ -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);
|
||||
}
|
||||
181
CI/Windows/windows-build.yml
Normal file
181
CI/Windows/windows-build.yml
Normal 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')
|
||||
@ -1,6 +0,0 @@
|
||||
pwd
|
||||
ls -la
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
4
CI/checkout.yml
Normal file
4
CI/checkout.yml
Normal file
@ -0,0 +1,4 @@
|
||||
steps:
|
||||
- checkout: self
|
||||
fetchDepth: 1
|
||||
submodules: recursive
|
||||
37
CI/job-doxygen.yml
Normal file
37
CI/job-doxygen.yml
Normal 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'
|
||||
@ -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
|
||||
@ -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"]
|
||||
@ -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"]
|
||||
@ -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"]
|
||||
@ -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
|
||||
|
||||
1
dist/wix/Include.wxi.in
vendored
1
dist/wix/Include.wxi.in
vendored
@ -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
38
dist/wix/Product.wxs
vendored
@ -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
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
BIN
dist/wix/msm/Microsoft_VC142_CRT_x86.msm
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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()
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user