From fd78464de91d5d64dda217397586996e0b7ff37f Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Mon, 26 Nov 2018 18:00:08 -0600 Subject: [PATCH] premake: add setup-hook Adds a configure phase for packages using premake. premakeConfigurePhase runs the correct premake version for the premake you are using (see premake_cmd). --- pkgs/development/tools/misc/premake/3.nix | 3 +++ pkgs/development/tools/misc/premake/5.nix | 3 +++ .../tools/misc/premake/default.nix | 7 +++++-- .../tools/misc/premake/setup-hook.sh | 19 +++++++++++++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/tools/misc/premake/setup-hook.sh diff --git a/pkgs/development/tools/misc/premake/3.nix b/pkgs/development/tools/misc/premake/3.nix index 77f61386874..8b02bf96fd5 100644 --- a/pkgs/development/tools/misc/premake/3.nix +++ b/pkgs/development/tools/misc/premake/3.nix @@ -18,6 +18,9 @@ stdenv.mkDerivation { install -Dm755 bin/premake $out/bin/premake ''; + premake_cmd = "premake3"; + setupHook = ./setup-hook.sh; + meta = { homepage = http://industriousone.com/premake; description = "A simple build configuration and project generation tool using lua"; diff --git a/pkgs/development/tools/misc/premake/5.nix b/pkgs/development/tools/misc/premake/5.nix index 93220a02e2d..8ceb3d4a436 100644 --- a/pkgs/development/tools/misc/premake/5.nix +++ b/pkgs/development/tools/misc/premake/5.nix @@ -31,6 +31,9 @@ stdenv.mkDerivation rec { install -Dm755 bin/release/premake5 $out/bin/premake5 ''; + premake_cmd = "premake5"; + setupHook = ./setup-hook.sh; + meta = { homepage = https://premake.github.io; description = "A simple build configuration and project generation tool using lua"; diff --git a/pkgs/development/tools/misc/premake/default.nix b/pkgs/development/tools/misc/premake/default.nix index 770c8071095..99bf8cac81f 100644 --- a/pkgs/development/tools/misc/premake/default.nix +++ b/pkgs/development/tools/misc/premake/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation { sha256 = "1017rd0wsjfyq2jvpjjhpszaa7kmig6q1nimw76qx3cjz2868lrn"; }; - buildInputs = [ unzip ]; + nativeBuildInputs = [ unzip ]; buildPhase = '' make -C build/gmake.unix/ @@ -22,11 +22,14 @@ stdenv.mkDerivation { install -Dm755 bin/release/premake4 $out/bin/premake4 ''; + premake_cmd = "premake4"; + setupHook = ./setup-hook.sh; + meta = with stdenv.lib; { homepage = http://industriousone.com/premake; description = "A simple build configuration and project generation tool using lua"; license = stdenv.lib.licenses.bsd3; - platforms = platforms.linux; + platforms = platforms.unix; maintainers = [ maintainers.bjornfor ]; }; } diff --git a/pkgs/development/tools/misc/premake/setup-hook.sh b/pkgs/development/tools/misc/premake/setup-hook.sh new file mode 100644 index 00000000000..ba06ea2c761 --- /dev/null +++ b/pkgs/development/tools/misc/premake/setup-hook.sh @@ -0,0 +1,19 @@ +premakeConfigurePhase() { + runHook preConfigure + + local flagsArray=( + ${premakefile:+--file=$premakefile} + $premakeFlags ${premakeFlagsArray[@]} + ${premakeBackend:-gmake} + ) + + echoCmd 'configure flags' "${flagsArray[@]}" + + @premake_cmd@ "${flagsArray[@]}" + + runHook postConfigure +} + +if [ -z "$configurePhase" ]; then + configurePhase=premakeConfigurePhase +fi