diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/tools/build-managers/scons | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2 nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip |
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/tools/build-managers/scons')
4 files changed, 149 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix b/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix new file mode 100644 index 000000000000..740d04d853f7 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix @@ -0,0 +1,34 @@ +{ version, sha256 }: + +{ stdenv, fetchurl, python2Packages }: + +let name = "scons"; +in python2Packages.buildPythonApplication { + name = "${name}-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/scons/${name}-${version}.tar.gz"; + inherit sha256; + }; + + # Fix a regression in 3.0.0 (causes build errors for some packages) + patches = stdenv.lib.optional (version == "3.0.0") ./print-statements.patch; + + setupHook = ./setup-hook.sh; + + meta = with stdenv.lib; { + homepage = http://scons.org/; + description = "An improved, cross-platform substitute for Make"; + license = licenses.mit; + longDescription = '' + SCons is an Open Source software construction tool. Think of + SCons as an improved, cross-platform substitute for the classic + Make utility with integrated functionality similar to + autoconf/automake and compiler caches such as ccache. In short, + SCons is an easier, more reliable and faster way to build + software. + ''; + platforms = platforms.all; + maintainers = [ maintainers.primeos ]; + }; +} diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix b/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix new file mode 100644 index 000000000000..3bd31523412a --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix @@ -0,0 +1,18 @@ +{ callPackage }: + +let + mkScons = args: callPackage (import ./common.nix args) { }; +in { + scons_2_5_1 = mkScons { + version = "2.5.1"; + sha256 = "1wji1z9jdkhnmm99apx6fhld9cs52rr56aigniyrcsmlwy52298b"; + }; + scons_3_0_0 = mkScons { + version = "3.0.0"; + sha256 = "05jjykllk4icnq6gfrkgkbc4ggxm7983q6r33mrhpilqbd02ylqg"; + }; + scons_3_0_1 = mkScons { + version = "3.0.1"; + sha256 = "0wzid419mlwqw9llrg8gsx4nkzhqy16m4m40r0xnh6cwscw5wir4"; + }; +} diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/print-statements.patch b/nixpkgs/pkgs/development/tools/build-managers/scons/print-statements.patch new file mode 100644 index 000000000000..a963bf78abab --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/scons/print-statements.patch @@ -0,0 +1,13 @@ +diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py +index 558e28f9..8fea9c4d 100644 +--- src/engine/SCons/Script/SConscript.py ++++ src/engine/SCons/Script/SConscript.py +@@ -5,8 +5,6 @@ + + """ + +-from __future__ import print_function +- + # + # __COPYRIGHT__ + # diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/setup-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/scons/setup-hook.sh new file mode 100644 index 000000000000..55159aa5a93a --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/scons/setup-hook.sh @@ -0,0 +1,84 @@ +sconsBuildPhase() { + runHook preBuild + + if [ -n "$prefix" ]; then + mkdir -p "$prefix" + fi + + if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then + buildFlags="${prefixKey:-prefix=}$prefix $buildFlags" + fi + + local flagsArray=( + ${enableParallelBuilding:+-j${NIX_BUILD_CORES}} + $sconsFlags ${sconsFlagsArray[@]} + $buildFlags ${buildFlagsArray[@]} + ) + + echoCmd 'build flags' "${flagsArray[@]}" + scons "${flagsArray[@]}" + + runHook postBuild +} + +sconsInstallPhase() { + runHook preInstall + + if [ -n "$prefix" ]; then + mkdir -p "$prefix" + fi + + if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then + installFlags="${prefixKey:-prefix=}$prefix $installFlags" + fi + + local flagsArray=( + $sconsFlags ${sconsFlagsArray[@]} + $installFlags ${installFlagsArray[@]} + ${installTargets:-install} + ) + + echoCmd 'install flags' "${flagsArray[@]}" + scons "${flagsArray[@]}" + + runHook postInstall +} + +sconsCheckPhase() { + runHook preCheck + + if [ -z "${checkTarget:-}" ]; then + if scons -n check >/dev/null 2>&1; then + checkTarget=check + elif scons -n test >/dev/null 2>&1; then + checkTarget=test + fi + fi + + if [ -z "${checkTarget:-}" ]; then + echo "no check/test target found, doing nothing" + else + local flagsArray=( + ${enableParallelChecking:+-j${NIX_BUILD_CORES}} + $sconsFlags ${sconsFlagsArray[@]} + ${checkFlagsArray[@]} + ) + + echoCmd 'check flags' "${flagsArray[@]}" + scons "${flagsArray[@]}" + fi + + runHook postCheck +} + +if [ -z "$buildPhase" ]; then + buildPhase=sconsBuildPhase +fi + +if [ -z "$dontUseSconsInstall" -a -z "$installPhase" ]; then + installPhase=sconsInstallPhase +fi + +if [ -z "$checkPhase" ]; then + checkPhase=sconsCheckPhase +fi |