From cb2210116534b9fe1eec0ade00fa4f3acd5e02a1 Mon Sep 17 00:00:00 2001
From: Astro <astro@spaceboyz.net>
Date: Mon, 24 Jun 2019 21:00:43 +0200
Subject: [PATCH] chore(nix): update to meson/ninja build system

---
 default.nix          | 14 ++---------
 nix/firmware.nix     | 55 +++++++++++---------------------------------
 nix/python-crc16.nix | 10 --------
 shell.nix            |  5 ++--
 4 files changed, 18 insertions(+), 66 deletions(-)
 delete mode 100644 nix/python-crc16.nix

diff --git a/default.nix b/default.nix
index 85b6eee1..e698c7bf 100644
--- a/default.nix
+++ b/default.nix
@@ -2,10 +2,9 @@
 }:
 with pkgs;
 let
-  firmwareBuilder = callPackage ./nix/firmware.nix {};
+  firmware = callPackage ./nix/firmware.nix {};
   openocd = callPackage ./nix/openocd.nix { };
 in
-with firmwareBuilder;
 {
   openocd = stdenv.mkDerivation {
     name = "openocd-card10";
@@ -20,14 +19,5 @@ with firmwareBuilder;
         --add-flags "-f $out/share/openocd/scripts/target/max32665.cfg"
     '';
   };
-
-  bootloader = firmware "bootloader";
-  ble = loadable "ble";
-  bmatest = loadable "bmatest";
-  bmetest = loadable "bmetest";
-  ecgtest = loadable "ecgtest";
-  Hello_World = loadable "Hello_World";
-  Hello_World_FreeRTOS = loadable "Hello_World_FreeRTOS";
-  imutest = loadable "imutest";
-  ips = loadable "ips";
+  inherit firmware;
 }
diff --git a/nix/firmware.nix b/nix/firmware.nix
index 9217f297..0e181c99 100644
--- a/nix/firmware.nix
+++ b/nix/firmware.nix
@@ -1,43 +1,16 @@
-{ pkgsCross, python3, callPackage }:
+{ pkgsCross, python3, ninja, meson, gcc }:
 
-let
-  crc16 = callPackage ./python-crc16.nix {};
-in rec {
-  firmware = subdir:
-    pkgsCross.arm-embedded.stdenv.mkDerivation {
-      name = "${subdir}";
-      src = ./..;
-      buildInputs = [ ];
-      hardeningDisable= [ "all" ];
-      buildPhase = ''
-        cd ${subdir}
-        make clean
-        make -j ''$NIX_BUILD_CORES
-        make -j ''$NIX_BUILD_CORES build/max32665.elf
-      '';
-      installPhase = ''
-        mkdir -p $out/lib
-        cp build/max32665.elf $out/lib/card10.elf
-      '';
-    };
-
-  loadable = subdir:
-    pkgsCross.arm-embedded.stdenv.mkDerivation {
-      name = "loadable-${subdir}";
-      src = ./..;
-      buildInputs = [ crc16 ];
-      hardeningDisable= [ "all" ];
-      buildPhase = ''
-        cd ${subdir}
-        make clean
-        make -j ''$NIX_BUILD_CORES APP=1
-        make -j ''$NIX_BUILD_CORES build/max32665.bin
-        ${python3}/bin/python ../bootloader/crc_patch.py build/max32665.bin
-      '';
-      installPhase = ''
-        mkdir -p $out/lib
-        cp build/max32665.elf $out/lib/card10.elf
-        cp build/max32665.bin $out/lib/card10.bin
-      '';
-    };
+pkgsCross.armhf-embedded.stdenv.mkDerivation {
+  name = "card10";
+  src = ./..;
+  postPatch = ''
+    substituteInPlace card10-cross.ini \
+      --replace arm-none-eabi arm-none-eabihf
+  '';
+  nativeBuildInputs = [ ninja meson python3 gcc ];
+  mesonFlags = [
+    "--cross-file card10-cross.ini"
+    "--optimization s"
+  ];
+  ninjaFlags = [ "-v" ];
 }
diff --git a/nix/python-crc16.nix b/nix/python-crc16.nix
deleted file mode 100644
index 1c1a0170..00000000
--- a/nix/python-crc16.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ python3Packages }:
-
-python3Packages.buildPythonPackage rec {
-  pname = "crc16";
-  version = "0.1.1";
-  src = python3Packages.fetchPypi {
-    inherit pname version;
-    sha256 = "15nkx0pa4lskwin84flpk8fsw3jqg6wic6v3s83syjqg76h6my61";
-  };
-}
diff --git a/shell.nix b/shell.nix
index ee89290b..72fb9d82 100644
--- a/shell.nix
+++ b/shell.nix
@@ -1,6 +1,5 @@
 with import <nixpkgs> {};
-pkgsCross.arm-embedded.stdenv.mkDerivation {
+pkgsCross.armhf-embedded.stdenv.mkDerivation {
   name = "env";
-  buildInputs = [ bashInteractive ];
-  hardeningDisable= [ "all" ];
+  buildInputs = [ ninja meson python3 gcc bashInteractive ];
 }
-- 
GitLab