# unpackPhase # patchPhase # configurePhase # buildPhase # checkPhase # installPhase # fixupPhase # installCheckPhase # distPhase { stdenv, fetchFromGitHub, cmake, ninja, lib, lsb-release, copyDesktopItems, boost, glew, SDL2, SDL2_net, libpng, libX11, libXrandr, libXinerama, libXcursor, libXi, libXext, libpulseaudio, zenity, libzip, nlohmann_json, tinyxml-2, spdlog, ... }: stdenv.mkDerivation (finalAttrs: { name = "starship-game"; version = "v1.0.0"; src = fetchFromGitHub { owner = "harbourmasters"; repo = "starship"; tag = finalAttrs.version; hash = "sha256-kaLLlLuonqE2DJcRlWR4tCEBNjwIYFlzeDLcYsvMO7I="; fetchSubmodules = true; }; imgui_src = fetchFromGitHub { owner = "ocornut"; repo = "imgui"; tag = "v1.90.6-docking"; hash = "sha256-Y8lZb1cLJF48sbuxQ3vXq6GLru/WThR78pq7LlORIzc="; fetchSubmodules = true; }; stormlib_src = fetchFromGitHub { owner = "ladislav-zezula"; repo = "StormLib"; tag = "v9.25"; hash = "sha256-HTi2FKzKCbRaP13XERUmHkJgw8IfKaRJvsK3+YxFFdc="; fetchSubmodules = true; }; threadpool_src = fetchFromGitHub { owner = "bshoshany"; repo = "thread-pool"; tag = "v4.1.0"; hash = "sha256-zhRFEmPYNFLqQCfvdAaG5VBNle9Qm8FepIIIrT9sh88="; fetchSubmodules = true; }; libgfxd_src = fetchFromGitHub { owner = "glankk"; repo = "libgfxd"; rev = "96fd3b849f38b3a7c7b7f3ff03c5921d328e6cdf"; hash = "sha256-dedZuV0BxU6goT+rPvrofYqTz9pTA/f6eQcsvpDWdvQ="; fetchSubmodules = true; }; yaml_cpp_src = fetchFromGitHub { owner = "jbeder"; repo = "yaml-cpp"; rev = "f7320141120f720aecc4c32be25586e7da9eb978"; hash = "sha256-J87oS6Az1/vNdyXu3L7KmUGWzU0IAkGrGMUUha+xDXI="; fetchSubmodules = true; }; spdlog_src = fetchFromGitHub { owner = "gabime"; repo = "spdlog"; rev = "7e635fca68d014934b4af8a1cf874f63989352b7"; hash = "sha256-cxTaOuLXHRU8xMz9gluYz0a93O0ez2xOxbloyc1m1ns="; fetchSubmodules = true; }; # -DFETCHCONTENT_SOURCE_DIR_HELLO=/nix/store/...-hello/ # # This would get fetched at build time otherwise, see: # # https://github.com/HarbourMasters/Shipwright/blob/e46c60a7a1396374e23f7a1f7122ddf9efcadff7/soh/CMakeLists.txt#L736 # gamecontrollerdb = fetchurl { # name = "gamecontrollerdb.txt"; # url = "https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/075c1549075ef89a397fd7e0663d21e53a2485fd/gamecontrollerdb.txt"; # hash = "sha256-atjc0t921l6JSUAd/Yk7uup2R7mCp5ivAh6Dr7HBY7I="; # }; nativeBuildInputs = [ cmake ninja ] ++ lib.optionals stdenv.hostPlatform.isLinux [ lsb-release copyDesktopItems ]; buildInputs = [ boost glew SDL2 SDL2_net libpng libzip nlohmann_json tinyxml-2 spdlog ] ++ lib.optionals stdenv.hostPlatform.isLinux [ libX11 libXrandr libXinerama libXcursor libXi libXext libpulseaudio zenity ]; # cmakeFlags = [ # (lib.cmakeOptionType "PATH" "FETCHCONTENT_SOURCE_DIR_IMGUI" "${finalAttrs.imgui_src}") # (lib.cmakeOptionType "PATH" "FETCHCONTENT_SOURCE_DIR_STORMLIB" "${finalAttrs.stormlib_src}") # (lib.cmakeOptionType "PATH" "FETCHCONTENT_SOURCE_DIR_THREADPOOL" "${finalAttrs.threadpool_src}") # (lib.cmakeOptionType "PATH" "FETCHCONTENT_SOURCE_DIR_LIBGFXD" "${finalAttrs.libgfxd_src}") # (lib.cmakeOptionType "PATH" "FETCHCONTENT_SOURCE_DIR_YAML-CPP" "${finalAttrs.yaml_cpp_src}") # (lib.cmakeOptionType "PATH" "FETCHCONTENT_SOURCE_DIR_SPDLOG" "${finalAttrs.spdlog_src}") # ]; configurePhase = '' cmake -H. -Bbuild-cmake -GNinja \ -DFETCHCONTENT_SOURCE_DIR_IMGUI=${finalAttrs.imgui_src} \ -DFETCHCONTENT_SOURCE_DIR_STORMLIB=${finalAttrs.stormlib_src} \ -DFETCHCONTENT_SOURCE_DIR_THREADPOOL=${finalAttrs.threadpool_src} (cd tools/Torch && cmake -H. -Bbuild-cmake -GNinja \ -DFETCHCONTENT_SOURCE_DIR_LIBGFXD=${finalAttrs.libgfxd_src} \ -DFETCHCONTENT_SOURCE_DIR_YAML-CPP=${finalAttrs.yaml_cpp_src} \ -DFETCHCONTENT_SOURCE_DIR_SPDLOG=${finalAttrs.spdlog_src} ) ''; buildPhase = '' # Generate sf64.o2r # cmake --build build-cmake --target ExtractAssets # Compile the project # Add `--config Release` if you're packaging cmake --build build-cmake --config Release ''; # installPhase = '' # mkdir -p $out/bin # mv chord $out/bin # ''; # buildInputs = [ sqlite ]; # phases = [ # "installPhase" # ]; # installPhase = '' # runHook preInstall # mkdir -p $out/share/zsh/plugins/zsh-histdb # cp -r $src/histdb-* $src/*.zsh $src/db_migrations $out/share/zsh/plugins/zsh-histdb/ # runHook postInstall # ''; # postInstall = '' # substituteInPlace $out/share/zsh/plugins/zsh-histdb/sqlite-history.zsh $out/share/zsh/plugins/zsh-histdb/histdb-merge $out/share/zsh/plugins/zsh-histdb/histdb-migrate --replace-fail "sqlite3" "${sqlite}/bin/sqlite3" # ''; })