Commit graph

233 commits

Author SHA1 Message Date
Nick Bolton
bec38ab47b
Re-implement packaging for GitHub workflows (Windows) (#7360)
* Add new version env vars to example

* Remove test file

* Move CMake packaging to separate module and configure OpenSSL path for Windows

* Make VS Code CMake build task default

* Generate Microsoft-friendly 4-digit version number

* Update macOS bundle .plist with build year variable

* Use correct OpenSSL path and fixed various MSI variables

* Use correct rest/dist dir for MSI

* Add version .rc file for Windows

* Use macro instead of over-complicated version query command

* Made cmd_utils more secure by defaulting to no-shell and no-print

* Add certificate management module

* Implement packaging script on Windows

* Refactor Mac packaging script to use new cmd_utils args and new cert module

* Update ChangeLog

* Change PFX env vars and add to CI

* Use import as instead of from lib to solve resolve issue

* Allow custom certificate extensions

* Check for package version when using gdrive

* Make version number required

* Add missing shell

* Add missing gdrive value in test

* Find OpenSSL dir based on openssl binary

* Only use first OpenSSL entry

* More verbose logging

* Improve logging

* Only use env var if not empty

* Fixed wrong var

* Fixed macOS GitHub artefact name

* Change filename format to match new convention
2024-06-28 09:35:18 +00:00
Nick Bolton
865063b77c
Re-implement packaging for GitHub workflows (macOS) (#7353)
* Restore Azure macOS dist scripts

* Move steps to workflow for testing

* Always upload to GitHub

* Add codesign ID

* Echo codesign ID

* Add cert import code

* Stub file for Mac

* Self-install pyyaml and choco

* Auto add env var on Windows

* Auto add CMAKE_PREFIX_PATH to .zshrc

* Shorter var names

* Append env var instead of replace

* Only set env var if not CI

* Improve function names and print output

* Simplify Linux package command

* Support continuation sequence

* Add note about Windows

* Remove dead doc file

* Tidy up version file and move to .env format

* Use Python venv for deps

* Only use venv on Mac

* Rename package script for all OS

* Add package and dist steps, and use common upload

* Remove version source

* Fixed vars not available

* Fixed python paths

* Use RuntimeError which is sufficient

* Remove dead code

* Add extras command for Linux

* Always install deps on Linux

* Move Python deps to CI

* More env bootstrapping, ugh

* Forgot to return!

* Simplify code

* Use shell

* Simplify command

* Skip sudo if no sudo

* Update package managers

* Fixed Fedora package name

* Tidy up commands

* Use newer upload artifact

* Strip don't trim!

* Check for version file and reduce log verbosity

* Remove CentOS 7.6

* Print more info about return code and log more to stderr

* Install certificate on macOS

* Better errors for no env var

* Implement Mac signing and notary

* Move dmgbuild load

* Simplify notary

* Rename dist files to same as dest

* Fixed paths for dist

* Move checked-in dist files to res (dist is meant to be a temp dir)

* Fixed Mac path in CMake

* Fixed dmg path

* Format Python

* Ignore import warnings and move function

* Fixed cmake paths

* Add missing env var secrets

* Remove extensions from GH upload

* Make deps.yml general purpose config

* Add cspell config

* Pass codesign ID

* Use new general config file

* Sign bundle on Mac

* Move imports to functions

* Escape chars in docs

* Fixed config key accessor

* Change module import order

* Move file to tmp dir in workflow dir

* Persist temp dir

* Add tmp dir to ignore

* Flush stdio before running process

* Trying quotes around env values

* Add codesigning certificate validation for Mac signing

* Revert "Trying quotes around env values"

This reverts commit 0dd741e8cd6fde21e69d4fb871e835a5f4fa1a23.

* Extract codesign verify

* Fixed version number

* Ignore .cache dir

* Fix macro name

* Package name with version number and arch

* Improve package function readability

* Change order of vars

* Testing upload to GDrive

* Add missing return code

* Use positional args and declare error

* Use machine instead of arch and remove build from filename

* Remove redundant build jobs

* Replace massively over-complicated `build_version.py` script

* Move version info to env module

* Use version info script

* Fixed: too many values to unpack

* Chmod version script

* Use shebang

* Don't check return code on Linux

* Fixed function name

* Convert to GitHub specific script

* Env vars must be after configure

* Fixed Windows env var command

* Remove && from deps command so it's not conditional

* Fixed position of set env

* Change order of env script

* Only upload when not draft

* Test

* Tweak config

* Fixed if condition

* Don't package in draft (Windows and Linux)
2024-06-24 09:36:30 +00:00
Nick Bolton
8f13ce8e7a
Combine GitHub workflows to reduce config duplication (#7352)
* First attempt merging CI test

* Remove older versions of Linux

* Blend Docker containers and GitHub runners

* Test older configure/build method for Windows

* Re-add old Windows workflow

* Use legacy CMake method for more distros

* Rename image to container

* Reduce config dupe

* Fixed logic for configure

* Use newer build command for Windows

* Move full container name back to matrix (yuk)

* Move GIT_COMMIT to common env

* Use more specific Windows runner name

* Fine-grained timeouts for Mac

* Fixed unit test path for Windows

* Rename CI workflow

* Beginning of macOS dist action

* Update ChangeLog

* More triggers for CI workflow

* Attempt to fix test path on Windows

* Move dist-macos action

* Add dir command for testing

* Remove `test-` job prefix

* Bump msbuild action and try modern cmake again

* Composite actions don't support defaults... grr

* Remove dir diag command

* Trying to use Choco again for VS dep

* Don't skip ninja

* Flush stdout

* Add cl to PATH

* Trying out ilammy/msvc-dev-cmd@v1

* Use @v3 checkout for older Linux

* Fixed comment typo

* Remove dead scripts

* Improve env var names

* Run strip from build dir

* Split out deps script to lib files

* Remove stub action

* Remove dist step for now
2024-06-19 17:48:18 +01:00
Nick Bolton
d4133d1110
Use C++20 and CMake presets (#7322)
* Create tasks.json

* Delete gui.pro

* Swallow any exceptions from stopDesktop

* Upgrade to C++20

* Update ChangeLog

* Remove old versions of Ubuntu

* Ignore VS Code workspace

* Restore original CodeQL job name

* Add problem matcher and suppress warnings from within old CMake lib

* Bump CMake min version to 3.5

* Remove useless cmake_minimum_required

* HACK: temp comment out failing code

* Bump Qt to 5.12.6

* Delete tasks.json

* Create CMakePresets.json

* Fixed Qt link error: The input line is too long.

* Fixed invalid call to map erase

* Fixed incorrect use of RegCreateKeyEx

* Add VS Code tasks.json for cmake build

* Store `desktop` in char buf before using it

* Generate compile_commands.json

* Restore indentation

* Revert "Restore indentation"

This reverts commit d9f495460f337c37e8a01d8853b317e949ea085a.

* Restore original indentation (for now)

* Create extensions.json
2024-01-11 00:26:39 +00:00
Kyle Bloom
3d621c6ee2
Build unified core or separate server and client (#7274)
* Only build unified core when specified

* Update changelog
2023-08-07 09:45:27 +01:00
Serhii Hadzhilov
8be2e89c81
fix: SYNERGY3-203 Synergy 1 business (#7157)
* SYNERGY3-203 Add link to helpdesk

* SYNERGY3-203 Add a new cmake option

* SYNERGY3-203 Validate business key

* SYNERGY3-203 Check license during start

* SYNERGY3-203 Update windows title

* SYNERGY3-203 Unify license errors

* SYNERGY3-203 Fix code smell

* SYNERGY3-203 Update Azure scripts

* SYNERGY3-203 Update GitHub workflows

* SYNERGY3-203 Add UT

* SYNERGY3-203 Add UT
2022-04-26 15:11:09 +03:00
Serhii Hadzhilov
4a30a9234b
SYNERGY-1307 Language reading on linux (#7114)
* SYNERGY-1307 Test implementation

* Update CMakeLists.txt

* SYNERGY-1307 Code cleanup

* SYNERGY-1307 Fix code smell

* SYNERGY-1307 C++11 style of initialisation

* Update ChangeLog

* Fix code smells

* SYNERGY-1307 Fix code smells

* Fix Ubuntu16 compilation

* SYNERGY-1307 Fix windows build

* SYNERGY-1307 Fix code smell

* SYNERGY-1307 Fix macOS build

* SYNERGY-1307 Fix Linux build

* SYNERGY-1307 Text for notification has been changed as requested

* SYNERGY-1307 Update notification text and fix union initialisation
2021-11-03 11:50:40 +02:00
Kyle Bloom
19cd184146
Add M1 workflow (#7098)
* Add m1 workflow

* Set shell envirnonment to arm64

* ChangeLog

* Change dmg name

* Change back to parameter passing

* Send to binaries server

* Remove pull and push triggers

* Add m1 to mac tests

* Set correct shell for m1 mac

* Remove 10.13 build for core

* Core build for macos

* Always generate version file

* Remove qt from core builds

* Exclude tests from core build

* move synergyd and coverage option

* Aws core builds to only build core

* Windows upload release folder

* Use static openssl for core builds

* Fix destination for pi core builds

* Only upload core builds with release

* Rename variable step

* Remove matrix

* Test windows build changes

* Remove unnecessary cmake option

* Remove test
2021-10-01 10:55:44 +03:00
Igor Sikachyna
fdb947e0af
SYNERGY-1032 - Add MacOS version check and disabl UserNotification library if needed (#7046)
* SYNERGY-1032 - Add MacOS version check and disabl UserNotification library if needed

* SYNERGY-1032 - Update changelog

* SYNERGY-1032 - Add debug message

* SYNERGY-1032 - Build for MacOS 10.15 on Azure

* SYNERGY-1032 - Build for MacOS 10.14 instead of 10.15
2021-07-02 12:40:27 +03:00
Igor Sikachyna
5843230169
SYNERGY-1032 - Use native notifications for secure input on MacOS (#7041)
* SYNERGY-1017 - Try usnig NSUserNotification

* SYNERGY-1032 - Use UNUserNotificationCenter instead of deprecated notifications

* SYNERGY-1032 - Update app delegate and add log after notification access

* SYNERGY-1032 - Try using deprecated notification

* SYNERGY-1032 - Add notifications to the platform dependant code

* SYNERGY-1032 - Check for development builds before asking permission for notifications

* SYNERGY-1032 - Remove old notification and secure input detection

* SYNERGY-1032 - Add permission request to the main app

* SYNERGY-1032 - Only show notifications on server

* SYNERGY-1032 - Request and show notification from main app

* SYNERGY-1032 - Remove logging from OSX helpers

* SYNERGY-1032 - Add UN notification for testing

* SYNERGY-1032 - Show notification once

* SYNERGY-1032 - Try replicating old flow

* SYNERGY-1032 - Reuse notification center

* SYNERGY-1032 - Send notification after granting permission

* SYNERGY-1032 - Update app delegate

* SYNERGY-1032 - Remove deprecated property

* SYNERGY-1032 - Add output for debugging

* SYNERGY-1032 - Try updating delegate

* SYNERGY-1032 - Print current bundle name

* SYNERGY-1032 - Add AppDelegate to the server

* SYNERGY-1032 - Move notification creation to synergy app

* SYNERGY-1032 - Update notification text

* SYNERGY-1032 - Fix QString conversion for notification

* SYNERGY-1032 - Move notification creation outside the handler

* SYNERGY-1032 - Remove debug notification, show notification with no delay

* SYNERGY-1032 - Show notification inside the completion handler

* SYNERGY-1032 - Remove timed notification trigger

* SYNERGY-1032 - Request permissions on synergy start

* SYNERGY-1032 - Remove unused includes

* SYNERGY-1032 - Update changelog

* SYNERGY-1032 - Add empty notification implementations for Windows and Linux

* SYNERGY-1032 - Removed temporary debug messages

* SYNERGY-1032 - Resolve code smell
2021-06-29 13:20:56 +03:00
SerhiiGadzhilov
6ce20f689a
Merge changes from V1.14.0 (#7032)
* SYNERGY-1007 Release candidate

* SYNERGY-1014 Update openSSL to 1.1.1k on Windows artefacts

* SYNERGY-1015 Remove SYNERGY_AUTOCONFIG fom cmake files

* SYNERGY-1015 Update ChangeLog.txt

* SYNERGY-1005 Add fedora 33 to 1.14.0

* SYNERGY-1021 Incorrect client place for the first connection

* Update ChangeLog

* Update build_version.py to select correct build number

* SYNERGY-1023 Typo in <displays> on the server configuration page

* SYNERGY-1028 New licenses for Chinese market (#7031)

* SYNERGY-1028 New china licenses

* Update ChangeLog

* SYNERGY-1024 Release 1.14.0

* Update Version.cmake

Co-authored-by: Igor Sikachyna <sikachynairl@gmail.com>
2021-06-09 11:23:09 +03:00
Kyle Bloom
54cb817de8
OpenSSL find package (#6952)
* Change cmake to use find_package for openssl

* Change cmake prefix paths

* Fix Qt prefix path

* Limit static to apple

* Re-add qt bin path

* Fix use of apple cmake variable

* Update ChangeLog

* Update CMake prefix path for mac and windows tests

* Fix windows test

* Seems to fix mac test

* Brew defined prefix paths

* Explicitly ensure all homebrew dependencies
2021-03-03 14:04:39 +03:00
Kyle Bloom
450c741cd6
SYNERGY-833 Add extra enterprise validation (#6951)
* SYNERGY-833 Add extra enterprise validation

* Update ChangeLog

* SYNERGY-833 Condense enterprise check
2021-02-19 12:33:17 +02:00
SerhiiGadzhilov
05ce7f37bc
SYNERGY-826 Add a new option SYNERGY_AUTOCONFIG (#6949)
* SYNERGY-826 Add a new option SYNERGY_AUTOCONFIG

* Update ChangeLog

* Update Version.cmake

* SYNERGY-826 Return stage back
2021-02-15 13:44:46 +02:00
Kyle Bloom
70d67040b7
Revert openssl changes (#6926)
* Revert "Core builds (#6908)"

This reverts commit 4c7456d3cc.

* Re-add minor gitignore changes

* Re-add buildCoreWindows script

* Re-add synergy no legacy flag

* Minor format fix

* Revert openssl checksums

* Remove enhancement

* Install python-pip for gcovr

* Fix mixed tabs and spaces
2021-01-26 13:36:39 +02:00
Kyle Bloom
4c7456d3cc
Core builds (#6908)
* Fix formatting in CMakeLists

* Add SYNERGY_NO_LEGACY environment flag

* Add build script for Windows

* Find_package for OpenSSL

* Move build scrits to scripts folder

* Add macOS and Linux build scripts

* Add environment variable

* Compile core with static openssl

* Default builds to Release

* Streamline OpenSSL dependancies

* Remove openssl from repo

* Change actions to test actions

* Add zip creation to build scripts

* Re-add original tests

* Add action value output

* Build per platform on release

* Fix path for core build

* Temporarily keep artifacts

* Set execute flag

* Zip before archiving

* Static build only for windows

* Remove -m flag from zip

* Change zip to tar

* Fix workflow name

* Add hints to openssl on mac

* Fix zip files

* Fix verbose flag on tar

* Remove path on download artifacts

* Try an array of build targets

* Extract action binaries

* Install full openssl

* Add 32bit openssl

* Modify installer to use the openssl.exe from ext

* Install OpenSSL full for windows release build

* Add openssl installation during windows CI

* Modify changelog

* Add enhancments section

* Remove bottom line in changelog
2021-01-20 14:47:56 +00:00
SerhiiGadzhilov
a1640d0b32
SYNERGY-400 Make build for every merge to master (#6885)
* SYNERGY-400 Generate build number and create release with tag

* SYNERGY-400 Changes for Azure Piplines

* Update ChangeLog
2020-12-24 14:22:25 +02:00
Michał Górny
f5934507c3
Check for dns_sd.h only when building GUI (#6872)
* Check for dns_sd.h only when building GUI

The <dns_sd.h> header is only used in the synergy GUI component.  Update
the CMake check to be done only if SYNERGY_BUILD_LEGACY_GUI is enabled.
This fixes build failures when GUI is not being built and <dns_sd.h>
is not installed.

While at it, fix indentation around the added check to match the rest
of the file and avoid being misleading.

* Update ChangeLog

Co-authored-by: Serhii Hadzhilov <serhii-external@symless.com>
Co-authored-by: SerhiiGadzhilov <71632867+SerhiiGadzhilov@users.noreply.github.com>
2020-12-14 20:42:12 +02:00
SerhiiGadzhilov
43ba381496
SYNERGY-316 Requires google test even when tests are disabled with BUI… (#6825)
* SYNERGY-316 Requires googletest even when tests are disabled with BUILD_TESTS=OFF

* Update ChangeLog
2020-11-03 10:41:12 +02:00
SerhiiGadzhilov
26f2f2c283
SYNERGY-317 Configure requires dns_sd.h for enteprise (#6819) 2020-10-29 10:26:27 +02:00
Jamie Newbon
c5b417d7c8 #6750 Got coverage working, removed clang tidy as that is automatic 2020-08-25 15:18:35 +01:00
Jamie Newbon
a5079444e4 #6750 changed clang tidy from separate command to internal 2020-08-24 15:26:01 +01:00
Jamie Newbon
87720c127b #6750 Added coverage and clang tidy reports 2020-08-24 14:12:32 +01:00
Aaron Hinojosa
645ecc43e4 Update git submodules during build
Making submodule init/update transparent to the end user.

This change prevents CMake builds from failing if submodules have not been
installed, e.g., Google Test.
2020-07-27 17:32:47 -05:00
Pieterjan Camerlynck
16bccc2ed0 #6725 allow building of synergy without tests
Signed-off-by: Pieterjan Camerlynck <pieterjan.camerlynck@gmail.com>
Signed-off-by: Jamie Newbon <jamie@symless.com>
2020-07-14 11:44:17 +01:00
Jnewbon
be6fc46be6
Merge pull request #6644 from sim590/dns_sd_cmake_check
cmake: check for dns_sd header file
2020-07-09 10:56:24 +01:00
Jamie Newbon
83d1588666 #6661 Updated google tests to 1.8.1 2020-07-01 14:12:44 +01:00
Yuri
e4a2b0f95c
FreeBSD compatibility patch 2020-03-22 10:03:09 -07:00
Simon Désaulniers
0b3068b534 cmake: check for dns_sd header file 2020-03-17 13:52:35 -04:00
Jamie Newbon
8ee5475447 Removed openssl@1.1 due to problems supporting multiple macOS versions 2019-11-12 17:10:20 +00:00
Jamie Newbon
ebbdee5c4e Reverting 9005fe3c, 4d9c196c and f0d7b669. Which reverts static SSL libs 2019-11-04 19:30:22 +00:00
Jamie Newbon
4d9c196cae #6556 Fixed cmakes for static SSL linking 2019-11-01 14:53:17 +00:00
Jnewbon
f69c9cc1cc
Merge pull request #6578 from symless/v1-issue-6556-missing-function
Changed ssl libs to static linking
2019-10-30 11:41:27 +00:00
Jamie Newbon
c62ed8494f removed quotes from windows version variables 2019-10-24 14:19:20 +01:00
Jamie Newbon
9d514ef876 Updated installer package, made QT path configurable, added redist to msi 2019-10-24 13:49:50 +01:00
Jamie Newbon
f0d7b66958 #6556 Changed ssl libs to static linking 2019-10-14 13:41:23 +01:00
Jnewbon
3a05f732fc
#6390 Updated OpenSSL For better security with TLS1.3 2019-08-02 13:11:47 +01:00
Jnewbon
8c0101405a
#6497 Fixed problem with windows version variables not working in cmd 2019-05-09 17:52:59 +01:00
Jnewbon
9bccfb89cc
#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
2019-04-26 17:17:06 +01:00
Steve Williams
57a9a0fe27 #6288 Drop curl requirement 2018-07-08 16:51:49 +01:00
Sarah Hebert
d95af84528 #6301 Fix use of ENV{} 2018-07-08 16:51:46 +01:00
Sarah Hebert
11be6ef3d4 #6301 Default to Enterprise build if env variable is set 2018-07-08 16:51:44 +01:00
Nick Bolton
eebd9b1eb2 #6151 Change CMake project name to synergy-core 2018-07-08 16:51:42 +01:00
Andrew Nelless
b396b1092d #6301 Disable activation for Enterprise builds 2018-07-08 16:51:34 +01:00
Steve Williams
5015f9da11 Revert "#6288 remove window ArchInternet include"
This reverts commit f07b765a24.
2018-05-14 10:11:28 +01:00
Steve Williams
e170bd87a8 #6288 Drop curl requirement 2018-05-14 09:57:26 +01:00
Andrew Nelless
c20346971d Move version number handling out of main CMake file 2017-05-27 14:01:49 +01:00
Andrew Nelless
43948f7871 Merge pull request #6048 , fixes #5844
Fix icon paths on Linux
2017-05-23 10:58:28 +01:00
Andrew Nelless
7c89fdb6eb Update CMakeLists.txt 2017-05-23 02:37:03 +01:00
Andrew Nelless
7f48685411 Update CMakeLists.txt 2017-05-23 02:32:45 +01:00