From 1cfb74704423a4320ca7b91a6d8474fb11f55ecf Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Wed, 9 Oct 2024 09:33:23 -0700 Subject: [PATCH] CMake: Fix List of Pip Options We were not yet able to pass lists of options to `pip` commands in our `pip` CMake helper targets. This fixes it. --- CMakeLists.txt | 10 +++++++--- docs/source/install/cmake.rst | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a552d5fd9..2ad0166d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -394,9 +394,9 @@ install(CODE "file(CREATE_LINK # if(ImpactX_PYTHON) set(PY_PIP_OPTIONS "-v" CACHE STRING - "Additional parameters to pass to `pip`") + "Additional parameters to pass to `pip` as ; separated list") set(PY_PIP_INSTALL_OPTIONS "" CACHE STRING - "Additional parameters to pass to `pip install`") + "Additional parameters to pass to `pip install` as ; separated list") # add a prefix to custom targets so we do not collide if used as a subproject if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) @@ -412,7 +412,8 @@ if(ImpactX_PYTHON) ${CMAKE_COMMAND} -E rm -f -r impactx-whl COMMAND ${CMAKE_COMMAND} -E env PYIMPACTX_LIBDIR=$ - ${Python_EXECUTABLE} -m pip ${PY_PIP_OPTIONS} wheel --no-build-isolation --no-deps --wheel-dir=impactx-whl ${ImpactX_SOURCE_DIR} + ${Python_EXECUTABLE} -m pip ${PY_PIP_OPTIONS} wheel --no-build-isolation --no-deps --wheel-dir=impactx-whl "${ImpactX_SOURCE_DIR}" + COMMAND_EXPAND_LISTS VERBATIM WORKING_DIRECTORY ${ImpactX_BINARY_DIR} DEPENDS @@ -427,6 +428,7 @@ if(ImpactX_PYTHON) endif() add_custom_target(${ImpactX_CUSTOM_TARGET_PREFIX}pip_install_requirements ${Python_EXECUTABLE} -m pip ${PY_PIP_OPTIONS} install ${PY_PIP_INSTALL_OPTIONS} -r "${ImpactX_SOURCE_DIR}/${pyImpactX_REQUIREMENT_FILE}" + COMMAND_EXPAND_LISTS VERBATIM WORKING_DIRECTORY ${ImpactX_BINARY_DIR} ) @@ -444,6 +446,7 @@ if(ImpactX_PYTHON) add_custom_target(${ImpactX_CUSTOM_TARGET_PREFIX}pip_install ${CMAKE_COMMAND} -E env IMPACTX_MPI=${ImpactX_MPI} ${Python_EXECUTABLE} -m pip ${PY_PIP_OPTIONS} install --force-reinstall --no-index --no-deps ${PY_PIP_INSTALL_OPTIONS} --find-links=impactx-whl impactx + COMMAND_EXPAND_LISTS VERBATIM WORKING_DIRECTORY ${ImpactX_BINARY_DIR} DEPENDS @@ -456,6 +459,7 @@ if(ImpactX_PYTHON) add_custom_target(${ImpactX_CUSTOM_TARGET_PREFIX}pip_install_nodeps ${CMAKE_COMMAND} -E env IMPACTX_MPI=${ImpactX_MPI} ${Python_EXECUTABLE} -m pip ${PY_PIP_OPTIONS} install --force-reinstall --no-index --no-deps ${PY_PIP_INSTALL_OPTIONS} --find-links=impactx-whl impactx + COMMAND_EXPAND_LISTS VERBATIM WORKING_DIRECTORY ${ImpactX_BINARY_DIR} DEPENDS diff --git a/docs/source/install/cmake.rst b/docs/source/install/cmake.rst index 193fcbf2b..8fe5a85c7 100644 --- a/docs/source/install/cmake.rst +++ b/docs/source/install/cmake.rst @@ -112,8 +112,8 @@ CMake Option Default & Values Des ``ImpactX_PRECISION`` SINGLE/**DOUBLE** Floating point precision (single/double) ``ImpactX_PYTHON`` ON/**OFF** Python bindings ``Python_EXECUTABLE`` (newest found) Path to Python executable -``PY_PIP_OPTIONS`` ``-v`` Additional options for ``pip``, e.g., ``-vvv`` -``PY_PIP_INSTALL_OPTIONS`` Additional options for ``pip install``, e.g., ``--user`` +``PY_PIP_OPTIONS`` ``-v`` Additional options for ``pip``, e.g., ``-vvv;-q`` +``PY_PIP_INSTALL_OPTIONS`` Additional options for ``pip install``, e.g., ``--user;-q`` =============================== ============================================ =========================================================== ImpactX can be configured in further detail with options from AMReX, which are `documented in the AMReX manual `_.