init
This commit is contained in:
commit
350b8ba0ef
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
.pre-commit-config.yaml
|
||||||
|
result*
|
20
LICENSE
Normal file
20
LICENSE
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
The MIT License
|
||||||
|
Copyright 2021 Simon Bruder
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
36
README.md
Normal file
36
README.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# pokegb-nix
|
||||||
|
|
||||||
|
A nixpkgs overlay for compiling/assembling Game Boy Pokémon ROMs.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
If you have a Nix version with flake support, simply run a command like this:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nix build ".#pokegb/red" # builds Pokémon Red/Blue
|
||||||
|
nix build ".#pokegb/all" # builds all ROMs into one directory
|
||||||
|
```
|
||||||
|
|
||||||
|
For the legacy Nix UI you can use a command like this:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nix-build -E 'import <nixpkgs> { overlays = [ (import ./default.nix) ]; }' -A pokegb.red
|
||||||
|
```
|
||||||
|
|
||||||
|
If you do not allow unfree packages globally, you might have to run the command
|
||||||
|
with the environment variable `NIXPKGS_ALLOW_UNFREE=1` set.
|
||||||
|
|
||||||
|
You can find a list of all packages provided by this overlay in `default.nix`.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[The MIT License](./LICENSE)
|
||||||
|
|
||||||
|
This only applies to the package expressions, not the built packages. Patches
|
||||||
|
may also be licensed differently, since they may be derivative works of the
|
||||||
|
packages to which they apply.
|
||||||
|
|
||||||
|
##### Disclaimer
|
||||||
|
|
||||||
|
This project is not affiliated with Nintendo or any of its subsidiaries.
|
||||||
|
Pokémon is a registered trademark of Nintendo.
|
1
default.nix
Normal file
1
default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
final: prev: { }
|
68
flake.lock
Normal file
68
flake.lock
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1623875721,
|
||||||
|
"narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "f7e004a55b120c02ecb6219596820fcd32ca8772",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-pre-commit-hooks": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1624971177,
|
||||||
|
"narHash": "sha256-Amf/nBj1E77RmbSSmV+hg6YOpR+rddCbbVgo5C7BS0I=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"rev": "397f0713d007250a2c7a745e555fa16c5dc8cadb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1628280432,
|
||||||
|
"narHash": "sha256-bqwbY8NtJ2S7RXJpYK0Xw0vMZRzmxS5KmSWIb0g7/Ts=",
|
||||||
|
"owner": "sbruder",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "bf6d934cf80e6f5365d3193e01840397709d4d87",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "sbruder",
|
||||||
|
"ref": "update-rgbds",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nix-pre-commit-hooks": "nix-pre-commit-hooks",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
50
flake.nix
Normal file
50
flake.nix
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
{
|
||||||
|
description = "A nixpkgs overlay for compiling/assembling Game Boy Pokémon ROMs";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
# Until https://github.com/NixOS/nixpkgs/pull/132928 gets merged, this fork
|
||||||
|
# has to be used because the ROMs require rgbds 0.5.1.
|
||||||
|
nixpkgs.url = "github:sbruder/nixpkgs/update-rgbds";
|
||||||
|
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
|
nix-pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix/master";
|
||||||
|
nix-pre-commit-hooks.inputs.flake-utils.follows = "flake-utils";
|
||||||
|
nix-pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils, nix-pre-commit-hooks }:
|
||||||
|
let
|
||||||
|
inherit (nixpkgs) lib;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
overlay = import ./default.nix;
|
||||||
|
} // (flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [ self.overlay ];
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
rec {
|
||||||
|
checks = {
|
||||||
|
pre-commit-check = nix-pre-commit-hooks.lib.${system}.run {
|
||||||
|
src = self;
|
||||||
|
hooks = {
|
||||||
|
nixpkgs-fmt.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
devShell = pkgs.mkShell {
|
||||||
|
inherit (self.checks.${system}.pre-commit-check) shellHook;
|
||||||
|
};
|
||||||
|
|
||||||
|
packages = flake-utils.lib.flattenTree {
|
||||||
|
inherit (pkgs);
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
}
|
Reference in a new issue