Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save MagnificentPako/ff66a6c2f0703ad842a58f703eb09665 to your computer and use it in GitHub Desktop.
Save MagnificentPako/ff66a6c2f0703ad842a58f703eb09665 to your computer and use it in GitHub Desktop.
with import <nixpkgs> {};
clangStdenv.mkDerivation {
name = "emojicode-0.7";
src = fetchFromGitHub {
owner = "emojicode";
repo = "emojicode";
sha256 = "0943vwnwbmfsi3hbhnznbv9k8x79adkckjbg30a7d8cfh1ilvcsh";
rev = "6496aba2a09ab2de9f23852628b24fab9c88233f";
};
setupHook = ./setup-hook.sh;
buildInputs = [ cmake gcc llvm_5 ncurses.dev ];
patchPhase = ''
sed -i 's/curses/ncurses/' Compiler/CMakeLists.txt
substituteInPlace Compiler/CLI/Options.cpp --replace /usr/local/EmojicodePackages "$out/EmojicodePackages"
substituteInPlace Compiler/Compiler.cpp --replace "cmd << linker_" "cmd << \"${pkgs.gcc}/bin/g++\""
'';
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/include/emojicode
mkdir $out/EmojicodePackages
mkdir $out/EmojicodePackages/s
mkdir $out/EmojicodePackages/sockets
mkdir $out/EmojicodePackages/files
mkdir $out/EmojicodePackages/runtime
cp ../runtime -r $out/include/emojicode/
cp ../s -r $out/include/emojicode/
cp Compiler/emojicodec $out/bin/
cp s/interface.emojii $out/EmojicodePackages/s
cp s/s.o $out/EmojicodePackages/s
cp s/libs.a $out/EmojicodePackages/s
cp sockets/interface.emojii $out/EmojicodePackages/sockets
cp sockets/sockets.o $out/EmojicodePackages/sockets
cp files/interface.emojii $out/EmojicodePackages/files
cp files/files.o $out/EmojicodePackages/files
cp files/libfiles.a $out/EmojicodePackages/files
cp runtime/libruntime.a $out/EmojicodePackages/runtime
'';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment