mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-21 04:49:01 +02:00
gobject-introspection: fix .override when the wrapper is in use
This commit is contained in:
parent
77085e9b2b
commit
d2e484dba2
|
@ -1,13 +1,22 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, buildPackages
|
||||
, gobject-introspection-unwrapped
|
||||
, targetPackages
|
||||
}:
|
||||
, gobject-introspection-unwrapped
|
||||
, ...
|
||||
}@_args:
|
||||
|
||||
# to build, run
|
||||
# `nix build ".#pkgsCross.aarch64-multiplatform.buildPackages.gobject-introspection"`
|
||||
gobject-introspection-unwrapped.overrideAttrs (_previousAttrs: {
|
||||
# 'nix build ".#pkgsCross.aarch64-multiplatform.buildPackages.gobject-introspection"'
|
||||
|
||||
let
|
||||
# ensure that `.override` works when gobject-introspection == gobject-introspection-wrapped
|
||||
args = builtins.removeAttrs _args [ "buildPackages" "targetPackages" "gobject-introspection-unwrapped" ];
|
||||
# passing this stdenv to `targetPackages...` breaks due to splicing not working in `.override``
|
||||
argsForTarget = builtins.removeAttrs args [ "stdenv" ];
|
||||
in
|
||||
|
||||
(gobject-introspection-unwrapped.override args).overrideAttrs (_previousAttrs: {
|
||||
pname = "gobject-introspection-wrapped";
|
||||
postFixup = ''
|
||||
mv $dev/bin/g-ir-compiler $dev/bin/.g-ir-compiler-wrapped
|
||||
|
@ -18,7 +27,7 @@ gobject-introspection-unwrapped.overrideAttrs (_previousAttrs: {
|
|||
export emulator=${lib.escapeShellArg (stdenv.targetPlatform.emulator buildPackages)}
|
||||
export buildprelink="${buildPackages.prelink}/bin/prelink-rtld"
|
||||
|
||||
export targetgir="${lib.getDev targetPackages.gobject-introspection-unwrapped}"
|
||||
export targetgir="${lib.getDev (targetPackages.gobject-introspection-unwrapped.override argsForTarget)}"
|
||||
|
||||
substituteAll "${./wrappers/g-ir-compiler.sh}" "$dev/bin/g-ir-compiler"
|
||||
substituteAll "${./wrappers/g-ir-scanner.sh}" "$dev/bin/g-ir-scanner"
|
||||
|
|
Loading…
Reference in a new issue