190 lines
4.9 KiB
Nix
190 lines
4.9 KiB
Nix
![]() |
# 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"
|
||
|
# '';
|
||
|
})
|