* Add missing atom ctor init
* Init members with `None`
* Use in-class init and delcare getter inside if init
* Temp revert of changes ahead of unit test repair
* Move IPC header to shared, restore X clipboard test, simplify test cmake, new X clipboard unit test
* Suppress sonar for undefs
* Remove base dir include
* Revert "Temp revert of changes ahead of unit test repair"
This reverts commit 8f84b6ea5d5828f1be1362de3809279bcacb8cc8.
* Use new accessor
* Use default dtor
* Beef up to 32 core
* Use enum class
* Make IPC protocol headers const at all levels
* Use enum class and const char for better type safety
* Use unique_ptr for m_clipboard
* Use `-j` instead of `-j8` to utilize full parallelism
* Increase thread count for sonar-scanner
* Use 32 threads
* Use in-class init for IpcClientProxy members
* Use const instead of #define
* Remove ctor member inits
* Use unique_ptr on win
* Implement temp bin dir for windows with more robust post-build copy
* Fixed missing iostream
* Add warning about copy errors
* Only run clean-gcda on Linux
* Use in-class init for IPC mutex
* Do no-op on Windows
* Hide clean-gcda task
* Move flakey test to integtests
* Delete dead code
* Test
* Temp disable post_config_all
* Disable post config step
* Revert "Disable post config step"
This reverts commit 2f956a7714ba9bedacd4b39d4ae00940c3d565d6.
* Revert "Temp disable post_config_all"
This reverts commit b44ed72e44f838bfe1309f6e9672d2f1c6f21b75.
* Restore -j8
* Simplify error handling
* Use const for test port
* Remove python check
* Update changelog
* Fixed order
* Fixed bad issue number
* Fixed bin copy source path
* Remove redundant except
* Move QApplication out of main to reduce memory impact when running individual tests
* Add --valgrind arg and colorize output when command returns non-zero exit code
* Fixed: colorama not always available
* Test multiple Qt tests
* Fixed: Windows Qt test failing due to missing QCoreApplication
* Simplify fake args for Qt
* Use --ci-env arg
* Create Valgrind analysis workflow
* Rename vars for fake args
* Parse and output valgrind summary
* Add build mode to comment
* Use GITHUB_OUTPUT to output summary
* Merge valgrind comment
* Improve comment
* Use `tee` instead of `--log-file` to also print stdout
* Improve comment about debug and release
* Simplify output writing in parse step
* Improve step name
* Correct comment about summaries
* Remove commented out code
* Better var name
* Missing copyright
* Rename global to shared
* Remove space
* Revert change to ConfigTests.cpp
* Test: allocLockCursorToScreenInfo_withState_setsState
* Merge remote-tracking branch 'origin/master' into S1-1717-sonarcloud-issues
* Remove header wrappers for gmock/gtest
* Convenience wrapper script for tests
* Use `std::copy` instead of `strcpy`
* Use `std::ranges::copy` instead of `stdcpy`
* Delete dead code
* Add guitests VS Code config and test wrapper
* Revert "Delete dead code"
This reverts commit aa40f5cd35a22b4b69acfd1876aceea053088060.
* Build guitests with CMake
* Run all tests
* Don't use --gtest_filter for Qt tests
* Undo skip for GUI tests
* Coverage for `IpcClient::sendCommand`
* Remove provider and proxy
* Use lamda for StreamProvider to reduce boilerplate
* Restore version checker tests
* Remove activation souces
* Tasks for current/all tests
* Change command for tasks
* Mock QNetworkAccessManager
* Create core app to satisfy Qt assertations
* Use `std::copy` instead of `std::ranges::copy`
* Remove integtests
* Merge guitests into unittests
* Use std::string::length
* Remove include (resolves to root)
* Fix memory leaks
* Disable sigsegv tests
* Fixed formatting
* Remove guitests from CI
* New MainWindowTests
* Passing test for MainWindowTests
* Use alternative to strlen in MainWindow::checkSecureSocket
* Passing test for Log::print
* Fixed dtor call order
* Fixed var name typo
* Use proxy instead of `#define protected public`
* Add args test for log
* Add license ctor
* Fixed log test for release
* Add error log test
* Init qt with -platform offscreen
* Back-out initQt function
* Use QT_QPA_PLATFORM
* Try QT_QPA_PLATFORM=offscreen
* Use more readable env node
* Set QT_QPA_PLATFORM in CI and CodeQL
* Remove env not needed
* Modernize Log::print
* Calculate the length of the format string fmt during the initial scan loop
* More direct and efficient alterative to `strlen`
* Fixed major maint issues in AppConfig
* New clang and cmake rules
* Set `max_pargs_hwrap` to 4
* Undo clang format for now
* Fix missing `Setting::`
* Fixed missing `m_S` on Windows
* Re-add accidental dep resolution (fix later)
* Fixed missing buffer position increment
* Turn on errors
* Fixed tests and improve error message
* Fixed segfault on log refactor
* Extract log time to function
* Copyright date
* Update ChangeLog
* Remove Core5Compat
* Remove hack
* Update ChangeLog
* Revert "Remove hack"
This reverts commit dda3ad05818d346fdfcbb41944b9e731a4b547c0.
* Set `add_compile_definitions` for Qt
* Revert "Set `add_compile_definitions` for Qt"
This reverts commit 0258d2d226a76081068f4e565855f37993953be5.
* Use arm64_monterey bottle
* Revert "Use arm64_monterey bottle"
This reverts commit a46d743dc6883c925e2328b9628231189cb34367.
* Use aqt to install Qt on Mac
* Append env var instead of overwrite
* Fixed filename
* Use GITHUB_PATH
* Restore original GITHUB_ENV logic
* Use newer cache action
* Update ChangeLog
* Add comment about EXC_BAD_ACCESS
* Optional certificate install
* Improve log output
* Move team ID arg
* Change position of arg
* Set PATH in .zshrc and use bash command substitution
* Simplified macdeployqt find logic
* Formatting
* Minor tweaks to Qt cmake config
* Resolve framework path with install_name_tool
* Update ChangeLog
* Use Qt 6
* Fixed some Qt6 deps
* Fixed minor compile issues for Qt6
* Drop Debian 11 support (no Qt6 lib)
* Move Debian to top
* Delete expensive to maintain code that yeilds low UX gain
* Unpack all values
* Use %lld instead of %u
* Minor UI improvements
* Add deps for Fedora, OpenSUSE, and Arch
* Fixed CMake lint issue
* Use package name from build.opensuse.org
* Used `zypper search` to find correct package names
* Debian 12 ARM64 target
* Fixed comments
* Don't check for server name when exiting because of args
* Exit with success when using `--version`, `--help`, etc
* Test Linux installation
* Add Windows ARM builder
* Extract magic string
* Use proper arch name
* Swap arch order
* Fixed test
* Bootstrap Windows ARM runner
* Install winget
* Conditionally install winget
* Winget take 2
* Use shell: pwsh
* Try `powershell`
* Try cmd to install winget
* Only build distro once
* Use enum for clarity
* Remove shell
* Back out Windows ARM testing
* Attempt arch matrix
* Add Fedora arm64
* Label all -amd64
* Special case for zypper
* Fixed bad var name on Windows
* Add missing /bin ignore
* Disable GPG check on OpenSUSE
* Fixed typo
* Update ChangeLog
* Simplify options
* Use more sensible edition logic
* Use set instead of option for string
* Improve macro for product name
* Add tests launch config
* Restore unregistered state
* Reorganize cases for title and improve function name
* Code coverage on by default
* Fixed copyright
* Improve code coverage and test readability
* Separate build-all and build-coverage
* Back out coverage on by default
* Fixed bad var in cmake
* More verbose logging for coverage
* Restore tasks
* Restore preLaunchTask
* Use default comparitor
* Move temp files to temp dir
* Add tasks for tests
* Support for wstring
* Upgrade sonar-scanner to 6 on Debian 12
* Use modern pip install
* Install python for sonarcloud
* Use Ubuntu and install deps
* Fixed sonar-scanner URL
* Fix exported dir
* Persist build dir
* Don't use venv for pip install gcovr
* Fixed another path
* Update actions/checkout to v4 for SonarCloud analysis workflow
* Add coverage task
* Improve coverage for SerialKeyEdition.cpp
* Enable licensing for builds
* Fixed invalid macro names, missing arguments, etc
* Fixed more copyright
* Fixed incorrect use of "enterprise"
* Fixed incorrect use of "business"
* Experiment with environment
* Make package prefix variable
* Add environment matrix to all OS
* Improve job names
* Make job names easier to read
* Roll back environment matrix (too much noise)
* Fixed: default should override required
* Refactor CI with vars
* Fixed arg for env.get_env
* Lint script with CLang format
* Use `-i` for `clang-format` and add more logging for lint scripts
* Apply LLVM CLang formatting
* Fixed comment
* Update ChangeLog
* Fixed bad return code logic
* Improve output for linters
* Fixed re-used var in clang lint
* Fixed include order for tests and use `#if 0` instead of commenting out code
* Use full Clang format dump
* Dump Ubuntu Clang format
* Dump Clang format from Debian
* Dumped from: clang-format version 18.1.8
* Revert "Dumped from: clang-format version 18.1.8"
This reverts commit b9bbda2995bb0b4b65baf14afebb0361ec64e644.
* Remove BasedOnStyle
* Restore base Clang format file
* Use clang-format from pip
* Apply Clang format 18 style
* Add clang_format deps
* Fixed include order issues and *some* accidental includes
* Reorganize CMake Packaging module
* Match if statements to function order
* Cleanup root, res, and doc dirs
* Move deps to requirements.txt file
* Reorganize and format CMake files
* Rename changelog lint
* Add reccomended extension
* Workflow to lint CMake files
* Move CMake lint to script
* Try lighter dep
* Use venv
* Add --format arg
* Format all CMake files
* Convert bash script to Python
* Set CMake line ending format
* Restore formatting
* Add pyyaml dep
* Remove unused arg
* Rename config file
* Remove comment
* Repair copyrights (broken by defualt cmake-format)
* Restore 3rd party copyright
* Break up libs config into smaller macros
* Better macro name
* Load config after venv
* Make intentional noop clearer
* Only use upload step if required (make skip clearer)
* Use CPack for deb and rpm packaging
* Add upload step for Linux
* Remove cpack dep, doesn't exist
* Roll back presets version
* Fixed distro like match
* Update ChangeLog
* Legacy checkout for some distros
* All distros support v4
* Trying out newer Linux distros
* Install Git on Docker images
* Install without actions (not available before checkout)
* Delete useless action
* Install Python
* Support for Arch and OpenSUSE
* Add Arch and OpenSUSE to deps
* Name steps
* Full OpenSUSE names
* Mark Git dir safe
* Add pkgconf
* Legacy CMake for Debian 11
* Add OpenSSL to OpenSUSE
* Drop OpenSUSE Leap (no C++20 support)
* Skip packaging for Arch and OpenSUSE (for now)
* Shorten Arch/OpenSUSE names
* Clearer step name
* SImpler bootstrap
* Shell not needed
* Update apt
* Don't check return code
* Simplify python deps commands
* Add STGZ/.sh package type
* Prevent input prompt
* Only config git safe dir when needed
* Try cache v4
* Safe dir for Ubuntu
* Safe dir for Arch
* All Docker images seem to need safe dir config
* Refactor env var getters
* Make Ubuntu build extra packages
* Condense bootstep to single step
* Fixed var name
* Fixed bootstrap logic
* Simplify logic for upload condition (Windows and macOS)
* Make package/upload condition easier to understand
* Add Manjaro
* Generic names for Linux .tar.gz and .sh packages
* Add Manjaro deps
* Swap macOS matrix entries
* Add Red Hat UBI
* Remove RHEL subscription manager
* Throw on unsupported package distro
* Conditionally install pip and venv
* Remove extra pip arg
* Add config for RHEL
* Install EPEL for RHEL
* Back-out RHEL as EPEL requires subscription
* Restore Python deps logic
* Fixed bug: Packacking run twice
* Testing arm32v7 and arm64v8
* Revert "Testing arm32v7 and arm64v8"
This reverts commit cb3caf188d2b79ed083a62fc091de295f9889f3d.
* Re-add icon and shortcut file for Linux to package
* Support OpenSUSE RPM build
* Check return code
* Add `rpm-build` for OpenSUSE
* Reorg packages
* Remove busybox-which
* Add --non-interactive
* Move --non-interactive to correct position
* Experiment with makepkg
* Check and print package commands
* Make distro version optional
* Use 8 cores to build
* Default to distro name only
* Fixed bad PKGBUILD filename
* Use 4-part version for Arch
* Remove comma from conflicts
* Use .tar.gz from cwd
* Generate checksum for Arch
* Fixed file extension
* Use shell to print output
* Don't use shell
* Gaurd against bad cmd_utils.run
* Fixed bad import
* Use list command
* Fixed unable to run list commands
* Use source file name
* Simplify PKGBUILD to use make install
* Change install prefix
* Use DESTDIR
* Copy .desktop and .png to build dir
* Restore original `install(FILES...`
* Improving comments
* Fixed: makepkg runs from `src` by default
* Move error after command print
* Remove shell arg
* Package as a user instead of root (makepkg can't run as root)
* Fixed codesign runs in shell
* Allow list commands in shell on windows
* Don't use sudo on arch
* Install sudo on Arch
* Fixed typo
* Fix ownership of build directory for package user
* Improve example .env
* Change to depend on libstdc++6
* Add TODO
* Fixed Fedora version
* Remove libstdc++ deps (names vary between distros)
* Roll back to Fedora 40 and 39
* Improve comment
* Remove unneccesary default
* 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
* Only install Python deps with deps script
* Remove hard-coded Qt version in CI
* Add example .env
* Improve comments in .env file
* Simplify config reader and Choco CI config
* Actually return the config value
* Move deps before Qt version env call
* Remove `self.`
* Move venv ensure to main
* Fixed arg
* Move config import to function
* Move ensure_module to function
* Simplify over-complicated `Version.cmake`
* Move code to `github` module
* Use `symless/next-version-action`
* Make CMake version file even simpler
* Set version from tag
* Create release when master or release branch
* Don't run CI on master push, only release
* Fixed bac macro
* Use new version values
* Handle empty version env var
* Also strip version file value
* Remove quotes
* Add @master to action
* Read version from file
* Simplify version file read
* Fixed typo in env var
* Remove unused var
* Delete legacy build number action
* Fixed env var
* Version file read shouldn't be needed
* Remove weird and unnecessary include path
* Update ChangeLog
* Remove unused config value
* Better name for changelog check
* Delete broken Flatpak CI
* Run stale issue cron at midnight
* Update ChangeLog
* Add version input for manual run
* Print next version
* Fetch all tags
* Use more idiomatic approach
* Set to pre-release when master
* Remove unnecessary `commitish`
* Fixed wrong ID
* More specific IDs
* Reduce config needed for upload
* Only /release can be non-pre-release
* More discreet package path for gdrive
* Try without setting path
* Remove seemly unused step
* Better name for Qt version step
* Fixed bad var ref
* Better name for package dir
* Fixed bad input name
* Add missing shell
* Workflow to test upload action
* Remove fetch tags
* Use bash to cut version
* Remove name and make conditional
* Replace deprecated set-output
* Fixed env var name
* Missing dir sep char
* Add comment to test workflow
* Improve input descriptions
* Replace deprecated set-output
* 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)
* 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
* Use deps script to make life easier for contribs
* Make readme more developer friendly
* YAML file to describe Linux deps
* Silent fail for yaml module (Python 3.6+)
* Move Qt install to deps script
* Update readme to add Windows command
* Fixed Linux package name
* Simplify env vars for workflow
* Exclude scripts from SonarCloud
* Move all deps config to .yml file
* Fixed exclude glob
* Simplify quickstart
* Fixed macOS deps config key name
* Fixed bug in Linux config read
* Use backslash for consistency
* Change SonarCloud path to /build/
* Fixed dep name
* Exclude scripts in CMake coverage
* Move script coverage exclusion to online config
* Use try/except instead of checking return value
* Fixed comment typo
* Script to install deps (Windows only for now)
* Set runner temp dir for choco
* Add missing os import
* Modify for CI
* Update CL
* Improve logging
* Update workflow to install deps via script
* Explain 3.1.1 version lock
* Convenience script to install daemon
* Use -p when re-launching with runas to keep window open
* Align new script with PEP 8
* Add more args for flexibility
* Add task to reinstall Windows daemon
* Fixed mistake in continue message
* Close task window after running script
* Reset error state before calling Process32Next
* Update CL
* Increase Windows CI timeout
* Bump timeout again due to choco
* 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