mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-08-17 20:34:14 +02:00
135 lines
4.2 KiB
YAML
135 lines
4.2 KiB
YAML
name: qelectrotech
|
|
title: QElectroTech
|
|
base: core24
|
|
adopt-info: qelectrotech
|
|
license: GPL-2.0
|
|
summary: Electrical diagram editor
|
|
description: |
|
|
QElectroTech, or QET in short, is a libre and open source desktop application
|
|
to create diagrams and schematics.
|
|
grade: stable
|
|
confinement: strict
|
|
compression: lzo
|
|
|
|
architectures:
|
|
- build-on: amd64
|
|
build-for: amd64
|
|
- build-on: arm64
|
|
build-for: arm64
|
|
|
|
layout:
|
|
/usr/local/share/qelectrotech:
|
|
symlink: $SNAP/usr/local/share/qelectrotech
|
|
|
|
apps:
|
|
qelectrotech:
|
|
command: usr/local/bin/qelectrotech
|
|
common-id: qelectrotech.desktop
|
|
extensions:
|
|
- kde-neon-6
|
|
plugs: &plugs [opengl, unity7, home, removable-media, gsettings, network, cups-control, wayland, x11]
|
|
environment: &env
|
|
TCL_LIBRARY: $SNAP/usr/share/tcltk/tcl8.6
|
|
HOME: $SNAP_USER_COMMON
|
|
PYTHONPATH: $SNAP:$SNAP/lib/python3.12/site-packages:$SNAP/usr/lib/python3.12:$SNAP/usr/lib/python3.12/lib-dynload
|
|
|
|
qet-tb-generator:
|
|
command: bin/qet_tb_generator
|
|
extensions:
|
|
- kde-neon-6
|
|
plugs: *plugs
|
|
environment: *env
|
|
|
|
parts:
|
|
launchers:
|
|
plugin: dump
|
|
source: build-aux/snap/local/launchers
|
|
organize:
|
|
'*': bin/
|
|
|
|
qet-tb-generator:
|
|
plugin: python
|
|
source: https://github.com/raulroda/qet_tb_generator-plugin.git
|
|
source-tag: v1.31
|
|
python-packages: [PySimpleGUI]
|
|
stage-packages:
|
|
- python3-lxml
|
|
- python3-tk
|
|
- libtk8.6
|
|
|
|
kde-sdk-setup:
|
|
plugin: nil
|
|
build-snaps:
|
|
- kf6-core24-sdk
|
|
- kde-qt6-core24-sdk
|
|
build-packages:
|
|
- g++
|
|
- mesa-common-dev
|
|
- libglvnd-dev
|
|
- rsync
|
|
override-build: |
|
|
rsync -a --ignore-existing /snap/kf6-core24-sdk/current/ /
|
|
rsync -a --ignore-existing /snap/kde-qt6-core24-sdk/current/ /
|
|
|
|
qelectrotech:
|
|
after: [kde-sdk-setup]
|
|
plugin: nil
|
|
source: .
|
|
stage-packages:
|
|
- git
|
|
- sqlite3
|
|
- xdg-user-dirs
|
|
# runtime pugixml — nom de paquet à vérifier sur core24/noble,
|
|
# nécessaire car BUILD_PUGIXML=OFF lie contre la lib système
|
|
- libpugixml1v5
|
|
# libxcb-cursor0 workaround was needed against the Qt5/KF5 core22 content
|
|
# snap (issue #373). Not yet re-verified against kf6-core24 — remove this
|
|
# if the Qt6 xcb platform plugin loads cleanly without it.
|
|
- libxcb-cursor0
|
|
build-packages:
|
|
- git
|
|
- cmake
|
|
- ninja-build
|
|
- libsqlite3-dev
|
|
- libpugixml-dev
|
|
- qt6-tools-dev
|
|
- qt6-base-private-dev
|
|
- pkgconf
|
|
override-build: |
|
|
displayed_version=$(cat sources/qetversion.cpp | grep "return QVersionNumber{"| head -n 1| awk -F "{" '{ print $2 }' | awk -F "}" '{ print $1 }' | sed -e 's/,/./g' -e 's/ //g')
|
|
snap_version="${displayed_version}-g$(git rev-parse --short=8 HEAD)"
|
|
modified_displayed_version="${snap_version}.snap"
|
|
sed -i -E "s|const QString displayedVersion =.*|const QString displayedVersion =\"$modified_displayed_version\";|" sources/qet.h
|
|
craftctl set version="$snap_version"
|
|
cmake -G Ninja -B build -S "$CRAFT_PART_SRC" \
|
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DQT_VERSION_MAJOR=6 \
|
|
-DBUILD_WITH_KF=ON \
|
|
-DBUILD_KF=OFF \
|
|
-DPACKAGE_TESTS=OFF \
|
|
-DBUILD_PUGIXML=OFF \
|
|
-DQET_EXPORT_PROJECT_DB=ON
|
|
ninja -C build -j${CRAFT_PARALLEL_BUILD_COUNT}
|
|
DESTDIR="$CRAFT_PART_INSTALL" ninja -C build install
|
|
override-stage: |
|
|
craftctl default
|
|
# patch desktop file with correct icon path
|
|
SED_CMD="sed -i -E s|^Icon=(.*)|Icon=\${SNAP}/usr/local/share/icons/hicolor/128x128/apps/\1.png|g"
|
|
$SED_CMD usr/local/share/applications/org.qelectrotech.qelectrotech.desktop
|
|
|
|
cleanup:
|
|
after: [qelectrotech, qet-tb-generator]
|
|
plugin: nil
|
|
build-snaps: [kf6-core24]
|
|
override-prime: |
|
|
set -eux
|
|
for snap in "kf6-core24"; do # List all content-snaps you're using here
|
|
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$CRAFT_PRIME/{}" "$CRAFT_PRIME/usr/{}" \;
|
|
done
|
|
for cruft in bug lintian man; do
|
|
rm -rf $CRAFT_PRIME/usr/share/$cruft
|
|
done
|
|
find $CRAFT_PRIME/usr/share/doc/ -type f -not -name 'copyright' -delete
|
|
find $CRAFT_PRIME/usr/share -type d -empty -delete
|