Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
182 commits
Select commit Hold shift + click to select a range
ffaf2a8
Add French translation (untested)
mmuman Nov 20, 2018
4a9e58b
Generate Qt 5.12.1+ compatible qt_Qt5Keychain.pri
Ri0n Mar 28, 2019
e711862
Merge pull request #142 from Ri0n/patch-1
frankosterfeld Mar 28, 2019
89db0fc
Convert QStringLiteral to QLatin1String to keep compatibility with Qt4
Apr 28, 2019
95c6021
Don't quote LIBS arguments
vadi2 Sep 10, 2019
385f762
Merge pull request #129 from mmuman/translation-fr
frankosterfeld Oct 22, 2019
a9c7075
Merge pull request #149 from Mudlet/fix-macos-compile
frankosterfeld Oct 22, 2019
67ecc45
Merge pull request #144 from eclipseo/convert_QStringLiteral_to_QLati…
frankosterfeld Oct 22, 2019
fde6ea4
Update changelog for 0.10.0
frankosterfeld Dec 17, 2019
6fe83cf
Set version to 0.10.0
frankosterfeld Dec 17, 2019
7253cce
Bump version in master to 0.10.90
frankosterfeld Dec 17, 2019
0f7c79b
Update and complete French translation
david-geiger Dec 22, 2019
85b9819
Merge pull request #156 from david-geiger/master
frankosterfeld Dec 22, 2019
4c435a7
Add Russian translation
kefir500 Dec 25, 2019
c553ec8
Merge pull request #158 from kefir500/master
frankosterfeld Dec 25, 2019
b548f92
Add .ts files to CMakeLists
frankosterfeld Dec 25, 2019
b16b442
Fix unused parameter warnings
kefir500 Jan 5, 2020
cbc626e
build: KEYCHAIN_DBUS
mmuman Nov 20, 2018
2f53517
Add Haiku support
mmuman Nov 17, 2018
3c97ce3
Don't use absolute path to frameworks
TheOneRing Jan 24, 2020
e741088
build: do not expose libsecret dependency
jtojnar Oct 28, 2019
db4543c
reference correct filename in CMake file for iOS backend
j-schultz Mar 24, 2020
ebbfeba
Add "d" suffix to libraries in Debug configuration
david-antiteum Jul 4, 2020
035c4aa
Only set prefix in Windows
david-antiteum Jul 4, 2020
775f03c
Fix: Windows cross build
mhoeher Sep 5, 2020
4968946
CMake: Update ECM
frankosterfeld Sep 8, 2020
387aacc
Update changelog for 0.11.0
frankosterfeld Sep 8, 2020
ee94ca3
Set version to 0.11.0
frankosterfeld Sep 8, 2020
ba46d29
Bump version to 0.11.90
frankosterfeld Sep 8, 2020
d63e7ad
Fix translations installation directory
KitsuneRal Apr 10, 2020
c7e5a6f
Allow overriding install include path for Haiku
mmuman Feb 3, 2020
ec30114
Fix translations installation directory
KitsuneRal Apr 10, 2020
df5844e
Allow overriding install include path for Haiku
mmuman Feb 3, 2020
eebc76c
Update changelog for 0.11.1
frankosterfeld Sep 8, 2020
6743abd
Bump version to 0.11.1
frankosterfeld Sep 8, 2020
676aa1d
Merge branch '0.11'
frankosterfeld Sep 8, 2020
81c11f8
Change Qt5 find to components and required if Qt4 is not selected
aaron-bray Sep 22, 2020
f39305c
Increase cmake required version to 3.3
dfaure Nov 27, 2020
5c1f008
*.cmake.in: Make sure find_dependency() is defined
KitsuneRal Dec 7, 2020
1a56743
Do not use -Wall on MSVC
dangelog Dec 11, 2020
6680cf2
Windows: Fix compiler warnings
frankosterfeld Dec 14, 2020
c8b8cfe
Update macOS naming
frankosterfeld Dec 15, 2020
ba6a75c
Store encrypted passwords on Android
hasselmm Aug 10, 2016
c39bb91
qt5keychain.pri: Add Android support
frankosterfeld Dec 16, 2020
f2071cc
Android: Let the system choose the cipher provider
frankosterfeld Dec 16, 2020
6f438e2
Fix typos
frankosterfeld Dec 16, 2020
3d244ef
ReadMe: Mention libsecret, iOS and Android.
frankosterfeld Dec 16, 2020
bb36d41
Add Qt 6 support, drop Qt 4
frankosterfeld Dec 16, 2020
15a5d01
Require C++11
frankosterfeld Dec 16, 2020
8726331
Sprinkle some mild C++11 on the interface
frankosterfeld Dec 16, 2020
74e075c
Readme: Updates and fixes
frankosterfeld Dec 16, 2020
815fe61
Prepare 0.12 release
frankosterfeld Dec 16, 2020
cd028d3
Bump version
frankosterfeld Dec 16, 2020
d85acea
Unify macOS and iOS implementations
frankosterfeld Dec 22, 2020
6983b1b
Fix license file
frankosterfeld Jan 18, 2021
c44f3a7
Explicitly require Qt 5 in .pri file
frankosterfeld Jan 18, 2021
d10b2bc
qtkeychain.pri: Do not suggest this is Qt 5-only
frankosterfeld Jan 18, 2021
7ae399d
Add LIBSECRET_LIBRARY_DIRS to LINK_DIRECTORIES
TheOneRing Jan 28, 2021
89c5ed2
QMake: Add missing KEYCHAIN_DBUS define
frankosterfeld Feb 2, 2021
ae1f9a4
Fix QtKeyChainConfig when building against Qt6
nicolasfella Feb 5, 2021
13f3b40
cmake: Add project(... LANGUAGES CXX)
krf Feb 2, 2021
9a22739
Minor: Add missing override keywords
krf Feb 2, 2021
a1aef5b
Linux: Require libsecret if not explicitly disabled
frankosterfeld Feb 23, 2021
3610841
Don't build test application by default
frankosterfeld Feb 23, 2021
baa895f
libsecret: remove debug leftovers
frankosterfeld Feb 25, 2021
92b49f7
Make QtAndroidExtras dependency private
nicolasfella Mar 24, 2021
15c86d8
CMakeLists: fix macOS Universal builds
KitsuneRal Feb 26, 2021
c729d0b
Fix QMake build for macOS and iOS
frankosterfeld Mar 31, 2021
b3a2ec7
Fix CMake failure with BUILD_TRANSLATIONS=NO
KitsuneRal Apr 2, 2021
70a567a
Add conventional name for exported target
nicolasfella Apr 14, 2021
28b2e3d
Don't find QtDBus on Android
nicolasfella May 26, 2021
f6705f3
Replace NULL and Q_NULLPTR by nullptr
frankosterfeld Jun 24, 2021
196482d
Add missing "return true" like in similar methods, caught by -Werror=…
dfaure Oct 2, 2021
d6fcc5c
Raise the minimum CMake version to match the Qt 6 one
krop Oct 4, 2021
a9143fc
.gitignore: Ignore build folders
frankosterfeld Oct 5, 2021
450e7fd
Rename project to remove Qt 5 only suggestion
NadimAsad May 10, 2021
26006c7
Fixed policy CMP0042: @rpath setting on mac os
akallabeth May 26, 2021
7359df9
Fix: Use CSRelease on Apple Platforms
mhoeher Apr 6, 2021
75aaf2c
Fix warnings about missing override
frankosterfeld Oct 5, 2021
a9ee15f
use GNUInstallDirs module included in CMake
Be-ing Aug 15, 2021
50d5b26
Set version to 0.13.0
frankosterfeld Oct 14, 2021
5d87cd2
Update changelog for 0.13.0
frankosterfeld Nov 7, 2021
5018e8c
Bump version to 0.13.99
frankosterfeld Nov 7, 2021
99425dd
KWallet: Fix deleting entries
frankosterfeld Nov 8, 2021
bb512c8
KWallet: Fix deleting entries
frankosterfeld Nov 8, 2021
f59ac26
Prepare 0.13.1 release
frankosterfeld Nov 8, 2021
bcacc13
Merge branch '0.13'
frankosterfeld Nov 8, 2021
43be122
CMake: replace QTKEYCHAIN_STATIC with standard BUILD_SHARED_LIBS
Be-ing Nov 11, 2021
61e51d3
CMake: add deprecation warning for QTKEYCHAIN_STATIC
Be-ing Nov 12, 2021
84f786c
CMake: replace QTKEYCHAIN_STATIC with standard BUILD_SHARED_LIBS
Be-ing Nov 11, 2021
301837d
CMake: add deprecation warning for QTKEYCHAIN_STATIC
Be-ing Nov 12, 2021
c236f92
Prepare 0.13.2
frankosterfeld Nov 18, 2021
a9a8264
Merge branch '0.13'
frankosterfeld Nov 18, 2021
4dea5e3
Added option to compile translations into library.
akallabeth Apr 9, 2020
e5eeb17
Define a poper exported CMake target instead of introducing an alias.
daschuer Jan 25, 2022
9e39435
Revert "Define a poper exported CMake target instead of introducing a…
daschuer May 8, 2022
ef13bef
Only create Qt5Keychain::Qt5Keychain/Qt6Keychain::Qt6Keychain if cmak…
daschuer May 8, 2022
cd4d732
call check_required_compnents for a proper feedback in cmake logs
daschuer May 8, 2022
67fb08e
Update copied ECM files
vkrause Jul 1, 2022
f197cdb
Update deprecated annotations
zneix Jun 26, 2022
97e01b4
Add Qt6 android support
freedbrt Jul 22, 2021
d174ff8
Add QtQuick client example
freedbrt Jul 22, 2021
86ef246
Update .gitignore, and fix TestApp compilation
freedbrt Oct 5, 2021
8506d57
Remove AndroidExtras CMakeLists.txt
freedbrt Sep 14, 2022
c6f0b66
Compile with Qt 6.4
vkrause Oct 28, 2022
841f31c
.gitignore ignore compile_commands.json
nmariusp Jan 30, 2023
f6247ff
Fix the deploy issue from windeployqt by changing target name.
Ledjlale Dec 16, 2022
ece1f1e
Revert "Fix the deploy issue from windeployqt by changing target name."
nicolasfella Feb 24, 2023
d9a724c
Added Dutch translation
Vistaus Mar 6, 2023
06195ac
Fix potential freezing with Apple keychain
claucambra Feb 9, 2023
bc2ff12
Add apple keychain interface between obj-c and qt
claucambra Feb 23, 2023
bccf136
Add ability for AppleKeychainInterface to handle task error notificat…
claucambra Feb 23, 2023
ad753ec
Handle read task finished notifications in AppleKeychainInterface
claucambra Feb 23, 2023
67478a5
Make interface object self release when notification is received
claucambra Feb 23, 2023
e2fb2fe
Add StartReadPassword function that uses new notification system
claucambra Feb 23, 2023
837ad76
Add StartWritePassword function that uses new notification system
claucambra Feb 23, 2023
284f75b
Add StartDeletePassword function that uses new notification system
claucambra Feb 23, 2023
1ba0cfd
Guard against null job pointers
claucambra Feb 23, 2023
2ee4cdb
Ensure that an AppleKeychainInterface does not respond to all keychai…
claucambra Feb 23, 2023
3fd06f2
Emit all apple keychain task complete notifications on main queue
claucambra Feb 23, 2023
41f195e
Fix testclient on Apple devices
claucambra Feb 28, 2023
f5cdf33
Create NSData with password data from direct byte pointer rather than…
claucambra Feb 28, 2023
8485316
Remove use of notification center in Apple Keychain, use direct inter…
claucambra Feb 28, 2023
8bbaa6d
Add API to check whether a secure backend is available at all
vkrause Apr 1, 2023
3503f6a
Android: Do not crash when storing new password (Qt 6)
frankosterfeld May 11, 2023
25d6d2c
Android: Fix JNI signature for deletion
frankosterfeld May 12, 2023
30571f8
Update Changelog for 0.14.0
frankosterfeld May 12, 2023
e63da28
Update version to 0.14.0
frankosterfeld May 12, 2023
96d2f84
Bump version to 0.14.99
frankosterfeld May 12, 2023
2095295
Protect against creating the QtKeychain::QtKeychain alias target twice
vkrause May 26, 2023
269eacf
Export QKeychain::isAvailable() to make it usable in a shared build
vkrause May 26, 2023
3d8968e
Merge remote-tracking branch 'origin/0.14'
frankosterfeld Jun 1, 2023
69f993c
Prepare 0.14.1
frankosterfeld Jun 1, 2023
774343d
Merge remote-tracking branch 'origin/0.14'
frankosterfeld Jun 1, 2023
c3ce62c
Add support for KWallet 6
vkrause Jun 29, 2023
01a900b
Merge remote-tracking branch 'origin/0.14'
frankosterfeld Jul 4, 2023
22bac41
Move headers (and cpp files) to a qtkeychain subdir
dfaure-kdab Dec 13, 2023
8eac988
Prepare 0.14.2
frankosterfeld Dec 17, 2023
74776e2
Merge branch '0.14'
frankosterfeld Dec 17, 2023
ef6dec2
Fix build with Qt 6.7 on Android
vkrause May 3, 2024
38ff507
Prepare 0.14.3
frankosterfeld May 3, 2024
7460df6
Merge branch '0.14'
frankosterfeld May 3, 2024
bc4b560
Modernise casts in keychain_win.cpp
TheOneRing Jul 19, 2024
903572d
Simplify execution of tests on Windows
TheOneRing Jul 23, 2024
538e6da
Add simple test case
TheOneRing Jul 23, 2024
0fd77e4
Increase timeout for KWallet DBus call
dfaure-kdab Aug 13, 2024
8e943a6
Move calls to CryptProtectData and CryptUnprotectData to functions
TheOneRing Jul 19, 2024
2e29af3
Windows: Allow to store payloads up to 18944 bytes instead of 2560
TheOneRing Aug 13, 2024
100c8db
Use nullptr to avoid compiler warning
dfaure-kdab Aug 23, 2024
f4cb9dc
Fix translation creation
krop Aug 30, 2024
73c3772
Fix MacOS error
Oct 8, 2024
0fa1a42
fix: use `/W4` for `clang-cl` instead of `-Wall`
Nerixyz Nov 5, 2024
0ed3dba
fix: clang-cl comparison and C++ 20 compat warnings
Nerixyz Nov 5, 2024
5bd32bf
fix: Qt5 windows build
Nerixyz Nov 5, 2024
1811035
Fix read password job on Haiku
redstrate Nov 15, 2024
89285f1
More porting to nullptr
dfaure-kdab Nov 21, 2024
ad7344c
Prepare 0.15.0 release
frankosterfeld Jan 16, 2025
23674ec
Bump version for development to 0.15.99
frankosterfeld Jan 16, 2025
d3ce7ac
Use clang-format
frankosterfeld Feb 4, 2025
ad19e68
Modernize connects
frankosterfeld Feb 4, 2025
3364c1c
Use some auto
frankosterfeld Feb 4, 2025
e45e73a
DeleteJob: Do not emit finished() twice
frankosterfeld Feb 4, 2025
4d535da
Fix build with BUILD_TESTING=ON, don't rely on QT_MAJOR_VERSION
dfaure-kdab Apr 4, 2025
77063bd
Include cmath for std::ceil
Biswa96 Jan 17, 2025
b33e98f
Add support for selecting backend
City-busz Feb 27, 2025
9676912
fix CMake build on MinGW
nschimme Mar 13, 2025
35c4f40
add Github actions
nschimme Mar 13, 2025
fbfe867
Adding Swedish translation
yeager May 30, 2025
d972099
Adding Swedish translation
yeager May 30, 2025
7668a63
Fix the crash caused by timeout when reading or writing keychain on m…
yaoxp Sep 12, 2025
f73a341
fix Windows CI job
nschimme Dec 20, 2025
17c3ca0
Fix build with emscripten
m-kuhn Dec 22, 2025
c7e1063
Use default DBus timeout for KWallet check
nicolasfella Nov 11, 2025
a147596
add cmake build for test
akallabeth Oct 10, 2025
d1c89ce
improve display name for libsecret and gnome keyring
akallabeth Oct 10, 2025
7ad9b09
unit tests: add multiple usernames
akallabeth Oct 10, 2025
e2f0459
job: abort if both service and key are empty
akallabeth Oct 10, 2025
4cd1baa
unit tests: test empty service key
akallabeth Oct 10, 2025
844beb4
qmake: fix build error in windows
KangLin Oct 10, 2025
047a68c
i18n: Add Georgian translation
EkaterinePapava Feb 16, 2026
783320e
i18n: Add Georgian translation
EkaterinePapava Feb 16, 2026
6e90eda
Fix restore-after-deletion issue by creating QKeychain jobs dynamical…
Saif-k93 Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 114 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Copyright (C) 2016 Olivier Goffart <ogoffart@woboq.com>
#
# You may use this file under the terms of the 3-clause BSD license.
# See the file LICENSE from this package for details.

