1592e03aba
Most of these can easily be moved to subdirectories of other directories. This helps reduce clutter in the main trees.
65 lines
1.4 KiB
Nix
65 lines
1.4 KiB
Nix
{ stdenv, fetchFromGitHub
|
|
, gcc-arm-embedded, python2
|
|
, skipTargets ? [
|
|
# These targets do not build for various unexplored reasons
|
|
# TODO ... fix them
|
|
"AFROMINI"
|
|
"ALIENWHOOP"
|
|
"BEEBRAIN"
|
|
"CJMCU"
|
|
"FRSKYF3"
|
|
]}:
|
|
|
|
let
|
|
|
|
version = "3.2.3";
|
|
|
|
in stdenv.mkDerivation rec {
|
|
|
|
name = "betaflight-${version}";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "betaflight";
|
|
repo = "betaflight";
|
|
rev = "v${version}";
|
|
sha256 = "0vbjyxfjxgpaiiwvj5bscrlfikzp3wnxpmc4sxcz5yw5mwb9g428";
|
|
};
|
|
|
|
buildInputs = [
|
|
gcc-arm-embedded
|
|
python2
|
|
];
|
|
|
|
postPatch = ''
|
|
sed -ri "s/REVISION.*=.*git log.*/REVISION = ${builtins.substring 0 9 src.rev}/" Makefile # Let's not require git in shell
|
|
sed -ri "s/binary hex/hex/" Makefile # No need for anything besides .hex
|
|
'';
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
preBuild = ''
|
|
buildFlagsArray=(
|
|
"SKIP_TARGETS=${toString skipTargets}"
|
|
"GCC_REQUIRED_VERSION=$(arm-none-eabi-gcc -dumpversion)"
|
|
all
|
|
)
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out
|
|
cp obj/*.hex $out
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Flight controller software (firmware) used to fly multi-rotor craft and fixed wing craft";
|
|
homepage = https://github.com/betaflight/betaflight;
|
|
license = licenses.gpl3;
|
|
maintainers = with maintainers; [ elitak ];
|
|
platforms = platforms.linux;
|
|
};
|
|
|
|
}
|