|  | 
|  | 1 | +{ | 
|  | 2 | +  description = "A very basic flake"; | 
|  | 3 | + | 
|  | 4 | +  inputs = { | 
|  | 5 | +    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; | 
|  | 6 | +    infinitime.url = "github:shymega/InfiniTime?ref=shymega-feat/nix-flake&submodules=1"; | 
|  | 7 | +    # infinitime.url = "github:InfiniTimeOrg/InfiniTime"; | 
|  | 8 | +    flake-compat.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"; | 
|  | 9 | +  }; | 
|  | 10 | + | 
|  | 11 | +  outputs = { self, ... }@inputs: | 
|  | 12 | +    let | 
|  | 13 | +      forAllSystems = function: | 
|  | 14 | +        inputs.nixpkgs.lib.genAttrs [ | 
|  | 15 | +          "x86_64-linux" | 
|  | 16 | +          "aarch64-linux" | 
|  | 17 | +        ] | 
|  | 18 | +          (system: function (import inputs.nixpkgs { | 
|  | 19 | +            inherit system; | 
|  | 20 | +            config.allowUnfree = true; | 
|  | 21 | +          })); | 
|  | 22 | +    in | 
|  | 23 | +    { | 
|  | 24 | +      packages = forAllSystems (pkgs: | 
|  | 25 | +        let | 
|  | 26 | +          infinitime = inputs.infinitime.packages.${pkgs.system}.default; | 
|  | 27 | +        in | 
|  | 28 | +        with pkgs; { | 
|  | 29 | +          default = stdenv.mkDerivation rec { | 
|  | 30 | +            name = "infinisim"; | 
|  | 31 | +            srcs = [ | 
|  | 32 | +              (fetchFromGitHub { | 
|  | 33 | +                name = "InfiniTime"; | 
|  | 34 | +                owner = "shymega"; | 
|  | 35 | +                repo = "InfiniTime"; | 
|  | 36 | +                rev = "refs/heads/shymega-feat/nix-flake"; | 
|  | 37 | +                fetchSubmodules = true; | 
|  | 38 | +                leaveDotGit = true; | 
|  | 39 | +                sha256 = "sha256-3x4FubKg8xXJf4t1QjSRIE8FKh89/0yT67bStH+a3HQ="; | 
|  | 40 | +              }) | 
|  | 41 | +              (lib.cleanSource ./.) | 
|  | 42 | +            ]; | 
|  | 43 | +            sourceRoot = "."; | 
|  | 44 | + | 
|  | 45 | +            nativeBuildInputs = with pkgs; [ | 
|  | 46 | +              SDL2 | 
|  | 47 | +              libpng | 
|  | 48 | +              patch | 
|  | 49 | +              zlib | 
|  | 50 | +            ] ++ infinitime.nativeBuildInputs; | 
|  | 51 | + | 
|  | 52 | +            buildInputs = with pkgs; [ | 
|  | 53 | +              cmake | 
|  | 54 | +            ] ++ infinitime.buildInputs; | 
|  | 55 | + | 
|  | 56 | +            preConfigure = '' | 
|  | 57 | +              patchShebangs $sourceRoot/InfiniTime/src/displayapp/fonts/generate.py \ | 
|  | 58 | +                  $sourceRoot/InfiniTime/tools/mcuboot/imgtool.py \ | 
|  | 59 | +                  $sourceRoot/source/img/convert_bmp_to_header.py | 
|  | 60 | +            ''; | 
|  | 61 | + | 
|  | 62 | +            cmakeFlags = [ | 
|  | 63 | +              "-DInfiniTime_DIR=${sourceRoot}/InfiniTime" | 
|  | 64 | +            ]; | 
|  | 65 | +          }; | 
|  | 66 | +        }); | 
|  | 67 | + | 
|  | 68 | +      devShells = forAllSystems (pkgs: | 
|  | 69 | +        { | 
|  | 70 | +          default = | 
|  | 71 | +            pkgs.mkShell { | 
|  | 72 | +              packages = [ pkgs.ninja ] ++ self.packages.${pkgs.system}.default.nativeBuildInputs; | 
|  | 73 | +            }; | 
|  | 74 | +        }); | 
|  | 75 | +    }; | 
|  | 76 | +} | 
|  | 77 | +       | 
0 commit comments