| 13 Jul 2021 |
siraben | In reply to @rick:matrix.ciphernetics.nl Hey! Just found out there's a room for cross-compilation :) it's awesome 😎 | 01:38:10 |
| 15 Jul 2021 |
piegames | How can I get a pkgs.pkgsCross.myCustomSystem? Where is pkgsCross defined? | 10:00:42 |
sterni | piegames: it populates the cross set with the attributes defined in lib/systems/examples.nix | 10:34:41 |
piegames | sterni (he/him): Yeah but what if it's not on the list? | 11:11:03 |
sterni | since you don't have access to nixpkgsFun it is a bit more cumbersome to emulate, something like this should work:
self: super: {
pkgsCross = super.pkgsCross // {
mySystem = import super.path (super.config // {
crossSystem = mySystemDefinition;
});
};
}
| 11:19:40 |
sterni | not sure usually you don't need the pkgsCross attribute desparately since it is the same as passing stuff to the crossSystem argument of nixpkgs | 11:21:54 |
sterni | it's just for convenience, really | 11:21:59 |
piegames | I see thank you | 11:31:51 |
piegames | Well, it has the disadvantage of having to import nixpkgs twice, since I need some native packages too | 11:32:12 |
sterni | piegames: you can always use buildPackages for that | 11:33:16 |
piegames | Oh interesting, I didn't know that | 11:35:05 |
piegames | Instead of libc = "newlib";, i need to use libnano. Is this generally possible in nixpkgs? | 12:26:50 |
sterni | libnano is not packaged so no | 12:27:29 |
sterni | but it is not impossible in general :) | 12:27:37 |
| 17 Jul 2021 |
symphorien | this PR is probably worth mentionning here: https://github.com/NixOS/nixpkgs/issues/130349 | 14:01:52 |
siraben | That seems like a good idea, it's recurring pattern in Nixpkgs and I sometimes have to second-guess what to compare. | 15:27:02 |
symphorien | It used to exist and was removed so I'd like yo hear why 😃 | 15:57:42 |
symphorien | I think there was stdenv.isCross | 17:23:11 |
Rick (Mindavi) | In reply to @symphorien:xlumurb.eu It used to exist and was removed so I'd like yo hear why 😃 John has a good point | 17:24:49 |
symphorien | Oh that's the reason | 17:27:00 |
Rick (Mindavi) | In short: there's no one-size-fits-all solution, and being explicit is better | 17:41:14 |
sterni | sometimes you'd need to check targetPlatform equality for example | 20:53:55 |
sterni | also x86_64 -> i686 is still cross compiling, but you could e. g. run tests | 20:54:18 |
sterni | so yeah one size does not fit all | 20:54:30 |
| 18 Jul 2021 |
| philipp joined the room. | 20:25:13 |
philipp | Can somebody explain to me where the non 32 bit version of the mingw headers are? One would assume it's pkgsCross.mingwW64.windows.mingw_w64_headers but that evalutes to /nix/store/m7mvg8ldx7fj0rliz60gjyrzy7rm6ig2-mingw-w64-x86_64-w64-mingw32-6.0.0-headers and throws an #error Only Win32 target is supported! error. | 20:27:15 |
philipp | Package for reference:
{ stdenv, lib, fetchFromGitHub, glslang, meson, ninja, wine, pkgsCross }:
stdenv.mkDerivation rec {
pname = "dxvk-installer";
version = "1.9";
src = fetchFromGitHub {
owner = "doitsujin";
repo = "dxvk";
rev = "v${version}";
sha256 = "01db23ncbrrq0cqnp25fg5plp88v5i5ri0i38m0wida8mw3mmjsa";
};
mesonFlags = [ "--cross-file build-win64.txt" "--buildtype release" ];
nativeBuildInputs = [
glslang
meson
ninja
pkgsCross.mingwW64.buildPackages.gcc
pkgsCross.mingwW64.windows.mingw_w64
pkgsCross.mingwW64.windows.mingw_w64_headers
wine
];
}
| 20:27:52 |
philipp | * Package for reference:
{ stdenv, lib, fetchFromGitHub, glslang, meson, ninja, wine, pkgsCross }:
stdenv.mkDerivation rec {
pname = "dxvk-installer";
version = "1.9";
src = fetchFromGitHub {
owner = "doitsujin";
repo = "dxvk";
rev = "v${version}";
sha256 = "01db23ncbrrq0cqnp25fg5plp88v5i5ri0i38m0wida8mw3mmjsa";
};
mesonFlags = [ "--cross-file build-win64.txt" "--buildtype release" ];
nativeBuildInputs = [
glslang
meson
ninja
pkgsCross.mingwW64.buildPackages.gcc
pkgsCross.mingwW64.windows.mingw_w64_headers
wine
];
}
| 20:52:35 |
| 19 Jul 2021 |
symphorien | You need to take all your packages from pkgCross.ming.... | 05:29:30 |
symphorien | The easiest way is to take callPackage from it like in https://nixos.wiki/wiki/Cross_Compiling | 05:31:46 |