Repository navigation
Expand file tree
/
Copy pathflake.nix
More file actions
48 lines (46 loc) · 1.72 KB
/
Copy pathflake.nix
File metadata and controls
48 lines (46 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
description = "tinymist flake: 自动拉取并编译主分支";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
tinymist-src.url = "github:Myriad-Dreamin/tinymist/main";
tinymist-src.flake = false; # 不需要将源代码作为一个flake输入
unisonSync = {
url = "path:tools/unison-sync";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
};
outputs = { self, nixpkgs, flake-utils, tinymist-src, unisonSync }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
syncPackage = unisonSync.packages.${system}.unison-sync;
in {
packages = {
default = pkgs.rustPlatform.buildRustPackage {
pname = "tinymist";
version = "main";
src = tinymist-src;
cargoHash = "sha256-TcaLTmRrg304xCfWrpQjRkIvQy6bjog2CB3e5Ks5MgU=";
CARGO_PROFILE_RELEASE_LTO = "fat";
buildType = "release";
RUSTFLAGS = "-C target-cpu=native";
doCheck = false;
};
unison-sync = syncPackage;
};
devShells.default = pkgs.mkShell {
# buildInputs = [ self.packages.${system}.default ];
nativeBuildInputs = [ self.packages.${system}.default ];
TINYMIST_OUT = "${self.packages.${system}.default}/bin";
shellHook = ''
# export PATH=$TINYMIST_OUT:$PATH
# echo "Tinymist binary is available in PATH."
'';
};
apps.default = unisonSync.apps.${system}.unison-sync;
apps.unison-sync = unisonSync.apps.${system}.unison-sync;
}
);
}