diff --git a/pkgs/applications/science/electronics/simulide/default.nix b/pkgs/applications/science/electronics/simulide/default.nix index 1b5b3d572128..c63d8cbc299e 100644 --- a/pkgs/applications/science/electronics/simulide/default.nix +++ b/pkgs/applications/science/electronics/simulide/default.nix @@ -9,78 +9,104 @@ }: let - version = "0.4.15"; - release = "SR10"; - branch = "simulide_0.4.14"; # the branch name does not mach the version for some reason - rev = "291"; - sha256 = "sha256-BBoZr/S2pif0Jft5wrem8y00dXl08jq3kFiIUtOr3LM="; + generic = + { version + , release + , branch + , rev + , sha256 + , extraPostPatch ? "" + , extraBuildInputs ? [ ] + , iconPath ? "resources/icons/simulide.png" + , installFiles ? '' + cp -r data examples $out/share/simulide + cp simulide $out/bin/simulide + '' + }: + mkDerivation { + pname = "simulide"; + version = "${version}-${release}"; + + src = fetchbzr { + url = "https://code.launchpad.net/~arcachofo/simulide/${branch}"; + inherit rev sha256; + }; + + postPatch = '' + sed -i resources/simulide.desktop \ + -e "s|^Exec=.*$|Exec=simulide|" \ + -e "s|^Icon=.*$|Icon=simulide|" + + # Note: older versions don't have REV_NO + sed -i SimulIDE.pro \ + -e "s|^VERSION = .*$|VERSION = ${version}|" \ + -e "s|^RELEASE = .*$|RELEASE = -${release}|" \ + -e "s|^REV_NO = .*$|REV_NO = ${rev}|" \ + -e "s|^BUILD_DATE = .*$|BUILD_DATE = ??-??-??|" + + ${extraPostPatch} + ''; + + preConfigure = '' + cd build_XX + ''; + + nativeBuildInputs = [ + qmake + ]; + + buildInputs = [ + qtserialport + qtmultimedia + qttools + ] ++ extraBuildInputs; + + installPhase = '' + runHook preInstall + + install -Dm644 ../resources/simulide.desktop $out/share/applications/simulide.desktop + install -Dm644 ../${iconPath} $out/share/icons/hicolor/256x256/apps/simulide.png + + mkdir -p $out/share/simulide $out/bin + pushd executables/SimulIDE_* + ${installFiles} + popd + + runHook postInstall + ''; + + meta = { + description = "A simple real time electronic circuit simulator"; + longDescription = '' + SimulIDE is a simple real time electronic circuit simulator, intended for hobbyist or students + to learn and experiment with analog and digital electronic circuits and microcontrollers. + It supports PIC, AVR, Arduino and other MCUs and MPUs. + ''; + homepage = "https://simulide.com/"; + license = lib.licenses.gpl3Only; + mainProgram = "simulide"; + maintainers = with lib.maintainers; [ carloscraveiro tomasajt ]; + platforms = [ "x86_64-linux" ]; + }; + }; in -mkDerivation { - pname = "simulide"; - version = "${version}-${release}"; - - src = fetchbzr { - url = "https://code.launchpad.net/~arcachofo/simulide/${branch}"; - inherit rev sha256; - }; - - postPatch = '' - # GCC 13 needs this header explicitly included - sed -i src/gpsim/value.h -e '1i #include ' - sed -i src/gpsim/modules/watchdog.h -e '1i #include ' - - sed -i resources/simulide.desktop \ - -e "s|^Exec=.*$|Exec=simulide|" \ - -e "s|^Icon=.*$|Icon=simulide|" - sed -i SimulIDE.pro \ - -e "s|^VERSION = .*$|VERSION = ${version}|" \ - -e "s|^RELEASE = .*$|RELEASE = -${release}|" \ - -e "s|^REV_NO = .*$|REV_NO = ${rev}|" \ - -e "s|^BUILD_DATE = .*$|BUILD_DATE = ??-??-??|" - ''; - - preConfigure = '' - cd build_XX - ''; - - nativeBuildInputs = [ - qmake - ]; - - buildInputs = [ - qtserialport - qtmultimedia - qttools - qtscript - ]; - - installPhase = '' - runHook preInstall - - install -Dm644 ../resources/simulide.desktop $out/share/applications/simulide.desktop - install -Dm644 ../resources/icons/hicolor/256x256/simulide.png $out/share/icons/hicolor/256x256/apps/simulide.png - - mkdir -p $out/share/simulide $out/bin - - pushd executables/SimulIDE_* - cp -r share/simulide/* $out/share/simulide - cp bin/simulide $out/bin/simulide - popd - - runHook postInstall - ''; - - meta = with lib; { - description = "A simple real time electronic circuit simulator"; - longDescription = '' - SimulIDE is a simple real time electronic circuit simulator, intended for hobbyist or students - to learn and experiment with analog and digital electronic circuits and microcontrollers. - It supports PIC, AVR, Arduino and other MCUs and MPUs. +{ + simulide_0_4_15 = generic { + version = "0.4.15"; + release = "SR10"; + branch = "simulide_0.4.14"; # the branch name does not mach the version for some reason + rev = "291"; + sha256 = "sha256-BBoZr/S2pif0Jft5wrem8y00dXl08jq3kFiIUtOr3LM="; + extraPostPatch = '' + # GCC 13 needs the header explicitly included + sed -i src/gpsim/value.h -e '1i #include ' + sed -i src/gpsim/modules/watchdog.h -e '1i #include ' + ''; + extraBuildInputs = [ qtscript ]; + iconPath = "resources/icons/hicolor/256x256/simulide.png"; # upstream had a messed up icon path in this release + installFiles = '' + cp -r share/simulide/* $out/share/simulide + cp bin/simulide $out/bin/simulide ''; - homepage = "https://simulide.com/"; - license = licenses.gpl3Only; - mainProgram = "simulide"; - maintainers = with maintainers; [ carloscraveiro tomasajt ]; - platforms = ["x86_64-linux"]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2f18b99caaed..eca411681da5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -39673,7 +39673,10 @@ with pkgs; appcsxcad = libsForQt5.callPackage ../applications/science/electronics/appcsxcad { }; - simulide = libsForQt5.callPackage ../applications/science/electronics/simulide { }; + inherit (libsForQt5.callPackage ../applications/science/electronics/simulide { }) + simulide_0_4_15; + + simulide = simulide_0_4_15; eagle = libsForQt5.callPackage ../applications/science/electronics/eagle/eagle.nix { };