diff --git a/ProcessLib/HeatTransportBHE/Tests.cmake b/ProcessLib/HeatTransportBHE/Tests.cmake index 1f97f770e7c94809d9652565dfcc1c2a6eb981fe..c3d6a2fdeb5d97febe0c73ca4a74684a6477dfee 100644 --- a/ProcessLib/HeatTransportBHE/Tests.cmake +++ b/ProcessLib/HeatTransportBHE/Tests.cmake @@ -89,7 +89,7 @@ AddTest( RUNTIME 50 EXECUTABLE ogs EXECUTABLE_ARGS 3bhes_1U.prj - WRAPPER poetry # required for PYTHON_PACKAGES + WRAPPER time TESTER vtkdiff REQUIREMENTS OGS_USE_PYTHON AND NOT OGS_USE_MPI PYTHON_PACKAGES TESPy=0.3.2 diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake index 13950af348cfc38ad19beb56f6093d33205886fa..5c07f1f8dea75e56a584015760a00c0e3df1516b 100644 --- a/scripts/cmake/ConanSetup.cmake +++ b/scripts/cmake/ConanSetup.cmake @@ -3,9 +3,11 @@ if(NOT OGS_USE_CONAN) endif() string(TOLOWER ${OGS_USE_CONAN} OGS_USE_CONAN_lower) if(OGS_USE_CONAN_lower STREQUAL "auto" AND POETRY) - execute_process( - COMMAND poetry add conan=${ogs.minimum_version.conan} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + execute_process(COMMAND ${CMD_COMMAND} poetry add conan=${ogs.minimum_version.conan}) + find_program(CONAN_CMD conan HINTS + ${PROJECT_BINARY_DIR}/.venv/bin + ${PROJECT_BINARY_DIR}/.venv/Scripts + REQUIRED NO_DEFAULT_PATH ) endif() find_program(CONAN_CMD conan HINTS ${PROJECT_BINARY_DIR}/.venv/bin) diff --git a/scripts/cmake/PreFind.cmake b/scripts/cmake/PreFind.cmake index 252127fc15bb11e7f52cd6685ad252e851f02e0b..783387ea358989c9d919d15163b08280e21f165d 100644 --- a/scripts/cmake/PreFind.cmake +++ b/scripts/cmake/PreFind.cmake @@ -85,6 +85,10 @@ if(IS_GIT_REPO AND NOT OGS_VERSION) ) endif() +if(MSVC) + set(CMD_COMMAND "cmd" "/c" CACHE INTERNAL "") +endif() + ### Python setup ### find_program(POETRY poetry) if(POETRY) @@ -95,13 +99,7 @@ if(POETRY) ${PROJECT_BINARY_DIR}/pyproject.toml) endif() if(NOT EXISTS ${PROJECT_BINARY_DIR}/.venv) - if(MSVC) - set(CMD_PREFIX cmd /C) - endif() - execute_process( - COMMAND ${CMD_PREFIX} ${POETRY} install - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} - ) + execute_process(COMMAND ${CMD_COMMAND} poetry install) endif() set(Python3_ROOT_DIR ${PROJECT_BINARY_DIR}/.venv) set(Python3_EXECUTABLE ${Python3_ROOT_DIR}/bin/python) @@ -116,6 +114,13 @@ else() find_package(Python3 ${ogs.minimum_version.python} COMPONENTS Interpreter) endif() if(POETRY) - set(Python3_VIRTUALENV_SITEPACKAGES - ${Python3_ROOT_DIR}/lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages) + if(MSVC) + file(TO_NATIVE_PATH "${Python3_ROOT_DIR}/Lib/site-packages" + Python3_VIRTUALENV_SITEPACKAGES) + string(REPLACE "\\" "\\\\" Python3_VIRTUALENV_SITEPACKAGES + ${Python3_VIRTUALENV_SITEPACKAGES}) + else() + set(Python3_VIRTUALENV_SITEPACKAGES + ${Python3_ROOT_DIR}/lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages) + endif() endif() diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake index ce12ca9fc8a81b0b355c9061383ea3b76f165470..fb18a77ae8509550c72c054ca1c1b7f43ef0d9e5 100644 --- a/scripts/cmake/test/AddTest.cmake +++ b/scripts/cmake/test/AddTest.cmake @@ -126,13 +126,6 @@ function (AddTest) message(STATUS "ERROR: mpirun was not found but is required for ${AddTest_NAME}!") return() endif() - elseif(AddTest_WRAPPER STREQUAL "poetry") - if(POETRY) - set(WRAPPER_COMMAND ${POETRY}) - set(AddTest_WRAPPER_ARGS "run") - else() - set(DISABLED_TESTS_LOG "${DISABLED_TESTS_LOG}\nDisabling poetry wrapper for ${AddTest_NAME} as poetry exe was not found!" CACHE INTERNAL "") - endif() endif() # --- Implement testers --- @@ -293,17 +286,10 @@ Use six arguments version of AddTest with absolute and relative tolerances") endif() if(AddTest_PYTHON_PACKAGES) - if(NOT AddTest_WRAPPER STREQUAL "poetry") - message(FATAL_ERROR "Benchmark ${AddTest_NAME} uses PYTHON_PACKAGES" - ", make sure to have the WRAPPER set to 'poetry'!") - endif() if(POETRY) - if(MSVC) - set(CMD_PREFIX cmd /C) - endif() execute_process( - COMMAND ${CMD_PREFIX} poetry add ${AddTest_PYTHON_PACKAGES} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + COMMAND ${CMD_COMMAND} poetry add ${AddTest_PYTHON_PACKAGES} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} ) else() message(STATUS "Warning: Benchmark ${AddTest_NAME} requires these "