# This is the clang-format configuration style to be used by Qt,
# based on the rules from https://wiki.qt.io/Qt_Coding_Style and
# https://wiki.qt.io/Coding_Conventions

---
# Webkit style was loosely based on the Qt style
BasedOnStyle: WebKit

Standard: c++11

# Column width is limited to 100 in accordance with Qt Coding Style.
# https://wiki.qt.io/Qt_Coding_Style
# Note that this may be changed at some point in the future.
ColumnLimit: 100
# How much weight do extra characters after the line length limit have.
# PenaltyExcessCharacter: 4

# Disable reflow of some specific comments
# qdoc comments: indentation rules are different.
# Translation comments and SPDX license identifiers are also excluded.
CommentPragmas: "^!|^:|^ SPDX-License-Identifier:"

# We want a space between the type and the star for pointer types.
PointerBindsToType: false

# We generally use "template <" with space.
SpaceAfterTemplateKeyword: true

# We want to break before the operators, but not before a '='.
BreakBeforeBinaryOperators: NonAssignment

# Braces are usually attached, but not after functions or class declarations.
BreakBeforeBraces: Custom
BraceWrapping:
AfterClass: true
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: true
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false

# When constructor initializers do not fit on one line, put them each on a new line.
ConstructorInitializerAllOnOneLineOrOnePerLine: true
# Indent initializers by 4 spaces
ConstructorInitializerIndentWidth: 4

