depot/nix/pkgs/flipperzero-firmware/default.nix

104 lines
2.4 KiB
Nix
Raw Normal View History

2022-08-28 16:33:45 +00:00
{ pkgs ? import <nixpkgs> {}
, ... }:
let
heatshrink2 = pm: pm.buildPythonPackage rec {
pname = "heatshrink2";
version = "0.11.0";
src = pkgs.fetchFromGitHub {
owner = "eerimoq";
repo = "pyheatshrink";
rev = version;
hash = "sha256:1122abg9yf3shbb3h6kzh8f8vmhgxy1w9ck0mjg1zqyncry2hwiz";
fetchSubmodules = true;
};
propagatedBuildInputs = with pm; [
cython
];
};
scons = pkgs.scons.overridePythonAttrs (_: rec {
version = "4.4.0";
src = pkgs.fetchurl {
url = "mirror://sourceforge/scons/scons/${version}/SCons-${version}.tar.gz";
sha256 = "0pv836q2j37w29hg5w5d7ssjfglv9kq5yd0v1vm1cj4j78qb4hrx";
};
});
2022-08-28 16:33:45 +00:00
python-with-deps = pkgs.python3.withPackages (pm: with pm; [
pillow
(heatshrink2 pm)
protobuf
setuptools
pyserial
grpcio
grpcio-tools
(pm.toPythonModule scons)
ansi
colorlog
2022-08-28 16:33:45 +00:00
]);
deps = with pkgs; [
gcc-arm-embedded-10
2022-08-28 16:33:45 +00:00
openocd
clang
dfu-util
git
protobuf
python-with-deps
];
in
pkgs.stdenvNoCC.mkDerivation rec {
pname = "flipper-firmware";
version = "RM11250310-0.71.2-0e622a2";
2022-08-28 16:33:45 +00:00
src = pkgs.fetchgit {
url = "https://github.com/RogueMaster/flipperzero-firmware-wPlugins.git";
2022-08-28 16:33:45 +00:00
rev = version;
fetchSubmodules = true;
sha256 = "1hfrn8slqdig6mj4arvxa5hzvcrfw4yqp6pdr51gm4m99syg4vzp";
};
2022-08-28 16:33:45 +00:00
patches = [
./0001-simply-do-not-run-git.patch
./0002-proto_ver_generator-use-changelog-not-git.patch
./0003-scripts-fbt-version-no-git.patch
./0004-scripts-sconsdist-disable-strict_timestamps-allow-FS.patch
2022-08-28 16:33:45 +00:00
];
nativeBuildInputs = deps;
WORKFLOW_BRANCH_OR_TAG = version;
DIST_SUFFIX = "";
CUSTOM_FLIPPER_NAME = "";
2022-08-28 16:33:45 +00:00
FBT_NOENV = 1;
FBT_NO_SYNC = 1;
buildPhase = ''
runHook preBuild
mkdir -p $NIX_BUILD_TOP/bin
ln -s $(command -v arm-none-eabi-gcc) $NIX_BUILD_TOP/bin/arm-none-eabi-cc
export PATH=$NIX_BUILD_TOP/bin:$PATH
export WORKFLOW_BRANCH_OR_TAG DIST_SUFFIX CUSTOM_FLIPPER_NAME
2022-08-28 16:33:45 +00:00
echo building icons
./fbt icons
echo building resources
./fbt -j$NIX_BUILD_CORES COMPACT=1 DEBUG=0 resources icons
echo building firmware
2022-08-28 16:33:45 +00:00
./fbt -j$NIX_BUILD_CORES --with-updater COMPACT=1 DEBUG=0 updater_package
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -r dist $out
2022-08-28 16:33:45 +00:00
runHook postInstall
'';
passthru.deps = deps;
}