pkg-config files, some changes

This commit is contained in:
2026-03-25 15:13:38 +01:00
parent f1f90fff30
commit a60c64bcb6
4 changed files with 76 additions and 59 deletions
+15 -18
View File
@@ -1,16 +1,20 @@
{ stdenv
{ builtins
, stdenv
, fetchurl
, lsb-release
, pkg-config
, gtk3
, im
, libGL
, libGLU
, lua
, ftgl-tecgraf
, lib
}:
stdenv.mkDerivation rec {
let
makePc = import ./make-pc.nix { inherit lib builtins; };
in stdenv.mkDerivation rec {
pname = "cd";
version = "5.14";
@@ -26,6 +30,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3
libGL
libGLU
lua
ftgl-tecgraf
@@ -55,19 +60,10 @@ stdenv.mkDerivation rec {
-Wno-incompatible-pointer-types
'';
pc = ''
prefix=${placeholder "out"}
exec_prefix=${placeholder "out"}
libdir=${placeholder "out"}/lib
includedir=${placeholder "out"}/include
Name: CD
Description: A vector graphics toolkit with device independent output
Version: ${version}
Libs: -L${placeholder "out"}/lib -lcd -lcdcontextplus -lcdgl -lcdim
Cflags: -I${placeholder "out"}/include
Requires: im gtk+-3.0 glu
'';
cdPc = builtins.toFile "cd.pc" (makePc "cd" version "gdk-3.0 pango");
cdContextPlusPc = builtins.toFile "cdcontextplus.pc" (makePc "cdcontextplus" version "pangocairo cairo");
cdGlPc = builtins.toFile "cdgl.pc" (makePc "cdcontextplus" version "gl");
cdImPc = builtins.toFile "cdim.pc" (makePc "cdim" version "im");
installPhase = ''
runHook preInstall
@@ -86,9 +82,10 @@ Requires: im gtk+-3.0 glu
ln -fs $out/lib/libcdluagl52.so $out/share/lua/5.2/cdluagl.so
ln -fs $out/lib/libcdluaim52.so $out/share/lua/5.2/cdluaim.so
cat > $out/lib/pkgconfig/cd.pc <<EOF
${pc}
EOF
cp -v ${cdPc} $out/lib/pkgconfig/cd.pc
cp -v ${cdContextPlusPc} $out/lib/pkgconfig/cdcontextplus.pc
cp -v ${cdGlPc} $out/lib/pkgconfig/cdgl.pc
cp -v ${cdImPc} $out/lib/pkgconfig/cdim.pc
runHook postInstall
'';
+15 -20
View File
@@ -1,4 +1,5 @@
{ lib
{ builtins
, lib
, stdenv
, fetchurl
, lsb-release
@@ -9,7 +10,9 @@
, zlib
}:
stdenv.mkDerivation rec {
let
makePc = import ./make-pc.nix { inherit lib builtins; };
in stdenv.mkDerivation rec {
pname = "im";
version = "3.15";
@@ -30,7 +33,6 @@ stdenv.mkDerivation rec {
zlib
];
postPatch = ''
sed -i '1i#include <unistd.h>' src/libjasper2/base/jas_stream.c
'';
@@ -40,19 +42,11 @@ stdenv.mkDerivation rec {
"USE_LUA_VERSION=52"
];
pc = ''
prefix=${placeholder "out"}
exec_prefix=${placeholder "out"}
libdir=${placeholder "out"}/lib
includedir=${placeholder "out"}/include
Name: IM
Description: A toolkit for image representation, storage, capture and processing
Version: ${version}
Libs: -L${placeholder "out"} -lim -lim_jp2 -lim_process -lim_process_omp -lim_fftw3
Cflags: -I${placeholder "out"}/include
Requires: fftw3 libpng zlib
'';
imPc = builtins.toFile "im.pc" (makePc "im" version "libpng zlib");
imJp2Pc = builtins.toFile "im_jp2.pc" (makePc "im_jp2" version "im");
imProcessPc = builtins.toFile "im_process.pc" (makePc "im_process" version "im");
imProcessOmpPc = builtins.toFile "im_process_omp.pc" (makePc "im_process_omp" version "im");
imFftw3Pc = builtins.toFile "im_fftw3.pc" (makePc "im_fftw3" version "im_process fftw3");
installPhase = ''
runHook preInstall
@@ -72,10 +66,11 @@ Requires: fftw3 libpng zlib
ln -fs $out/lib/libimlua_process_omp52.so $out/share/lua/5.2/imlua_process_omp.so
ln -fs $out/lib/libimlua_fftw352.so $out/share/lua/5.2/imlua_fftw3.so
# Since IM doesn't supply it, provide pkg-config file.
cat > $out/lib/pkgconfig/im.pc <<EOF
${pc}
EOF
cp ${imPc} $out/lib/pkgconfig/im.pc
cp ${imJp2Pc} $out/lib/pkgconfig/im_jp2.pc
cp ${imProcessPc} $out/lib/pkgconfig/im_process.pc
cp ${imProcessOmpPc} $out/lib/pkgconfig/im_process_omp.pc
cp ${imFftw3Pc} $out/lib/pkgconfig/im_fftw3.pc
runHook postInstall
'';
+26 -21
View File
@@ -1,4 +1,5 @@
{ stdenv
{ builtins
, stdenv
, cd
, fetchurl
, lsb-release
@@ -7,13 +8,16 @@
, webkitgtk_4_1
, libsoup_3
, im
, libGL
, libGLU
, lua
, lib
, ftgl-tecgraf
}:
stdenv.mkDerivation rec {
let
makePc = import ./make-pc.nix { inherit lib builtins; };
in stdenv.mkDerivation rec {
pname = "iup";
version = "3.32";
@@ -31,6 +35,7 @@ stdenv.mkDerivation rec {
gtk3
webkitgtk_4_1
libsoup_3
libGL
libGLU
lua
ftgl-tecgraf
@@ -47,8 +52,7 @@ stdenv.mkDerivation rec {
substituteInPlace srcweb/config.mak \
--replace-fail "\$(GTK)/include/webkitgtk-4.1" "${webkitgtk_4_1.dev}/include/webkitgtk-4.1" \
--replace-fail "\$(GTK)/include/libsoup-3.0" "${libsoup_3.dev}/include/libsoup-3.0"
''
;
'';
makeFlags = [
"NO_DEPEND=Yes"
@@ -70,20 +74,16 @@ stdenv.mkDerivation rec {
-Wno-implicit-function-declaration
-Wno-incompatible-pointer-types
'';
pc = ''
prefix=${placeholder "out"}
exec_prefix=${placeholder "out"}
libdir=${placeholder "out"}/lib
includedir=${placeholder "out"}/include
Name: IUP
Description: A portable toolkit for building graphical user interfaces
Version: ${version}
Libs: -L${placeholder "out"}/lib -liup -liupgl -liupglcontrols -liupcontrols -liup_plot -liup_mglplot -liupcd -liupim -liupimglib -liup_scintilla -liuptuio -liupweb
Cflags: -I${placeholder "out"}/include
Requires: cd im gtk+-3.0 glu
'';
iupPc = builtins.toFile "iup.pc" (makePc "iup" version "gtk+-3.0");
iupglPc = builtins.toFile "iupgl.pc" (makePc "iupgl" version "gl glu");
iupcdPc = builtins.toFile "iupcd.pc" (makePc "iupcd" version "iup cd");
iupcontrolsPc = builtins.toFile "iupcontrols.pc" (makePc "iupcontrols" version "iupcd");
iupPlotPc = builtins.toFile "iup_plot.pc" (makePc "iup_plot" version "iupcd");
iupimPc = builtins.toFile "iupim.pc" (makePc "iupim" version "iup im");
iupimglibPc = builtins.toFile "iupimglib.pc" (makePc "iupimglib" version "iup");
iupwebPc = builtins.toFile "iupweb.pc" (makePc "iupweb" version "webkit2gtk-4.1");
installPhase = ''
runHook preInstall
@@ -118,14 +118,19 @@ Requires: cd im gtk+-3.0 glu
ln -fs $out/lib/libiupluaweb52.so $out/share/lua/5.2/iupluaweb.so
ln -fs $out/lib/libiupluaimglib52.so $out/share/lua/5.2/iupluaimglib.so
cp -v ${iupPc} $out/lib/pkgconfig/iup.pc
cp -v ${iupglPc} $out/lib/pkgconfig/iupgl.pc
cp -v ${iupcdPc} $out/lib/pkgconfig/iupcd.pc
cp -v ${iupcontrolsPc} $out/lib/pkgconfig/iupcontrols.pc
cp -v ${iupPlotPc} $out/lib/pkgconfig/iup_plot.pc
cp -v ${iupimPc} $out/lib/pkgconfig/iupim.pc
cp -v ${iupimglibPc} $out/lib/pkgconfig/iupimglib.pc
cp -v ${iupwebPc} $out/lib/pkgconfig/iupweb.pc
cp -vr bin/Linux*/* $out/bin/
chmod +x $out/bin/*
cp -r etc/* $out/etc
cat > $out/lib/pkgconfig/iup.pc <<EOF
${pc}
EOF
runHook postInstall
'';
+20
View File
@@ -0,0 +1,20 @@
{ lib, builtins }:
pkg: version: requires:
let
pcTemplate = ''
prefix=${placeholder "out"}
exec_prefix=${placeholder "out"}
libdir=${placeholder "out"}/lib
includedir=${placeholder "out"}/include
Name: @PKG@
Version: @VERSION@
Libs: -L${placeholder "out"}/lib -l@PKG@
Cflags: -I${placeholder "out"}/include
Requires: @REQUIRES@
'';
from = [ "@PKG@" "@VERSION@" "@REQUIRES@" ];
to = [ pkg version requires ];
in builtins.replaceStrings from to pcTemplate