Skip to content
Snippets Groups Projects
Verified Commit 07c7eba1 authored by Lars Bilke's avatar Lars Bilke
Browse files

[cmake] Collect python packages and run poetry add just once.

Packages to install are written to build/.python_packages during CMake
run and then installed once at the end of the CMake run via poetry add.

Speeds up CMake configure time a bit.
parent a83e7170
No related branches found
No related tags found
No related merge requests found
......@@ -226,6 +226,15 @@ endif()
include(UnityBuildSettings)
if(POETRY)
file(STRINGS ${PROJECT_BINARY_DIR}/.python_packages OGS_PYTHON_PACKAGES)
list(REMOVE_DUPLICATES OGS_PYTHON_PACKAGES)
execute_process(
COMMAND ${_CMD_COMMAND} poetry add ${OGS_PYTHON_PACKAGES}
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
endif()
file(WRITE ${PROJECT_BINARY_DIR}/disabled-tests.log "${DISABLED_TESTS_LOG}")
unset(DISABLED_TESTS_LOG CACHE) # Don't write to CMakeCache.txt
......
......@@ -23,6 +23,12 @@ if(OGS_USE_POETRY)
if(MSVC)
set(Python3_EXECUTABLE ${Python3_ROOT_DIR}/Scripts/python.exe)
endif()
file(WRITE ${PROJECT_BINARY_DIR}/.python_packages "")
if(OGS_BUILD_TESTING)
file(WRITE ${PROJECT_BINARY_DIR}/.python_packages
"snakemake=${ogs.minimum_version.snakemake}\n"
)
endif()
endif()
endif()
......@@ -53,13 +59,3 @@ set(LOCAL_VIRTUALENV_BIN_DIRS ${PROJECT_BINARY_DIR}/.venv/bin
${PROJECT_BINARY_DIR}/.venv/Scripts CACHE INTERNAL
""
)
if(POETRY)
if(OGS_BUILD_TESTING)
list(APPEND PYTHON_PACKAGES snakemake=${ogs.minimum_version.snakemake})
endif()
execute_process(
COMMAND ${_CMD_COMMAND} poetry add ${PYTHON_PACKAGES}
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
endif()
......@@ -435,16 +435,11 @@ Use six arguments version of AddTest with absolute and relative tolerances"
if(AddTest_PYTHON_PACKAGES)
if(POETRY)
file(WRITE ${PROJECT_BINARY_DIR}/tmp_poetry_add.bat
"poetry add ${AddTest_PYTHON_PACKAGES}"
string(REPLACE ";" "\n" PYTHON_PACKAGES
"${AddTest_PYTHON_PACKAGES}"
)
if(WIN32)
set(EXEC_CMD tmp_poetry_add.bat)
else()
set(EXEC_CMD ${BASH_TOOL_PATH} tmp_poetry_add.bat)
endif()
execute_process(
COMMAND ${EXEC_CMD} WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
file(APPEND ${PROJECT_BINARY_DIR}/.python_packages
${PYTHON_PACKAGES}
)
else()
message(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment