From d8c36cb25232bb661ccf373a8911910690aa7e92 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Mon, 7 Oct 2024 08:27:09 +0800 Subject: [PATCH] setuptoolsBuildHook: support __structuredAttrs Handle flags with appendToVar and concatTo. Stop Bash-expanding elements of setupPyGlobalFlags and setupPyBuildFlags. --- .../python/hooks/setuptools-build-hook.sh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh b/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh index 4c63a18eca43..7f20b1ab2c61 100644 --- a/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh +++ b/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh @@ -3,23 +3,25 @@ echo "Sourcing setuptools-build-hook" setuptoolsBuildPhase() { echo "Executing setuptoolsBuildPhase" - local args setuptools_has_parallel=@setuptools_has_parallel@ + local setuptools_has_parallel=@setuptools_has_parallel@ runHook preBuild cp -f @setuppy@ nix_run_setup - args="" - if [ -n "$setupPyGlobalFlags" ]; then - args+="$setupPyGlobalFlags" + local -a flagsArray=() + if [ -n "${setupPyGlobalFlags[*]-}" ]; then + concatTo flagsArray setupPyGlobalFlags fi if [ -n "$enableParallelBuilding" ]; then if [ -n "$setuptools_has_parallel" ]; then - setupPyBuildFlags+=" --parallel $NIX_BUILD_CORES" + appendToVar setupPyBuildFlags --parallel "$NIX_BUILD_CORES" fi fi - if [ -n "$setupPyBuildFlags" ]; then - args+=" build_ext $setupPyBuildFlags" + if [ -n "${setupPyBuildFlags[*]-}" ]; then + flagsArray+=(build_ext) + concatTo flagsArray setupPyBuildFlags fi - eval "@pythonInterpreter@ nix_run_setup $args bdist_wheel" + echoCmd 'setup.py build flags' "${flagsArray[@]}" + @pythonInterpreter@ nix_run_setup "${flagsArray[@]}" bdist_wheel runHook postBuild echo "Finished executing setuptoolsBuildPhase"