-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathflake.nix
More file actions
129 lines (127 loc) · 4.56 KB
/
flake.nix
File metadata and controls
129 lines (127 loc) · 4.56 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
{
description = "ssrjson flake";
inputs = {
ssrjson-nix-dev.url = "github:Antares0982/ssrjson-nix-dev/main";
};
outputs =
inputs@{
self,
ssrjson-nix-dev,
...
}:
let
platforms = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
];
nixpkgs = ssrjson-nix-dev.ssrjson-nixpkgs;
nixpkgs-legacy = ssrjson-nix-dev.ssrjson-nixpkgs-legacy;
forAllSystems =
function:
nixpkgs.lib.genAttrs platforms (
system:
function (
import nixpkgs {
inherit system;
}
)
);
ssrjson-devShells = ssrjson-nix-dev.devShells;
FreeThreadingUpdate = map (p: {
path = [
p
"default"
];
update = old: ssrjson-devShells.${p}.devenv-py314t;
}) platforms;
UseFreeThreadingByDefault = false;
in
{
inherit nixpkgs;
devShells =
if UseFreeThreadingByDefault then
(nixpkgs.lib.attrsets.updateManyAttrsByPath FreeThreadingUpdate ssrjson-devShells)
else
ssrjson-devShells;
packages = forAllSystems (
pkgs:
let
nixfiles = builtins.toPath ./ci/nixfiles;
pkgs-legacy = import nixpkgs-legacy { inherit (pkgs.stdenv.hostPlatform) system; };
versionUtils = pkgs.callPackage "${nixfiles}/version_utils.nix" { inherit pkgs-legacy; };
pythonVerConfig = versionUtils.pythonVerConfig;
stablePython = versionUtils.stablePython;
verToPackageDef = ver: {
name = "ssrjson-py3" + (builtins.toString ver);
value = pkgs.callPackage "${nixfiles}/build_package.nix" {
python = versionUtils.pyVerToPyPackage ver;
};
};
verToPackageDefNoGIL = ver: {
name = "ssrjson-py3" + (builtins.toString ver) + "t";
value = pkgs.callPackage "${nixfiles}/build_package.nix" {
python = versionUtils.pyVerToPyPackageNoGIL ver;
useNoGIL = true;
};
};
verToWheelDef = ver: {
name = "ssrjson-wheel-py3" + (builtins.toString ver);
value = pkgs.callPackage "${nixfiles}/build_wheel.nix" {
python = versionUtils.pyVerToPyPackage ver;
};
};
verToWheelDefNoGIL = ver: {
name = "ssrjson-wheel-py3" + (builtins.toString ver) + "t";
value = pkgs.callPackage "${nixfiles}/build_wheel.nix" {
python = versionUtils.pyVerToPyPackageNoGIL ver;
useNoGIL = true;
};
};
toPackageName = ver: "python3" + (toString ver) + "Packages";
verToPyPackageDef = ver: {
name = "ssrjson-pypackage-py3" + (builtins.toString ver);
value = pkgs.callPackage "${nixfiles}/build_py_package.nix" rec {
python = versionUtils.pyVerToPyPackage ver;
};
};
verToPyPackageDefNoGIL = ver: {
name = "ssrjson-pypackage-py3" + (builtins.toString ver) + "t";
value = pkgs.callPackage "${nixfiles}/build_py_package.nix" rec {
python = versionUtils.pyVerToPyPackageNoGIL ver;
useNoGIL = true;
};
};
ssrjsonPackages = builtins.listToAttrs (map verToPackageDef versionUtils.versions);
ssrjsonPackagesNoGIL = builtins.listToAttrs (
map verToPackageDefNoGIL versionUtils.versionsSupportNoGIL
);
ssrjsonWheels = builtins.listToAttrs (map verToWheelDef versionUtils.wheelBuildableVersions);
ssrjsonWheelsNoGIL = builtins.listToAttrs (
map verToWheelDefNoGIL versionUtils.wheelBuildableVersionsSupportNoGIL
);
ssrjsonPyPackages = builtins.listToAttrs (
map verToPyPackageDef versionUtils.wheelBuildableVersions
);
ssrjsonPyPackagesNoGIL = builtins.listToAttrs (
map verToPyPackageDefNoGIL versionUtils.wheelBuildableVersionsSupportNoGIL
);
ssrjsonDefaultPackage = builtins.getAttr (
"ssrjson-pypackage-py3" + (builtins.toString pythonVerConfig.curVer)
) ssrjsonPyPackages;
in
{
ssrjson-tarball = pkgs.callPackage "${nixfiles}/build_tarball.nix" {
python = stablePython;
};
default = ssrjsonDefaultPackage;
}
// ssrjsonPackages
// ssrjsonWheels
// ssrjsonPyPackages
// ssrjsonPackagesNoGIL
// ssrjsonWheelsNoGIL
// ssrjsonPyPackagesNoGIL
);
};
}