Live location tracking and playback for the game "manhunt"
1{
2 inputs = {
3 nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
4 flakelight.url = "github:nix-community/flakelight";
5 rust-overlay.url = "github:oxalica/rust-overlay";
6 rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
7 flakelight-treefmt.url = "github:m15a/flakelight-treefmt";
8 flakelight-treefmt.inputs.flakelight.follows = "flakelight";
9 };
10 outputs = {flakelight, ...} @ inputs:
11 flakelight ./. {
12 inherit inputs;
13 imports = [inputs.flakelight-treefmt.flakelightModules.default];
14 withOverlays = [inputs.rust-overlay.overlays.default];
15 nixpkgs.config = {
16 allowUnfree = true;
17 android_sdk.accept_license = true;
18 };
19
20 treefmtConfig = {pkgs, ...}: {
21 programs = {
22 alejandra.enable = true;
23 just.enable = true;
24 prettier.enable = true;
25 rustfmt.enable = true;
26 };
27 };
28
29 devShell = pkgs: let
30 buildToolsVersion = "34.0.0";
31 androidComposition = pkgs.androidenv.composeAndroidPackages {
32 platformVersions = [
33 "34"
34 "36"
35 "latest"
36 ];
37 systemImageTypes = ["google_apis_playstore"];
38 buildToolsVersions = [buildToolsVersion];
39 abiVersions = [
40 "armeabi-v7a"
41 "arm64-v8a"
42 "x86_64"
43 ];
44 includeNDK = true;
45 includeExtras = [
46 "extras;google;auto"
47 ];
48 };
49 in {
50 shellHook = let
51 ANDROID_HOME = "${androidComposition.androidsdk}/libexec/android-sdk";
52 in ''
53 export XDG_DATA_DIRS="$GSETTINGS_SCHEMAS_PATH"
54 export GIO_EXTRA_MODULES="${pkgs.dconf.lib}/lib/gio/modules:${pkgs.glib-networking}/lib/gio/modules"
55 export ANDROID_HOME=${ANDROID_HOME}
56 export NDK_HOME="${androidComposition.androidsdk}/libexec/android-sdk/ndk/${builtins.head (pkgs.lib.lists.reverseList (builtins.split "-" "${androidComposition.ndk-bundle}"))}"
57 export GRADLE_OPTS="-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_HOME}/build-tools/${buildToolsVersion}/aapt2"
58 '';
59 packages = with pkgs; [
60 at-spi2-atk
61 atkmm
62 cairo
63 gdk-pixbuf
64 glib
65 gtk3
66 alejandra
67 harfbuzz
68 librsvg
69 gradle
70 libsoup_3
71 just
72 pango
73 webkitgtk_4_1
74 cargo-nextest
75 openssl
76 pkg-config
77 gobject-introspection
78 nodePackages.prettier
79 (rust-bin.stable.latest.default.override {
80 targets = [
81 "aarch64-linux-android"
82 "armv7-linux-androideabi"
83 "i686-linux-android"
84 "x86_64-linux-android"
85 ];
86 })
87 cargo-tauri
88 nodejs
89 (android-studio.withSdk androidComposition.androidsdk)
90 ];
91 };
92 };
93}