# Indent width for line continuations.
ContinuationIndentWidth: 8

# No indentation for namespaces.
NamespaceIndentation: None

# Allow indentation for preprocessing directives (if/ifdef/endif). https://reviews.llvm.org/rL312125
IndentPPDirectives: AfterHash
# We only indent with 2 spaces for preprocessor directives
PPIndentWidth: 2

# Horizontally align arguments after an open bracket.
# The coding style does not specify the following, but this is what gives
# results closest to the existing code.
AlignAfterOpenBracket: true
AlwaysBreakTemplateDeclarations: true

# Ideally we should also allow less short function in a single line, but
# clang-format does not handle that.
AllowShortFunctionsOnASingleLine: Inline

# The coding style specifies some include order categories, but also tells to
# separate categories with an empty line. It does not specify the order within
# the categories. Since the SortInclude feature of clang-format does not
# re-order includes separated by empty lines, the feature is not used.
SortIncludes: false

# macros for which the opening brace stays attached.
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE ]

# Break constructor initializers before the colon and after the commas.
BreakConstructorInitializers: BeforeColon

# Add "// namespace <namespace>" comments on closing brace for a namespace
# Ignored for namespaces that qualify as a short namespace,
# see 'ShortNamespaceLines'
FixNamespaceComments: true

# Definition of how short a short namespace is, default 1
ShortNamespaceLines: 1

