libghostty-vt: emit resolved include/lib dirs in .pc files

`${prefix}/include` and `${prefix}/lib` are wrong under split-prefix installs (e.g. Nix multi-output).
Use `b.h_dir` / `b.lib_dir` instead and drop the unneeded Nix postInstall/postFixup hooks.

Co-Authored-By: Sander <hey@sandydoo.me>
This commit is contained in:
Domen Kožar
2026-04-15 18:15:41 +01:00
committed by Sander
parent 62fdd885e0
commit 38d6451d73
2 changed files with 20 additions and 17 deletions

View File

@@ -59,6 +59,9 @@ stdenv.mkDerivation (finalAttrs: {
"-Dapp-runtime=none"
"-Demit-lib-vt=true"
"-Dsimd=${lib.boolToString simd}"
# Install headers directly into the `dev` output
"--prefix-include-dir"
"${placeholder "dev"}/include"
];
zigCheckFlags = finalAttrs.zigBuildFlags ++ ["test-lib-vt"];
@@ -69,17 +72,10 @@ stdenv.mkDerivation (finalAttrs: {
postInstall = ''
mkdir -p "$dev/lib"
mv "$out/lib/libghostty-vt.a" "$dev/lib"
rm "$out/lib/libghostty-vt.so"
mv "$out/include" "$dev"
mv "$out/share" "$dev"
ln -sf "$out/lib/libghostty-vt.so.${lib.versions.major finalAttrs.version}" "$dev/lib/libghostty-vt.so"
mv "$out/lib/libghostty-vt.a" "$dev/lib/"
'';
postFixup = ''
substituteInPlace "$dev/share/pkgconfig/libghostty-vt.pc" \
--replace-fail "$out" "$dev"
substituteInPlace "$dev/share/pkgconfig/libghostty-vt-static.pc" \
--replace-fail "$out" "$dev"
'';
@@ -128,8 +124,7 @@ stdenv.mkDerivation (finalAttrs: {
runHook preBuildHooks
cc -o test test_libghostty_vt.c \
''$(pkg-config --cflags --libs libghostty-vt) \
-Wl,-rpath,"${finalAttrs.finalPackage}/lib"
''$(pkg-config --cflags --libs libghostty-vt)
runHook postBuildHooks
'';
@@ -207,8 +202,7 @@ stdenv.mkDerivation (finalAttrs: {
runHook preBuildHooks
cc -o test main.c \
''$(pkg-config --cflags --libs libghostty-vt) \
-Wl,-rpath,"${finalAttrs.finalPackage}/lib"
''$(pkg-config --cflags --libs libghostty-vt)
runHook postBuildHooks
'';

View File

@@ -371,8 +371,8 @@ fn pkgConfigFiles(
return .{
.shared = wf.add("libghostty-vt.pc", b.fmt(
\\prefix={s}
\\includedir=${{prefix}}/include
\\libdir=${{prefix}}/lib
\\includedir={s}
\\libdir={s}
\\
\\Name: libghostty-vt
\\URL: https://github.com/ghostty-org/ghostty
@@ -382,11 +382,18 @@ fn pkgConfigFiles(
\\Libs: -L${{libdir}} -lghostty-vt
\\Libs.private: {s}
\\Requires.private: {s}
, .{ b.install_prefix, zig.version, libs_private, requires_private })),
, .{
b.install_prefix,
b.h_dir,
b.lib_dir,
zig.version,
libs_private,
requires_private,
})),
.static = wf.add("libghostty-vt-static.pc", b.fmt(
\\prefix={s}
\\includedir=${{prefix}}/include
\\libdir=${{prefix}}/lib
\\includedir={s}
\\libdir={s}
\\
\\Name: libghostty-vt-static
\\URL: https://github.com/ghostty-org/ghostty
@@ -398,6 +405,8 @@ fn pkgConfigFiles(
\\Requires.private: {s}
, .{
b.install_prefix,
b.h_dir,
b.lib_dir,
zig.version,
staticLibraryName(os_tag),
libs_private,