Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
117 lines
2.8 KiB
Nix
117 lines
2.8 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
erlang,
|
|
cl,
|
|
libGL,
|
|
libGLU,
|
|
runtimeShell,
|
|
git,
|
|
eigen,
|
|
libigl,
|
|
nix-update-script,
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "wings";
|
|
version = "2.4.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "dgud";
|
|
repo = "wings";
|
|
tag = "v${version}";
|
|
hash = "sha256-3ulWbAOtYujaymN50u7buvnBdtYMEAe8Ji3arvPUH/s=";
|
|
};
|
|
|
|
nativeBuildInputs = [ git ];
|
|
buildInputs = [
|
|
erlang
|
|
cl
|
|
libGL
|
|
libGLU
|
|
eigen
|
|
libigl
|
|
cl
|
|
];
|
|
|
|
preBuildPhases = [ "setupDepsPhase" ];
|
|
setupDepsPhase = ''
|
|
mkdir -p _deps/eigen _deps/libigl
|
|
ln -s ${eigen}/include/eigen3/* _deps/eigen/
|
|
ln -s ${libigl}/include/* _deps/libigl/
|
|
ln -s ${cl}/lib/erlang/lib/cl* _deps/cl
|
|
'';
|
|
|
|
postPatch = ''
|
|
find . -type f -name "Makefile" -exec sed -i 's,-Werror ,,' {} \;
|
|
sed -i 's,../../wings/,../,' icons/Makefile
|
|
find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/src/,../../src/,' {} \;
|
|
find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/e3d/,../../e3d/,' {} \;
|
|
find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/intl_tools/,../../intl_tools/,' {} \;
|
|
find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/src/,../src/,' {} \;
|
|
find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/e3d/,../e3d/,' {} \;
|
|
find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/intl_tools/,../intl_tools/,' {} \;
|
|
echo "${version}" > version
|
|
'';
|
|
|
|
makeFlags = [
|
|
"TYPE=opt"
|
|
"WINGS_VSN=${version}"
|
|
];
|
|
|
|
preBuild = ''
|
|
mkdir -p priv
|
|
'';
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
|
|
make TYPE=opt WINGS_VSN=${version}
|
|
cd c_src
|
|
make
|
|
cd ..
|
|
|
|
runHook postBuild
|
|
'';
|
|
|
|
postBuild = ''
|
|
test -d ebin || exit 1
|
|
test -d priv || exit 1
|
|
'';
|
|
|
|
# I did not test the *cl* part. I added the -pa just by imitation.
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/bin $out/lib/wings-${version}/ebin $out/lib/wings-${version}/priv
|
|
cp -R ebin/* $out/lib/wings-${version}/ebin/
|
|
cp -R textures shaders plugins $out/lib/wings-${version}/
|
|
cp -R priv/* $out/lib/wings-${version}/priv/ || true
|
|
if [ -d c_src ]; then
|
|
find c_src -name "*.so" -exec cp {} $out/lib/wings-${version}/priv/ \;
|
|
fi
|
|
cat << EOF > $out/bin/wings
|
|
#!${runtimeShell}
|
|
${erlang}/bin/erl \
|
|
-pa $out/lib/wings-${version}/ebin -run wings_start start_halt "$@"
|
|
EOF
|
|
chmod +x $out/bin/wings
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
passthru = {
|
|
updateScript = nix-update-script { };
|
|
};
|
|
|
|
meta = {
|
|
homepage = "https://www.wings3d.com/";
|
|
description = "Subdivision modeler inspired by Nendo and Mirai from Izware";
|
|
license = lib.licenses.tcltk;
|
|
maintainers = [ ];
|
|
platforms = lib.platforms.linux;
|
|
mainProgram = "wings";
|
|
};
|
|
}
|