about summary refs log tree commit diff
path: root/pkgs/development/libraries
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2024-05-11 10:38:30 +0200
committerAlyssa Ross <hi@alyssa.is>2024-05-11 10:38:30 +0200
commit19bb0a96f41e639ea0b33dc92f9caa94d27e5a38 (patch)
tree0572b4e1af257734dcbfec437dd10db949bebbba /pkgs/development/libraries
parent0c9055e82379d4d788909ace2148b323ab3f015a (diff)
rutabaga_gfx: build for the right architecture
Previously, cross compiling rutabaga_gfx looked like it worked, but it
produced binaries for the build machine.  This prevented
cross-compiling QEMU with rutabaga_gfx support enabled.

Fixes: 28257606653c ("rutabaga_gfx: init at 0.1.2")
Diffstat (limited to 'pkgs/development/libraries')
-rw-r--r--pkgs/development/libraries/rutabaga_gfx/default.nix18
1 files changed, 13 insertions, 5 deletions
diff --git a/pkgs/development/libraries/rutabaga_gfx/default.nix b/pkgs/development/libraries/rutabaga_gfx/default.nix
index 6875002727357..9b8f5bec42f37 100644
--- a/pkgs/development/libraries/rutabaga_gfx/default.nix
+++ b/pkgs/development/libraries/rutabaga_gfx/default.nix
@@ -54,15 +54,23 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-wuF3Isrp+u5J8jPQoPsIOWYGNKLSNa2pLfvladAWkLs=";
   };
 
-  # make install always rebuilds
-  dontBuild = true;
+  CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.rustcTargetSpec;
+  "CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_LINKER" =
+    "${stdenv.cc.targetPrefix}cc";
 
-  makeFlags = [ "prefix=$(out)" ];
-
-  preInstall = ''
+  postConfigure = ''
     cd rutabaga_gfx/ffi
+    substituteInPlace Makefile --replace-fail pkg-config "$PKG_CONFIG"
   '';
 
+  # make install always rebuilds
+  dontBuild = true;
+
+  makeFlags = [
+    "prefix=$(out)"
+    "OUT=target/${stdenv.hostPlatform.rust.cargoShortTarget}/release"
+  ];
+
   meta = with lib; {
     homepage = "https://crosvm.dev/book/appendix/rutabaga_gfx.html";
     description = "cross-platform abstraction for GPU and display virtualization";