Compare commits

..

2 Commits

Author SHA1 Message Date
935e2a9255
home_packages: add stm32cubemx 2023-12-08 18:44:00 +01:00
b3dba22907
package: add stm32cubemx 2023-12-08 18:42:24 +01:00
2 changed files with 116 additions and 0 deletions

View File

@ -114,5 +114,6 @@
(import ../packages/zapzap/default.nix {inherit pkgs;}) (import ../packages/zapzap/default.nix {inherit pkgs;})
(pkgs.callPackage ../packages/viber/default.nix {}) (pkgs.callPackage ../packages/viber/default.nix {})
(pkgs.callPackage ../packages/bubblewrap/default.nix {}) (pkgs.callPackage ../packages/bubblewrap/default.nix {})
(pkgs.callPackage ../packages/stm32cubemx/default.nix {})
]; ];
} }

View File

@ -0,0 +1,115 @@
{
fdupes,
buildFHSEnv,
fetchzip,
icoutils,
imagemagick,
jdk21,
lib,
makeDesktopItem,
makeWrapper,
stdenv,
}: let
iconame = "STM32CubeMX";
pkg = stdenv.mkDerivation rec {
pname = "stm32cubemx";
version = "6.10.0";
src = fetchzip {
url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}-lin.zip";
sha256 = "1qydwbfj1286h3ys3js6fy5rkni5njsarn502rid11rv6gxrz507";
stripRoot = false;
};
nativeBuildInputs = [fdupes icoutils imagemagick makeWrapper];
desktopItem = makeDesktopItem {
name = "STM32CubeMX";
exec = "stm32cubemx";
desktopName = "STM32CubeMX";
categories = ["Development"];
icon = "stm32cubemx";
comment = meta.description;
terminal = false;
startupNotify = false;
mimeTypes = [
"x-scheme-handler/sgnl"
"x-scheme-handler/signalcaptcha"
];
};
installPhase = ''
mkdir -p $out/{bin,opt/STM32CubeMX,share/applications}
cp -r $src/MX/. $out/opt/STM32CubeMX/
chmod +rx $out/opt/STM32CubeMX/STM32CubeMX
cat << EOF > $out/bin/${pname}
#!${stdenv.shell}
${jdk21}/bin/java -jar $out/opt/STM32CubeMX/STM32CubeMX
EOF
chmod +x $out/bin/${pname}
icotool --extract $out/opt/STM32CubeMX/help/${iconame}.ico
fdupes -dN . > /dev/null
ls
for size in 16 24 32 48 64 128 256; do
mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps
if [ $size -eq 256 ]; then
mv ${iconame}_*_"$size"x"$size"x32.png \
$out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
else
convert -resize "$size"x"$size" ${iconame}_*_256x256x32.png \
$out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
fi
done;
cp ${desktopItem}/share/applications/*.desktop $out/share/applications
'';
meta = with lib; {
description = "A graphical tool for configuring STM32 microcontrollers and microprocessors";
longDescription = ''
A graphical tool that allows a very easy configuration of STM32
microcontrollers and microprocessors, as well as the generation of the
corresponding initialization C code for the Arm® Cortex®-M core or a
partial Linux® Device Tree for Arm® Cortex®-A core), through a
step-by-step process.
'';
homepage = "https://www.st.com/en/development-tools/stm32cubemx.html";
sourceProvenance = with sourceTypes; [binaryBytecode];
license = licenses.unfree;
maintainers = with maintainers; [angaz wucke13];
platforms = platforms.all;
};
};
in
buildFHSEnv {
inherit (pkg) pname meta;
runScript = "${pkg.outPath}/bin/stm32cubemx";
targetPkgs = pkgs:
with pkgs; [
alsa-lib
at-spi2-atk
cairo
cups
dbus
expat
glib
gtk3
libdrm
libGL
libudev0-shim
libxkbcommon
mesa
nspr
nss
pango
xorg.libX11
xorg.libxcb
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXrandr
];
}