{ lib, stdenv , fetchurl , cmake , bash , unzip , glibc , openssl , gcc , libGLU , libGL , freetype , xorg , alsa-lib , cairo , libuuid , libnsl , makeWrapper , ... }: { name, src, ... }: stdenv.mkDerivation rec { inherit name src; pharo-share = import ./share.nix { inherit lib stdenv fetchurl unzip; }; hardeningDisable = [ "format" "pic" ]; nativeBuildInputs = [ unzip cmake gcc makeWrapper ]; buildInputs = [ bash glibc openssl libGLU libGL freetype xorg.libX11 xorg.libICE xorg.libSM alsa-lib cairo pharo-share libnsl ]; LD_LIBRARY_PATH = lib.makeLibraryPath [ cairo libGLU libGL freetype openssl libuuid alsa-lib xorg.libICE xorg.libSM ]; preConfigure = '' cd build/ ''; # -fcommon is a workaround build failure on -fno-common toolchains like upstream # gcc-10. Otherwise build fails as: # ld: CMakeFiles/pharo.dir/build/pharo-vm-2016.02.18/src/vm/gcc3x-cointerp.c.o:(.bss+0x88): multiple definition of # `sendTrace'; CMakeFiles/pharo.dir/build/pharo-vm-2016.02.18/src/vm/cogit.c.o:(.bss+0x84): first defined here NIX_CFLAGS_COMPILE = "-fcommon"; installPhase = '' mkdir -p "$prefix/lib/$name" cd ../../results mv vm-display-null vm-display-null.so mv vm-display-X11 vm-display-X11.so mv vm-sound-null vm-sound-null.so mv vm-sound-ALSA vm-sound-ALSA.so mv pharo pharo-vm cp * "$prefix/lib/$name" mkdir $prefix/bin chmod u+w $prefix/bin cat > $prefix/bin/pharo-cog <