When using FHSEnv in my project, cargo cant build ‘gdk-sys’ crate, because it dont see gdk-3.0.pc file, but it clearly specified and passed to PKG_CONFIG_PATH env variable.
shell.nix:
let
...
in
(pkgs.buildFHSEnv {
name = "money_counter_dev";
targetPkgs = pkgs: [
rust
] ++ (with pkgs; [
gcc
pkg-config
pkgsCross.mingwW64.stdenv.cc
]);
profile = ''
export RUST_BACKTRACE=1;
export CARGO_TARGET_X86_64_PC_WINDOWS_GNU_RUSTFLAGS="-L native=${pkgs.pkgsCross.mingwW64.windows.pthreads}/lib";
export PKG_CONFIG_PATH="${pkgs.gtk3.dev}/lib/pkgconfig:${pkgs.glib.dev}/lib/pkgconfig"
'';
runScript = ...
}).env
cargo check:
> PKG_CONFIG_PATH=/nix/store/m1v13sqd0h9qfvynrj20aqx17d5chkin-gtk+3-3.24.41-dev/lib/pkgconfig:/nix/store/gdr1ghkakyjfdj8bc6n0virwllm4zpwz-glib
-2.80.2-dev/lib/pkgconfig PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags gdk-3.0 gdk-3.0 >= 3.22
The system library `gdk-3.0` required by crate `gdk-sys` was not found.
The file `gdk-3.0.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory.
PKG_CONFIG_PATH contains the following:
- /nix/store/m1v13sqd0h9qfvynrj20aqx17d5chkin-gtk+3-3.24.41-dev/lib/pkgconfig
- /nix/store/gdr1ghkakyjfdj8bc6n0virwllm4zpwz-glib-2.80.2-dev/lib/pkgconfig
HINT: you may need to install a package such as gdk-3.0, gdk-3.0-dev or gdk-3.0-devel.
contents of /nix/store/m1v13sqd0h9qfvynrj20aqx17d5chkin-gtk+3-3.24.41-dev/lib/pkgconfig
dr-xr-xr-x 1 nobody nogroup 318 Jan 1 1970 .
dr-xr-xr-x 1 nobody nogroup 18 Jan 1 1970 ..
-r--r--r-- 1 nobody nogroup 361 Jan 1 1970 gail-3.0.pc
-r--r--r-- 1 nobody nogroup 696 Jan 1 1970 gdk-3.0.pc
...
Expecting pkg-config to build required crate
0
So its happens that gdk-3.0 required alot more libs that seems.
Solved by adding this enormous PKG_CONFIG_PATH env:
export PKG_CONFIG_PATH="${pkgs.gtk3.dev}/lib/pkgconfig:${pkgs.glib.dev}/lib/pkgconfig:${pkgs.cairo.dev}/lib/pkgconfig:${pkgs.pango.dev}/lib/pkgconfig:${pkgs.harfbuzz.dev}/lib/pkgconfig:${pkgs.gdk-pixbuf.dev}/lib/pkgconfig:${pkgs.atk.dev}/lib/pkgconfig"