From 5c42e481d3341681b16b7bd99318aafb271f763f Mon Sep 17 00:00:00 2001 From: Joris Vaillant Date: Tue, 21 Nov 2023 23:44:48 +0100 Subject: [PATCH] stub: try to avoid have ; replace by list separator (5th try) --- stubs.cmake | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/stubs.cmake b/stubs.cmake index 984f86794..b770535e7 100644 --- a/stubs.cmake +++ b/stubs.cmake @@ -102,29 +102,29 @@ function(GENERATE_STUBS module_path module_name module_install_dir) set(ENV_PATH) set(optional_args ${ARGN}) if(WIN32) - # Ton of conflict between path separators, cmake lists separator and - # generator expression foreach(py_target IN LISTS optional_args) if(TARGET ${py_target}) set(_is_lib "$,SHARED_LIBRARY>") set(_target_dir "$") - set(_target_path "$<${_is_lib}:${_target_dir}>@${_target_path}") + set(_target_path $<${_is_lib}:${_target_dir}> ${_target_path}) endif() endforeach() - string(REPLACE ";" "@" _path_cmake $ENV{PATH}) - set(_path_cmake "${_target_path}${_path_cmake}") - string(REPLACE "@" "\\\;" _path_str ${_path_cmake}) - set(ENV_PATH "PATH=${_path_str}") + set(_path_native $ENV{PATH}) + file(TO_CMAKE_PATH "${_path_native}" _path_cmake) + set(_path_cmake ${_target_path} ${_path_cmake}) + # TODO in cmake 3.12 :( + list(JOIN _path_cmake "\\\;" _path_cmake) + set(ENV_PATH PATH=${_path_cmake}) endif() add_custom_target( ${target_name} ALL COMMAND - ${CMAKE_COMMAND} -E env PYTHONPATH=${PYTHONPATH} ${ENV_PATH} - "${PYTHON_EXECUTABLE}" "${STUBGEN_MAIN_FILE}" "-o" "${module_path}" - "${module_name}" "--boost-python" --ignore-invalid signature - "--no-setup-py" "--root-module-suffix" "" + ${CMAKE_COMMAND} -E env ${ENV_PATH} ${CMAKE_COMMAND} -E env + PYTHONPATH=${PYTHONPATH} "${PYTHON_EXECUTABLE}" "${STUBGEN_MAIN_FILE}" + "-o" "${module_path}" "${module_name}" "--boost-python" --ignore-invalid + signature "--no-setup-py" "--root-module-suffix" "" VERBATIM) foreach(py_target IN LISTS optional_args) if(TARGET ${py_target})