From f47cd80b293c90e22e7ef2f7a55742e74997b95b Mon Sep 17 00:00:00 2001 From: John Ericson Date: Sat, 3 Jan 2026 13:12:24 -0500 Subject: [PATCH] bintools-wrapper: Also define `RC` Additionally, if there is a `windres` but no `rc`, `RC` is defined to point to `WINDRES`. My justification is essentially what I wrote in https://github.com/mesonbuild/meson/pull/15438. Microsoft recommends `RC`, CMake only supports `RC`, and Meson now supports both. In addition, CMake and Meson are fine with "reversed" usage like `RC=windres` and `WINDRES=rc`, so this simple defaulting logic should be fine. --- pkgs/build-support/bintools-wrapper/setup-hook.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/build-support/bintools-wrapper/setup-hook.sh b/pkgs/build-support/bintools-wrapper/setup-hook.sh index c146cbea80e4..93aa7825f9a9 100644 --- a/pkgs/build-support/bintools-wrapper/setup-hook.sh +++ b/pkgs/build-support/bintools-wrapper/setup-hook.sh @@ -55,7 +55,7 @@ fi export NIX_BINTOOLS${role_post}=@out@ for cmd in \ - ar as ld nm objcopy objdump readelf ranlib strip strings size windres + ar as ld nm objcopy objdump readelf ranlib strip strings size windres rc do if PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null @@ -64,6 +64,16 @@ do fi done +# If there is no `rc`, but there is a `windres`, define +# `RC=${WINDRES}`. +if + [[ ! -v "RC${role_post}" ]] && [[ -v "WINDRES${role_post}" ]] +then + windres_var="WINDRES${role_post}" + export "RC${role_post}=${!windres_var}" + unset -v windres_var +fi + # If unset, assume the default hardening flags. : ${NIX_HARDENING_ENABLE="@default_hardening_flags_str@"} export NIX_HARDENING_ENABLE