S
Size: a a a
АБ
S
>[me@treeroot:~/rawr]$ cat it.nix
{
nixpkgs ? import <nixpkgs> {},
pkgs ? nixpkgs.pkgsCross.mingwW64,
stdenv ? pkgs.stdenv
}:
let
mysdl = pkgs.callPackage ./sdl2.nix {};
in
stdenv.mkDerivation rec {
name ="it";
nativeBuildInputs = [
nixpkgs.meson
nixpkgs.ninja
nixpkgs.pkg-config ];
buildInputs = [
mysdl ];
src = ./.;
}
>[me@treeroot:~/rawr]$ cat sdl2.nix
{
nixpkgs ? import <nixpkgs> {} ,
pkgs ? nixpkgs.pkgsCross.mingwW64,
stdenv ? pkgs.stdenv,
fetchurl ? pkgs.fetchurl,
} :
stdenv.mkDerivation rec {
pname = "SDL2";
version = "2.0.12";
src = fetchurl {
url = "https://www.libsdl.org/release/${pname}-${version}.tar.gz";
sha256 = "0qy8wbqvfkb5ps8kxgaaf2zzpkjqbsw712hlp74znbn0jpv6i4il";
};
buildInputs = [ ];
meta = with stdenv.lib; {
description = "SDL2 for windows";
};
}
>[me@treeroot:~/rawr]$ cat meson.build
project('itd', 'c')
sdldep = dependency('sdl2')
executable('itd', 'main.c', dependencies: sdldep, install : true)
>[me@treeroot:~/rawr]$ cat
it.nix main.c meson.build result/ sdl2.nix
>[me@treeroot:~/rawr]$ cat main.c
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("He\n");
return 0;
}
S
>[me@treeroot:~/rawr]$ nix build -f it.nix --show-trace --verbose
building '/nix/store/sx5rs338mab2ncw9sl83ijzy2w80lm94-it-x86_64-w64-mingw32.drv'...
builder for '/nix/store/sx5rs338mab2ncw9sl83ijzy2w80lm94-it-x86_64-w64-mingw32.drv' failed with exit code 1; last 10 log lines:
Build targets in project: 1
Found ninja-1.9.0 at /nix/store/32s826g956kqlglvnmx7d1vkyfwj69a4-ninja-1.9.0/bin/ninja
meson: enabled parallel building
building
build flags: -j8 -l8
[2/2] Linking target itd.d@exe/main.c.o'.
FAILED: itd
/nix/store/1v0410l20p343l6cvpijz8bi4if2ysh6-gcc-wrapper-9.2.0/bin/cc -o itd 'itd@exe/main.c.o' -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group /nix/store/vp7rg0im453lrz6m8gj9nf50k724wq2z-SDL2-2.0.12-x86_64-w64-mingw32/lib/libSDL2main.a -mwindows -L/nix/store/vp7rg0im453lrz6m8gj9nf50k724wq2z-SDL2-2.0.12-x86_64-w64-mingw32/lib -lmingw32 -lSDL2 -Wl,--end-group
gcc: error: unrecognized command line option '-mwindows'
ninja: build stopped: subcommand failed.
АБ
АБ
gcc-wrapper-9.2.0/bin/cc
не похож на кросс-компиляторАБ
АБ
let
pkgs = (import <nixpkgs> {}).pkgsCross.mingwW64;
in pkgs.callPackage ./it.nix { sdl2 = pkgs.callPackage ./sdl2.nix { }; }
{ stdenv, meson, ninja, pkg-config, sdl2 }:
stdenv.mkDerivation rec {
name ="it";
nativeBuildInputs = [
meson
ninja
pkg-config ];
buildInputs = [
sdl2 ];
src = ./.;
}
АБ
АБ
АБ
АБ
АБ
nativeBuildInputs
АБ