Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
2a1611b
feat: use conan and ownCloud artifactory
DeepDiver1975 Jun 5, 2025
7ae8926
fix: cmake Qt6:: + includes
DeepDiver1975 Aug 6, 2025
4167246
fix: use extra-cmake-modules/6.8.0
DeepDiver1975 Aug 6, 2025
68f8f85
fix: remove include(Qt6QmlPublicCMakeHelpers) - not found on MacOS
DeepDiver1975 Aug 6, 2025
6fee724
feat: openssl/3.4.2
DeepDiver1975 Aug 6, 2025
05721b7
fix: now with qttranslations
DeepDiver1975 Aug 8, 2025
f6739a2
fix: Qt6::DBus it is ....
DeepDiver1975 Aug 11, 2025
39d0da1
ci: disable CredentialManagerTest
DeepDiver1975 Aug 13, 2025
a3e2cf5
Add Qt libraries directory to LD_LIBRARY_PATH
erikjv Aug 18, 2025
e2a52c7
Fix env setting on Linux
erikjv Aug 19, 2025
66ed9e0
Align Qt options with conan-artifact-builder
erikjv Sep 28, 2026
12d467d
Make default_options identical to conan-artifact-builder
erikjv Sep 28, 2026
05e29ab
Switch Linux profile to RelWithDebInfo and fix GCC version
erikjv Sep 29, 2026
edf7944
Remove stale accountfwd.h include from space.h
erikjv Sep 29, 2026
b8ef4d9
Update macOS profile: RelWithDebInfo and Apple clang 17
erikjv Sep 30, 2026
5e4edb6
Disable glib for macOS builds
erikjv Sep 30, 2026
4553988
Add AppImage packaging script for CI
erikjv Oct 2, 2026
ab9e100
Find qmake in Conan cache for AppImage packaging
erikjv Oct 2, 2026
c8f0b2c
Set Qt plugin/QML/lib paths from qmake for linuxdeploy
erikjv Oct 2, 2026
0da5122
Create missing Qt plugin dirs to prevent linuxdeploy crash
erikjv Oct 2, 2026
b2eab26
Let linuxdeploy strip binaries in AppImage
erikjv Oct 5, 2026
bc45e5a
List AppDir contents before creating AppImage
erikjv Oct 6, 2026
4944b8d
Clean up AppDir before creating AppImage
erikjv Oct 6, 2026
c0e1bde
Strip debug symbols from AppDir binaries
erikjv Oct 6, 2026
f5a057e
Remove unnecessary Qt styles, modules, and translations from AppImage
erikjv Oct 6, 2026
5843b02
Remove PrintSupport from AppImage
erikjv Oct 6, 2026
9ffe055
Remove unnecessary X11 libs from AppImage
erikjv Oct 6, 2026
535c154
Disable md4c in Qt build
erikjv Oct 6, 2026
ebaeeaf
Revert md4c change, needs Conan package rebuild first
erikjv Oct 6, 2026
7f2ba84
Set GIO_MODULE_DIR to prevent loading system GIO modules
erikjv Oct 7, 2026
daaa254
Keep Qt libs that the binary links against transitively
erikjv Oct 7, 2026
b081ab6
Disable unused Qt features: Designer, Assistant, markdown
erikjv Oct 7, 2026
b414c35
Upgrade to Qt 6.11.1 and bump pruned dependency versions
erikjv Oct 8, 2026
6509486
Bump cmake tool_requires to 3.31.12
erikjv Oct 8, 2026
6cf0127
Set macOS deployment target to 13.0 in Conan profile
erikjv Oct 8, 2026
0b8f0c7
Remove QML designer files from AppImage
erikjv Oct 9, 2026
6ea1cd7
Use Conan-built libraries for linuxdeploy bundling
erikjv Oct 9, 2026
d1f319d
Fix RPATH extraction: handle RUNPATH and pipefail
erikjv Oct 9, 2026
c366d73
Use Python script to extract Conan lib paths from RPATH
erikjv Oct 9, 2026
5d88aec
Copy Conan-built libs into AppDir before running linuxdeploy
erikjv Oct 9, 2026
9084a8d
Skip plugin directories when copying Conan libs into AppDir
erikjv Oct 9, 2026
c2c2c16
Also copy Conan Qt plugins into AppDir
erikjv Oct 9, 2026
8731f0f
Add verbose linuxdeploy output and fix missing plugin dirs
erikjv Oct 12, 2026
95499c2
Copy all Qt plugins into AppDir before linuxdeploy
erikjv Oct 12, 2026
ee0d165
Fix Qt plugin copy: ensure target dir exists, allow overwrite
erikjv Oct 12, 2026
0fdeb36
Create all standard Qt plugin dirs in AppDir
erikjv Oct 12, 2026
6b7ae74
Add Qt bin/libexec to PATH for qmlimportscanner
erikjv Oct 12, 2026
cc775d6
Use Conan Qt dir for PATH/plugins instead of qmake -query
erikjv Oct 12, 2026
1ca7878
Don't set QT_PLUGIN_PATH — let linuxdeploy use qmake -query
erikjv Oct 12, 2026
e4ae166
Create missing plugin dirs in both AppDir and Conan Qt prefix
erikjv Oct 12, 2026
d500c4b
Preserve symlinks when copying Conan libs into AppDir
erikjv Oct 12, 2026
913a457
Disable Qt glib integration on Linux
erikjv Oct 12, 2026
1398b0a
Force all Conan dependencies to build as shared libraries
erikjv Oct 13, 2026
995f96b
Build glib as shared on Linux to prevent static symbol duplication
erikjv Oct 14, 2026
2c82008
Disable SELinux support in glib
erikjv Oct 14, 2026
61f571d
Clean up create-appimage.sh: remove debug verbosity and GIO_MODULE_DIR
erikjv Oct 15, 2026
5ac5246
Add macOS packaging script for Conan builds
erikjv Oct 16, 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
5 changes: 5 additions & 0 deletions .conan/config/global.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
core.net.http:timeout = 300

