Skip to content

Commit

Permalink
Merge pull request #16 from jpotier/main
Browse files Browse the repository at this point in the history
Nix development environment and package
  • Loading branch information
laamaa authored Jul 22, 2021
2 parents f57f917 + 2552fe2 commit 3c3a306
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ font.c
build/
compile_commands.json
.clangd
result*
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,9 @@ The driver can be enabled with ```sudo raspi-config``` and selecting "Advanced o
Please note that with some configurations (for example, composite video) this can lead to not getting video output at all. If that happens, you can delete the row ```dtoverlay=vc4-kms-v3d``` in bottom of /boot/config.txt.

Further performance improvement can be achieved by not using X11 and running the program directly in framebuffer console, but this might require doing a custom build of SDL.

### Bonus: quickly install m8c locally with nix

``` sh
nix-env -iA m8c-stable -f https://github.com/laamaa/m8c/archive/refs/heads/main.tar.gz
```
46 changes: 46 additions & 0 deletions default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{ pkgs ? import <nixpkgs> {} }:

with pkgs;

# HOWTO keep this package definition up-to-date:
#
# 1. NEW VERSION:
# After the new version is tagged and pushed, update the `version` var to the
# proper value and update the hash. You can use the following command to find
# out the sha256, for example, with version 1.0.3:
# `nix-prefetch-github --rev v1.0.3 laamaa m8c`
#
# 2. NEW DEPENDENCIES:
# Make sure new dependencies are added. Runtime deps go to buildInputs and
# compile-time deps go to nativeBuildInputs. Use the nixpkgs manual for help
#
let m8c-package =
{ stdenv
, gnumake
, SDL2
, libserialport
, fetchFromGitHub
}:

let
pname = "m8c";
version = "1.0.3";
in
stdenv.mkDerivation {
inherit pname version;

src = fetchFromGitHub {
owner = "laamaa";
repo = pname;
rev = "v${version}";
hash = "sha256:0yrd6lnb2chgafhw1cz4awx2s1sws6mch5irvgyddgnsa8ishcr5";
};

installFlags = [ "PREFIX=$(out)" ];
nativeBuildInputs = [ gnumake ];
buildInputs = [ SDL2 libserialport ];
};
in {
m8c-stable = pkgs.callPackage m8c-package {};
m8c-dev = (pkgs.callPackage m8c-package {}).overrideAttrs (oldAttrs: {src = ./.;});
}
8 changes: 8 additions & 0 deletions shell.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{ pkgs ? import <nixpkgs> {} }:

with pkgs;

mkShell {
packages = with pkgs; [ nix-prefetch-github ];
inputsFrom = [ (import ./default.nix {}).m8c-dev ];
}

0 comments on commit 3c3a306

Please sign in to comment.