98 lines
1.9 KiB
Nix
98 lines
1.9 KiB
Nix
{ lib
|
|
, stdenv
|
|
, copyPkgconfigItems
|
|
, fetchFromGitHub
|
|
, makePkgconfigItem
|
|
, pkg-config
|
|
, SDL
|
|
, SDL_image
|
|
, SDL_mixer
|
|
, SDL_net
|
|
, SDL_ttf
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "sparrow3d";
|
|
version = "unstable-2020-10-06";
|
|
|
|
outputs = [ "out" "dev" ];
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "theZiz";
|
|
repo = "sparrow3d";
|
|
rev = "2033349d7adeba34bda2c442e1fec22377471134";
|
|
hash = "sha256-28j5nbTYBrMN8BQ6XrTlO1D8Viw+RiT3MAl99BAbhR4=";
|
|
};
|
|
|
|
pkgconfigItems = [
|
|
(makePkgconfigItem rec {
|
|
name = "sparrow3d";
|
|
inherit (finalAttrs) version;
|
|
inherit (finalAttrs.meta) description;
|
|
|
|
cflags = [ "-isystem${variables.includedir}" ];
|
|
libs = [
|
|
"-L${variables.libdir}"
|
|
"-lsparrow3d"
|
|
"-lsparrowNet"
|
|
"-lsparrowSound"
|
|
];
|
|
variables = rec {
|
|
prefix = "@dev@";
|
|
exec_prefix = "@out@";
|
|
includedir = "${prefix}/include";
|
|
libdir = "${exec_prefix}/lib";
|
|
};
|
|
})
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
copyPkgconfigItems
|
|
pkg-config
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
SDL.dev
|
|
SDL_image
|
|
SDL_ttf
|
|
SDL_mixer
|
|
SDL_net
|
|
];
|
|
|
|
postConfigure = ''
|
|
NIX_CFLAGS_COMPILE=$(pkg-config --cflags SDL_image SDL_ttf SDL_mixer SDL_net)
|
|
'';
|
|
|
|
buildFlags = [ "dynamic" ];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/lib
|
|
cp libsparrow{3d,Net,Sound}.so $out/lib
|
|
|
|
mkdir -p $dev/include
|
|
cp sparrow*.h $dev/include
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
doCheck = true;
|
|
|
|
checkPhase = ''
|
|
runHook preCheck
|
|
|
|
make all_no_static
|
|
./testfile.sh
|
|
|
|
runHook postCheck
|
|
'';
|
|
|
|
meta = {
|
|
homepage = "https://github.com/theZiz/sparrow3d";
|
|
description = "A software renderer for different open handhelds like the gp2x, wiz, caanoo and pandora";
|
|
license = lib.licenses.lgpl21;
|
|
maintainers = with lib.maintainers; [ colinsane ];
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
})
|