about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorCarlos Craveiro <CarlosCraveiro@usp.br>2024-01-17 01:08:21 -0300
committerCarlos Craveiro <CarlosCraveiro@usp.br>2024-01-17 01:37:40 -0300
commit4745b5edf3b7f9d20169586634e12dbe9ecc76c8 (patch)
treeca490039ccff0059590177f471bbb9188c94b50e /pkgs/applications
parente49368bdb2dd3ffc8b0ed046277868d86146384c (diff)
simulide: init at 0.4.15-SR10
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/science/electronics/simulide/default.nix86
1 files changed, 86 insertions, 0 deletions
diff --git a/pkgs/applications/science/electronics/simulide/default.nix b/pkgs/applications/science/electronics/simulide/default.nix
new file mode 100644
index 0000000000000..1b5b3d572128a
--- /dev/null
+++ b/pkgs/applications/science/electronics/simulide/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, fetchbzr
+, mkDerivation
+, qmake
+, qtserialport
+, qtmultimedia
+, qttools
+, qtscript
+}:
+
+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=";
+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 <cstdint>'
+    sed -i src/gpsim/modules/watchdog.h -e '1i #include <cstdint>'
+
+    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.
+    '';
+    homepage = "https://simulide.com/";
+    license = licenses.gpl3Only;
+    mainProgram = "simulide";
+    maintainers = with maintainers; [ carloscraveiro tomasajt ];
+    platforms = ["x86_64-linux"];
+  };
+}