|
30 | 30 | version = lib.removeSuffix "\n" (builtins.readFile ./version); |
31 | 31 | pkgs = nixpkgs.legacyPackages.x86_64-linux; |
32 | 32 |
|
33 | | - src = lib.fileset.toSource { |
| 33 | + baseSrcFiles = [ |
| 34 | + ./COPYING |
| 35 | + ./README.md |
| 36 | + ./completions |
| 37 | + ./patchelf.1 |
| 38 | + ./patchelf.spec.in |
| 39 | + ./src |
| 40 | + ./tests |
| 41 | + ./version |
| 42 | + ]; |
| 43 | + |
| 44 | + autotoolsSrcFiles = [ |
| 45 | + ./Makefile.am |
| 46 | + ./configure.ac |
| 47 | + ./m4 |
| 48 | + ]; |
| 49 | + |
| 50 | + cmakeSrcFiles = [ |
| 51 | + ./CMakeLists.txt |
| 52 | + ]; |
| 53 | + |
| 54 | + autotoolsSrc = lib.fileset.toSource { |
34 | 55 | root = ./.; |
35 | | - fileset = lib.fileset.unions [ |
36 | | - ./COPYING |
37 | | - ./Makefile.am |
38 | | - ./README.md |
39 | | - ./completions |
40 | | - ./configure.ac |
41 | | - ./m4 |
42 | | - ./patchelf.1 |
43 | | - ./patchelf.spec.in |
44 | | - ./src |
45 | | - ./tests |
46 | | - ./version |
47 | | - ]; |
| 56 | + fileset = lib.fileset.unions (baseSrcFiles ++ autotoolsSrcFiles); |
48 | 57 | }; |
49 | 58 |
|
50 | 59 | patchelfFor = |
51 | 60 | pkgs: |
52 | | - pkgs.callPackage ./package.nix { |
53 | | - inherit version src; |
| 61 | + pkgs.callPackage ./package-autotools.nix { |
| 62 | + inherit version; |
| 63 | + src = autotoolsSrc; |
54 | 64 | }; |
55 | 65 |
|
56 | 66 | # We don't apply flake-parts to the whole flake so that non-development attributes |
|
76 | 86 | hydraJobs = { |
77 | 87 | tarball = pkgs.releaseTools.sourceTarball rec { |
78 | 88 | name = "patchelf-tarball"; |
79 | | - inherit version src; |
| 89 | + inherit version; |
| 90 | + src = lib.fileset.toSource { |
| 91 | + root = ./.; |
| 92 | + fileset = lib.fileset.unions (baseSrcFiles ++ autotoolsSrcFiles ++ cmakeSrcFiles); |
| 93 | + }; |
80 | 94 | versionSuffix = ""; # obsolete |
81 | 95 | preAutoconf = "echo ${version} > version"; |
82 | 96 |
|
|
117 | 131 | }) |
118 | 132 | ); |
119 | 133 |
|
| 134 | + build-cmake = forAllSystems (system: self.packages.${system}.patchelf-cmake); |
| 135 | + |
120 | 136 | # x86_64-linux seems to be only working clangStdenv at the moment |
121 | 137 | build-sanitized-clang = lib.genAttrs [ "x86_64-linux" ] ( |
122 | 138 | system: |
|
134 | 150 | self.hydraJobs.tarball |
135 | 151 | self.hydraJobs.build.x86_64-linux |
136 | 152 | self.hydraJobs.build.i686-linux |
| 153 | + self.hydraJobs.build-cmake.x86_64-linux |
137 | 154 | # FIXME: add aarch64 emulation to our github action... |
138 | 155 | #self.hydraJobs.build.aarch64-linux |
139 | 156 | self.hydraJobs.build-sanitized.x86_64-linux |
|
172 | 189 | }"; |
173 | 190 | }; |
174 | 191 | nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ |
| 192 | + #pkgs.buildPackages.cmake |
| 193 | + #pkgs.buildPackages.ninja |
175 | 194 | modular.pre-commit.settings.package |
176 | | - (pkgs.writeScriptBin "pre-commit-hooks-install" modular.pre-commit.settings.installationScript) |
| 195 | + (pkgs.buildPackages.writeScriptBin "pre-commit-hooks-install" modular.pre-commit.settings.installationScript) |
177 | 196 | ]; |
178 | 197 | } |
179 | 198 | ); |
|
194 | 213 |
|
195 | 214 | patchelfForWindowsStatic = |
196 | 215 | pkgs: |
197 | | - (pkgs.callPackage ./package.nix { |
198 | | - inherit version src; |
| 216 | + (pkgs.callPackage ./package-autotools.nix { |
| 217 | + inherit version; |
| 218 | + src = autotoolsSrc; |
199 | 219 | # On windows we use win32 threads to get a static binary, |
200 | 220 | # otherwise `-static` below doesn't work. |
201 | 221 | stdenv = pkgs.stdenv.override (old: { |
|
217 | 237 | patchelf = patchelfFor pkgs; |
218 | 238 | default = self.packages.${system}.patchelf; |
219 | 239 |
|
| 240 | + patchelf-cmake = pkgs.callPackage ./package-cmake.nix { |
| 241 | + inherit version; |
| 242 | + src = lib.fileset.toSource { |
| 243 | + root = ./.; |
| 244 | + fileset = lib.fileset.unions (baseSrcFiles ++ cmakeSrcFiles); |
| 245 | + }; |
| 246 | + }; |
| 247 | + |
220 | 248 | # This is a good test to see if packages can be cross-compiled. It also |
221 | 249 | # tests if our testsuite uses target-prefixed executable names. |
222 | 250 | patchelf-musl-cross = patchelfFor pkgs.pkgsCross.musl64; |
|
0 commit comments