# When escaping newlines in a macro attach the '\' as far left as possible, e.g.
##define a \
# something; \
# other; \
# thelastlineislong;
AlignEscapedNewlines: Left

# Avoids the addition of a space between an identifier and the
# initializer list in list-initialization.
SpaceBeforeCpp11BracedList: false

---
# Use the Google-based style for .proto files.
Language: Proto
BasedOnStyle: Google
IndentWidth: 4
ColumnLimit: 100
134 changes: 134 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: Build

on:
push:
branches:
- main
pull_request:
workflow_dispatch:

jobs:
build:
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
compiler: [msvc, gcc, clang]
qt_version: [qt5, qt6]
exclude:
- os: ubuntu-latest
compiler: msvc
- os: macos-latest
compiler: gcc
- os: macos-latest
compiler: msvc
- os: windows-latest
compiler: clang

runs-on: ${{ matrix.os }}

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Setup CMake and Ninja
uses: lukka/get-cmake@latest

- if: matrix.compiler == 'msvc'
uses: ilammy/msvc-dev-cmd@v1

- name: Install Dependencies (Windows only)
if: runner.os == 'Windows'
uses: crazy-max/ghaction-chocolatey@v3
with:
args: install pkgconfiglite

- name: Install Qt (Mac/Linux only)
if: runner.os != 'Windows'
run: |
if [ '${{ runner.os }}' == 'macOS' ]; then
if [ '${{ matrix.qt_version }}' == 'qt6' ]; then
brew install qt6 pkg-config
brew link qt6 --force
echo "$(brew --prefix qt6)/bin" >> $GITHUB_PATH
else
brew install qt5 pkg-config
brew link qt5 --force
echo "$(brew --prefix qt5)/bin" >> $GITHUB_PATH
fi
elif [ '${{ runner.os }}' == 'Linux' ]; then
sudo apt-get update
if [ '${{ matrix.qt_version }}' == 'qt6' ]; then
sudo apt-get install -y qt6-base-dev qtchooser qmake6 qt6-base-dev-tools qt6-tools-dev pkg-config libsecret-1-dev
else
sudo apt-get install -y qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qttools5-dev pkg-config libsecret-1-dev
fi
fi

