137 lines
3.6 KiB
Nix
137 lines
3.6 KiB
Nix
{ stdenv
|
|
, cd
|
|
, fetchurl
|
|
, lsb-release
|
|
, pkg-config
|
|
, gtk3
|
|
, webkitgtk_4_1
|
|
, libsoup_3
|
|
, im
|
|
, libGLU
|
|
, ftgl
|
|
, lua
|
|
, lib
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "iup";
|
|
version = "3.32";
|
|
|
|
src = fetchurl {
|
|
url = "mirror://sourceforge/iup/${version}/Docs%20and%20Sources/iup-${version}_Sources.tar.gz";
|
|
sha256 = "sha256-hx4X/KD7BNChO2jS/bmINZYzeCbqRMklTKOOPqu2pqU=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
lsb-release
|
|
pkg-config
|
|
];
|
|
|
|
buildInputs = [
|
|
gtk3
|
|
webkitgtk_4_1
|
|
libsoup_3
|
|
libGLU
|
|
lua
|
|
ftgl
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
cd
|
|
im
|
|
];
|
|
|
|
postPatch = ''
|
|
sed -i 's/\biupvled\b//g' Makefile
|
|
|
|
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"
|
|
"USE_PKGCONFIG=Yes"
|
|
"USE_LUA_VERSION=52"
|
|
"USE_GTK3=Yes"
|
|
"GTK_DEFAULT=Yes"
|
|
"LUA_SFX="
|
|
|
|
"CD_LIB=${cd}/lib"
|
|
"IM_LIB=${im}/lib"
|
|
"LUA_LIB=${lua}/lib"
|
|
"LUA_INC=${lua}/include"
|
|
];
|
|
|
|
NIX_CFLAGS_COMPILE = ''
|
|
-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 -liupcontrols -liup_plot -liupcd -liupim -liupimglib -liupole -liupweb
|
|
Cflags: -I${placeholder "out"}/include
|
|
Requires: cd im gtk+-3.0 glu ftgl
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/{bin,etc,include,lib/pkgconfig,share/lua/5.2}
|
|
mkdir -p $out/share/lua/5.2/{ctrl,elem,gl,lh,scripter}
|
|
|
|
cp -v lib/Linux*/*.so $out/lib/
|
|
cp -v lib/Linux*/*.a $out/lib/ || true
|
|
cp -vr include/*.h $out/include/
|
|
|
|
cp -v lib/Linux*/Lua*/*.so $out/lib/
|
|
cp -v lib/Linux*/Lua*/*.a $out/lib/ || true
|
|
|
|
cp -v srclua5/*.lua "$out/share/lua/5.2/"
|
|
cp -v srclua5/ctrl/*.lua "$out/share/lua/5.2/ctrl/"
|
|
cp -v srclua5/elem/*.lua "$out/share/lua/5.2/elem/"
|
|
cp -v srclua5/gl/*.lua "$out/share/lua/5.2/gl/"
|
|
cp -v srclua5/lh/*.lh "$out/share/lua/5.2/lh/"
|
|
cp -v srclua5/scripter/*.lua "$out/share/lua/5.2/scripter/"
|
|
|
|
ln -fs $out/lib/libiuplua52.so $out/share/lua/5.2/iuplua.so
|
|
ln -fs $out/lib/libiupluacd52.so $out/share/lua/5.2/iupluacd.so
|
|
ln -fs $out/lib/libiupluacontrols52.so $out/share/lua/5.2/iupluacontrols.so
|
|
ln -fs $out/lib/libiupluagl52.so $out/share/lua/5.2/iupluagl.so
|
|
ln -fs $out/lib/libiupluaglcontrols52.so $out/share/lua/5.2/iupluaglcontrols.so
|
|
ln -fs $out/lib/libiupluaim52.so $out/share/lua/5.2/iupluaim.so
|
|
ln -fs $out/lib/libiuplua_plot52.so $out/share/lua/5.2/iuplua_plot.so
|
|
ln -fs $out/lib/libiuplua_mglplot52.so $out/share/lua/5.2/iuplua_mglplot.so
|
|
ln -fs $out/lib/libiuplua_scintilla52.so $out/share/lua/5.2/iuplua_scintilla.so
|
|
ln -fs $out/lib/libiupluascripterdlg52.so $out/share/lua/5.2/iupluascripterdlg.so
|
|
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 -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
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "A portable toolkit for building graphical user interfaces";
|
|
license = licenses.mit;
|
|
maintainers = [ eko5z ];
|
|
platforms = with platforms; gnu ++ linux ++ darwin;
|
|
};
|
|
}
|