From bf711414a3ae60d4e5e26126ab1913722a9fbfd5 Mon Sep 17 00:00:00 2001 From: Steven Kearnes Date: Tue, 2 Jun 2026 02:23:27 -0400 Subject: [PATCH] Build: forward-slash Python3_EXECUTABLE when generating rdkit-stubs (#9318) The rdkit-stubs CMakeLists builds a cmake script (RUN_GEN_RDKIT_STUBS_PY) that is later run via cmake -P. Every path embedded in that generated script is converted to forward slashes first (CMAKE_SOURCE_DIR, CMAKE_CURRENT_BINARY_DIR, PYTHON_INSTDIR) so the backslashes in native Windows paths don't get treated as escape sequences when the script is re-parsed. Python3_EXECUTABLE was the one path that wasn't converted, so on Windows the generated COMMAND line contained backslashes and failed to parse. Apply the same forward-slash conversion to it for consistency. Co-authored-by: Claude Opus 4.7 (1M context) --- rdkit-stubs/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rdkit-stubs/CMakeLists.txt b/rdkit-stubs/CMakeLists.txt index 667db1aea..3efc33ec8 100644 --- a/rdkit-stubs/CMakeLists.txt +++ b/rdkit-stubs/CMakeLists.txt @@ -14,13 +14,14 @@ set(CONCURRENCY "") if (DEFINED ENV{CMAKE_BUILD_PARALLEL_LEVEL}) set(CONCURRENCY "--concurrency $ENV{CMAKE_BUILD_PARALLEL_LEVEL} ") endif() +string(REGEX REPLACE "\\\\" "/" Python3_EXECUTABLE_FWDSLASH ${Python3_EXECUTABLE}) string(CONCAT RUN_GEN_RDKIT_STUBS_PY "message(" "\"-- Building and Installing rdkit-stubs into the following director${DIR_OR_DIRS}: ${STUB_LOCATIONS}\")\n" "set (SEPARATOR \"=====================================================================\n\")\n" "set (COMMON_FILENAME ${CMAKE_CURRENT_BINARY_DIR_FWDSLASH}/gen_rdkit_stubs)\n" "execute_process(" "COMMAND " - "${Python3_EXECUTABLE} -m Scripts.gen_rdkit_stubs ${CONCURRENCY}" + "${Python3_EXECUTABLE_FWDSLASH} -m Scripts.gen_rdkit_stubs ${CONCURRENCY}" "${CMAKE_SOURCE_DIR_FWDSLASH_QUOTED}${PYTHON_INSTDIR_FWDSLASH_QUOTED}" "WORKING_DIRECTORY \"${CMAKE_SOURCE_DIR_FWDSLASH}\" " "OUTPUT_FILE \"\${COMMON_FILENAME}.out\" "