- name: Set AQT Version and Arch (Windows only)
if: runner.os == 'Windows'
id: set_qt_arch
shell: pwsh
run: |
$qtVer = "${{ matrix.qt_version == 'qt5' && '5.15.2' || '6.5.3' }}"
$qtArch = "${{ matrix.compiler == 'msvc' && 'msvc2019_64' ||
matrix.qt_version == 'qt5' && matrix.compiler == 'gcc' && 'mingw81' ||
matrix.qt_version == 'qt6' && matrix.compiler == 'gcc' && 'mingw' }}"
echo "QT_VER=$qtVer" >> $env:GITHUB_OUTPUT
echo "QT_ARCH=$qtArch" >> $env:GITHUB_OUTPUT

- name: Install Qt (Windows only)
if: runner.os == 'Windows'
uses: jurplel/install-qt-action@v4
with:
version: ${{ steps.set_qt_arch.outputs.QT_VER }}
arch: win64_${{ steps.set_qt_arch.outputs.QT_ARCH }}
dir: 'C:\'
cache: true
tools: 'tools_mingw1310'

- name: Setup Build Directory
run: |
mkdir -p ${{ github.workspace }}/work/build/${{ github.event.repository.name }}

- name: Run CMake (Windows only)
if: runner.os == 'Windows'
shell: pwsh
run: |
if ( '${{ matrix.compiler }}' -eq 'msvc' ) {
$generator = "NMake Makefiles"
} else {
$generator = "MinGW Makefiles"
}
if ( '${{ matrix.compiler }}' -eq 'gcc' ) {
echo "C:/Qt/Tools/mingw1310_64/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
$env:PATH = "C:\Qt\Tools\mingw1310_64\bin;$env:PATH"
}
cd "${{ github.workspace }}/work/build/${{ github.event.repository.name }}"
cmake -G $generator "${{ github.workspace }}" `
-DCMAKE_BUILD_TYPE=Release `
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" `
-DCMAKE_PREFIX_PATH=$env:QT_ROOT_DIR `
${{ matrix.qt_version == 'qt6' && '-DBUILD_WITH_QT6=true' || '' }}

- name: Run CMake (Mac/Linux Only)
if: runner.os != 'Windows'
run: |
cd ${{ github.workspace }}/work/build/${{ github.event.repository.name }}
cmake -G Ninja ${{ github.workspace }} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" \
${{ matrix.qt_version == 'qt6' && '-DBUILD_WITH_QT6=true' || '' }}

- name: Build and Install
run: |
cd ${{ github.workspace }}/work/build/${{ github.event.repository.name }}
cmake --build .
cmake --install . --prefix "${{ github.workspace }}/install"

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: build-artifact ${{ matrix.os }} ${{ matrix.compiler }} ${{ matrix.qt_version }}
path: ${{ github.workspace }}/work/build/${{ github.event.repository.name }}

78 changes: 75 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,76 @@
# This file is used to ignore files which are generated
# ----------------------------------------------------------------------------

*~
*.autosave
*.a
*.core
*.moc
*.o
*.obj
*.orig
*.rej
*.so
*.so.*
*_pch.h.cpp
*_resource.rc
*.qm
.#*
*.*#
core
!core/
tags
.DS_Store
.directory
*.debug
Makefile*
*.prl
*.app
moc_*.cpp
ui_*.h
qrc_*.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stash

# qtcreator generated files
*.pro.user*

# xemacs temporary files
*.flc

# Vim temporary files
.*.swp

# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.sdf
*.opensdf
*.vcxproj
*vcxproj.*

# MinGW generated files
*.Debug
*.Release

# Python byte code
*.pyc

# Binaries
# --------
*.dll
*.exe

#CMake files
CMakeCache.txt
CMakeFiles
Expand Down Expand Up @@ -37,14 +110,13 @@ testclient
install_manifest.txt
*.manifest
*.lib
*.exe

#Mac build files
qtkeychain.xcodeproj
qtkeychain.build

#Temporary files
*.sw?
*~


/build-*/
/compile_commands.json
Loading