tools.system.package_manager:mode = install
tools.system.package_manager:sudo = True

11 changes: 11 additions & 0 deletions .conan/profiles/macos-latest-armv8.conanprofile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[settings]
arch=armv8
build_type=RelWithDebInfo
compiler=apple-clang
compiler.cppstd=17
compiler.libcxx=libc++
compiler.version=17
os=Macos
# Keep in sync with CMAKE_OSX_DEPLOYMENT_TARGET in CMakeLists.txt
os.version=13.0

8 changes: 8 additions & 0 deletions .conan/profiles/ubuntu-latest-x86_64.conanprofile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[settings]
arch=x86_64
build_type=RelWithDebInfo
compiler=gcc
compiler.cppstd=gnu17
compiler.libcxx=libstdc++11
compiler.version=11
os=Linux
9 changes: 9 additions & 0 deletions .conan/profiles/windows-latest-x86_64.conanprofile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[settings]
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=17
compiler.runtime=dynamic
compiler.runtime_type=Debug
compiler.version=194
os=Windows
60 changes: 60 additions & 0 deletions .github/workflows/conan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Build with conan

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
name: Building ${{ matrix.build_type }} ${{ matrix.profile }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
# Release build type
- os: ubuntu-latest
profile: ubuntu-latest-x86_64
build_type: Release
- os: macos-latest
profile: macos-latest-armv8
build_type: Release
#- os: windows-latest
# profile: windows-latest-x86_64
# build_type: Release

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

- name: Install Conan
uses: conan-io/setup-conan@v1

- name: Add artifactory & set conan config
run: |
conan config install ./.conan/config/global.conf
conan remote remove conancenter
conan remote add oc https://artifactory.owncloud-demo.com/artifactory/api/conan/conan-local
conan remote login oc ${{ secrets.CONAN_USER }} -p ${{ secrets.CONAN_PASSWORD }}
conan remote list
conan profile show

- name: Create build directory
run: mkdir build

- name: Install dependencies with conan
run: |
conan install . --profile=.conan/profiles/${{ matrix.profile }}.conanprofile -s build_type=${{ matrix.build_type }}

- name: Build the client
working-directory: ./build
run: |
cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
cmake --build .

- name: Run tests
working-directory: ./build
run: ctest --output-on-failure
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
CMakeUserPresets.json
/branding/
.gitmodules
*build*/
Expand Down Expand Up @@ -180,3 +181,11 @@ test/gui/config.ini
test/gui/reports
*/**/__pycache__/
test/gui/users.json

# conan generated files
#*-config.cmake
#*-data.cmake
#*-version.cmake
#*-release.cmake
#*Targets.cmake
#*conan*.sh
12 changes: 8 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Set this before the first project definition
# Keep in sync with os.version in .conan/profiles/macos-*.conanprofile
set(CMAKE_OSX_DEPLOYMENT_TARGET "13.0" CACHE STRING "Minimum macOS deployment version" FORCE)

include(VERSION.cmake)
Expand All @@ -23,13 +24,16 @@ set(APPLE_SUPPRESS_X11_WARNING ON)

set(CMAKE_POSITION_INDEPENDENT_CODE ON)

find_package(QT 6.8 NAMES Qt6 COMPONENTS Core REQUIRED)
find_package(QT 6.11 NAMES Qt6 COMPONENTS Core REQUIRED)

find_package(Qt6 COMPONENTS Core Concurrent Network Widgets Xml Quick QuickWidgets QuickControls2 REQUIRED)
find_package(Qt6LinguistTools REQUIRED)
get_target_property (QT_QMAKE_EXECUTABLE Qt::qmake IMPORTED_LOCATION)
find_package(Qt6 COMPONENTS Core Concurrent Network Widgets Xml Quick Qml QuickWidgets QuickControls2 REQUIRED)
find_package(Qt6 CONFIG REQUIRED COMPONENTS LinguistTools)

get_target_property (QT_QMAKE_EXECUTABLE Qt6::qmake IMPORTED_LOCATION)
message(STATUS "Using Qt ${QT_VERSION} (${QT_QMAKE_EXECUTABLE})")

qt6_standard_project_setup()

if (UNIX AND NOT APPLE)
find_package(Qt6 REQUIRED COMPONENTS DBus)
endif()
Expand Down
Loading
Loading