pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / build-support / expand-response-params / default.nix
blob83972f6ed97a606a381c0fce215e6cebc172515f
1 { stdenv, lib }:
3 # A "response file" is a sequence of arguments that is passed via a
4 # file, rather than via argv[].
6 # For more information see:
7 # https://gcc.gnu.org/wiki/Response_Files
8 # https://www.intel.com/content/www/us/en/docs/dpcpp-cpp-compiler/developer-guide-reference/2023-0/use-response-files.html
10 stdenv.mkDerivation {
11   name = "expand-response-params";
12   src = ./expand-response-params.c;
13   strictDeps = true;
14   enableParallelBuilding = true;
15   # Work around "stdenv-darwin-boot-2 is not allowed to refer to path
16   # /nix/store/...-expand-response-params.c"
17   unpackPhase = ''
18     cp "$src" expand-response-params.c
19     src=$PWD
20   '';
21   buildPhase = ''
22     NIX_CC_USE_RESPONSE_FILE=0 "$CC" -std=c99 -O3 -o "expand-response-params" expand-response-params.c
23   '';
24   installPhase = ''
25     mkdir -p $prefix/bin
26     mv expand-response-params${stdenv.hostPlatform.extensions.executable} $prefix/bin/
27   '';
29   meta = {
30     description = "Internal tool used by the nixpkgs wrapper scripts for processing response files";
31     longDescription = ''
32       expand-response-params is a tool that allows for obtaining a full list of all
33       arguments passed in a given compiler command line including those passed via
34       so-called response files. The nixpkgs wrapper scripts for bintools and C
35       compilers use it for processing compiler flags. As it is developed in
36       conjunction with the nixpkgs wrapper scripts, it should be considered as
37       unstable and subject to change.
38     '';
39     license = lib.licenses.mit;
40     platforms = lib.platforms.all;
41     mainProgram = "expand-response-params${stdenv.hostPlatform.extensions.executable}";
42   };