From 32e5853a54ffe51b375febb71d66923046c8aa6d Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Mon, 17 Mar 2025 11:58:58 +0000 Subject: [PATCH] depends: Avoid using helper variables in toolchain file Using helper variables has two issues: 1. They contaminate the global namespace of the main build script. 2. They can be used as `set(var)`, effectively exposing a cache variable `var`, which makes the toolchain file susceptible to the build environment. --- depends/toolchain.cmake.in | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/depends/toolchain.cmake.in b/depends/toolchain.cmake.in index ac24f74ad4f..7f5dd0dbbc8 100644 --- a/depends/toolchain.cmake.in +++ b/depends/toolchain.cmake.in @@ -97,43 +97,40 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT CMAKE_HOST_APPLE) endif() # Set configuration options for the main build system. -set(qt_packages @qt_packages@) -if("${qt_packages}" STREQUAL "") +# The depends/Makefile can generate values with "not-set" +# semantics as empty strings or strings containing only spaces. +# Therefore, MATCHES must be used rather than STREQUAL. +if("@qt_packages@" MATCHES "^[ ]*$") set(BUILD_GUI OFF CACHE BOOL "") else() set(BUILD_GUI ON CACHE BOOL "") endif() -set(qrencode_packages @qrencode_packages@) -if("${qrencode_packages}" STREQUAL "") +if("@qrencode_packages@" MATCHES "^[ ]*$") set(WITH_QRENCODE OFF CACHE BOOL "") else() set(WITH_QRENCODE ON CACHE BOOL "") endif() -set(zmq_packages @zmq_packages@) -if("${zmq_packages}" STREQUAL "") +if("@zmq_packages@" MATCHES "^[ ]*$") set(WITH_ZMQ OFF CACHE BOOL "") else() set(WITH_ZMQ ON CACHE BOOL "") endif() -set(wallet_packages @wallet_packages@) -if("${wallet_packages}" STREQUAL "") +if("@wallet_packages@" MATCHES "^[ ]*$") set(ENABLE_WALLET OFF CACHE BOOL "") else() set(ENABLE_WALLET ON CACHE BOOL "") endif() -set(bdb_packages @bdb_packages@) -if("${wallet_packages}" STREQUAL "" OR "${bdb_packages}" STREQUAL "") +if("@bdb_packages@" MATCHES "^[ ]*$") set(WITH_BDB OFF CACHE BOOL "") else() set(WITH_BDB ON CACHE BOOL "") endif() -set(usdt_packages @usdt_packages@) -if("${usdt_packages}" STREQUAL "") +if("@usdt_packages@" MATCHES "^[ ]*$") set(WITH_USDT OFF CACHE BOOL "") else() set(WITH_USDT ON CACHE BOOL "")