diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-04-28 14:39:00 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-06-10 08:52:36 +0000 |
commit | 693e64ef7421374338ddb1dc12b9573feec75972 (patch) | |
tree | 2526ac075d248699c35d63e04499890ee4381f5f /nixpkgs/pkgs/games/ja2-stracciatella/default.nix | |
parent | 7014df2256694d97093d6f2bb1db340d346dea88 (diff) | |
parent | 8e4fe32876ca15e3d5eb3ecd3ca0b224417f5f17 (diff) | |
download | nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.gz nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.bz2 nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.lz nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.xz nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.zst nixlib-693e64ef7421374338ddb1dc12b9573feec75972.zip |
Merge commit '8e4fe32876ca15e3d5eb3ecd3ca0b224417f5f17'
Diffstat (limited to 'nixpkgs/pkgs/games/ja2-stracciatella/default.nix')
-rw-r--r-- | nixpkgs/pkgs/games/ja2-stracciatella/default.nix | 56 |
1 files changed, 34 insertions, 22 deletions
diff --git a/nixpkgs/pkgs/games/ja2-stracciatella/default.nix b/nixpkgs/pkgs/games/ja2-stracciatella/default.nix index 4dfcc53d3397..4f186c3c60a1 100644 --- a/nixpkgs/pkgs/games/ja2-stracciatella/default.nix +++ b/nixpkgs/pkgs/games/ja2-stracciatella/default.nix @@ -1,45 +1,57 @@ -{ stdenv, fetchFromGitHub, cmake, SDL2, boost, fltk, rustPlatform }: +{ stdenv, lib, fetchurl, fetchFromGitHub, cmake, python, rustPlatform, SDL2, fltk, rapidjson, gtest, Carbon, Cocoa }: let - version = "0.16.1"; + version = "0.17.0"; src = fetchFromGitHub { owner = "ja2-stracciatella"; repo = "ja2-stracciatella"; rev = "v${version}"; - sha256 = "1pyn23syg70kiyfbs3pdlq0ixd2bxhncbamnic43rym3dmd52m29"; - }; - lockfile = ./Cargo.lock; - libstracciatellaSrc = stdenv.mkDerivation { - name = "libstracciatella-${version}-src"; - src = "${src}/rust"; - installPhase = '' - mkdir -p $out - cp -R ./* $out/ - cp ${lockfile} $out/Cargo.lock - ''; + sha256 = "0m6rvgkba29jy3yq5hs1sn26mwrjl6mamqnv4plrid5fqaivhn6j"; }; libstracciatella = rustPlatform.buildRustPackage { pname = "libstracciatella"; inherit version; - src = libstracciatellaSrc; - cargoSha256 = "15djs4xaz4y1hpfyfqxdgdasxr0b5idy9i5a7c8cmh0jkxjv8bqc"; - doCheck = false; + src = "${src}/rust"; + cargoSha256 = "0blb971cv9k6c460mwq3zq8vih687bdnb39b9gph1hr90pxjviba"; + + preBuild = '' + mkdir -p $out/include/stracciatella + export HEADER_LOCATION=$out/include/stracciatella/stracciatella.h + ''; + }; + stringTheoryUrl = "https://github.com/zrax/string_theory/archive/3.1.tar.gz"; + stringTheory = fetchurl { + url = stringTheoryUrl; + sha256 = "1flq26kkvx2m1yd38ldcq2k046yqw07jahms8a6614m924bmbv41"; }; in stdenv.mkDerivation { pname = "ja2-stracciatella"; - inherit src; - inherit version; + inherit src version; - nativeBuildInputs = [ cmake ]; - buildInputs = [ SDL2 fltk boost ]; + nativeBuildInputs = [ cmake python ]; + buildInputs = [ SDL2 fltk rapidjson gtest ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ]; patches = [ ./remove-rust-buildstep.patch ]; preConfigure = '' - sed -i -e 's|rust-stracciatella|${libstracciatella}/lib/libstracciatella.so|g' CMakeLists.txt - cmakeFlagsArray+=("-DEXTRA_DATA_DIR=$out/share/ja2") + # Use rust library built with nix + substituteInPlace CMakeLists.txt \ + --replace lib/libstracciatella_c_api.a ${libstracciatella}/lib/libstracciatella_c_api.a \ + --replace include/stracciatella ${libstracciatella}/include/stracciatella \ + --replace bin/ja2-resource-pack ${libstracciatella}/bin/ja2-resource-pack + + # Patch dependencies that are usually loaded by url + substituteInPlace dependencies/lib-string_theory/builder/CMakeLists.txt.in \ + --replace ${stringTheoryUrl} file://${stringTheory} + + cmakeFlagsArray+=("-DLOCAL_RAPIDJSON_LIB=OFF" "-DLOCAL_GTEST_LIB=OFF" "-DEXTRA_DATA_DIR=$out/share/ja2") + ''; + + doInstallCheck = true; + installCheckPhase = '' + HOME=/tmp $out/bin/ja2 -unittests ''; meta = { |