diff --git a/pkgs/vesc-tool/firmware.nix b/pkgs/vesc-tool/firmware.nix index f2c31dd..9db0fdc 100644 --- a/pkgs/vesc-tool/firmware.nix +++ b/pkgs/vesc-tool/firmware.nix @@ -2,37 +2,41 @@ , fetchFromGitHub , gcc-arm-embedded-7 , python311 -, git +, writeShellScriptBin }: -stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "vesc-firmware"; version = "master"; src = fetchFromGitHub { owner = "vedderb"; repo = "bldc"; - rev = "f7c2b34e1cff2234cae98be3abf0cd50e249558f"; # release_6_02 - sha256 = "BJwxmtYjQhxV8O0Ze9k0cPz0ubJnq5ePUd/9tGx35jo="; + rev = "dd3b97b041c325acfb95ac1adb550d28390ea253"; + sha256 = "2Zex2FNkedO4wjG05CQIyVFU0i0/+O9V3LzsxHZOnvg="; fetchSubmodules = true; }; nativeBuildInputs = [ gcc-arm-embedded-7 python311 - git + (writeShellScriptBin "git" '' + if [ "$*" != "rev-parse --short HEAD" ]; then + exit 1 + fi + echo "${src.rev}" + '') ]; buildCommand = '' - set -x cp -r $src bldc ( cd bldc chmod +w . - make fw_410 fw_60 + make -j $NIX_BUILD_CORES fw_410 fw_60 + python package_firmware.py ) mkdir -p $out - find bldc - cp --target-directory=$out --recursive bldc/build/*/*.{bin,hex} + cp --recursive --target-directory=$out bldc/package/* ''; } diff --git a/pkgs/vesc-tool/tool.nix b/pkgs/vesc-tool/tool.nix index 4043910..3cb591d 100644 --- a/pkgs/vesc-tool/tool.nix +++ b/pkgs/vesc-tool/tool.nix @@ -2,21 +2,9 @@ , fetchFromGitHub , libsForQt5 , vesc-firmware -, writeText , qt5 }: -let - qresource = writeText "res_fw.qrc" - '' - - - 410.bin - 60.bin - - - ''; -in stdenv.mkDerivation { pname = "vesc_tool"; version = "master"; @@ -24,8 +12,8 @@ stdenv.mkDerivation { src = fetchFromGitHub { owner = "vedderb"; repo = "vesc_tool"; - rev = "4a0edea5846d973e5da510fbe11ce009aaf21a96"; - sha256 = "18ue6YBVcggr4qyHpCorrh01oeo4i58Jgp9Twaq+DlI="; + rev = "211f5d317542a3674df638405485a143a23f67ce"; + sha256 = "liF2JbcrRtVPSySJhY7CHRghsBV3gKRGD40pKVD19wE="; fetchSubmodules = true; }; @@ -35,10 +23,6 @@ stdenv.mkDerivation { qt5.wrapQtAppsHook ]; - buildInputs = [ - vesc-firmware - ]; - propagatedBuildInputs = with qt5; [ qtconnectivity qtgamepad @@ -47,14 +31,15 @@ stdenv.mkDerivation { qtserialport ]; - buildPhase = '' - mkdir -p res/firmwares/ - cp ${qresource} res/firmwares/res_fw.qrc - cp ${vesc-firmware}/*.bin res/firmwares + dontConfigure = true; + buildPhase = '' + for f in ${vesc-firmware}/*; do + ln -s "$f" res/firmwares/ + done qmake -config release "CONFIG += release_lin build_platinum" make clean - make -j8 + make -j $NIX_BUILD_CORES rm -rf build/lin/obj mkdir -p $out/bin cp build/lin/* $out/bin