Commit 49568fc7 authored by Bolea Sanchez, Vicente Adolfo's avatar Bolea Sanchez, Vicente Adolfo
Browse files

ci,python: enable python win2022 serial build

(cherry picked from commit eee1733d)
parent 2a3f2745
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -29,20 +29,31 @@ target_link_libraries(adios2_py PRIVATE
  adios2::thirdparty::pybind11
  ${maybe_mpi4py}
  )

configure_file(
  ${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.in
  ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings/__init__.py
  @ONLY
)

# usercustomize.py will be read by python before everything else.
# This is needed for Windows since Windows requires to point Python to the dll
# locations of ADIOS2 during our unit tests execution.
configure_file(
  ${CMAKE_CURRENT_SOURCE_DIR}/usercustomize.py.in
  ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/usercustomize.py
  @ONLY
)

# We need the $<0:> for the Windows python unittests to work
set_target_properties(adios2_py PROPERTIES
  CXX_VISIBILITY_PRESET hidden
  OUTPUT_NAME adios2_bindings${ADIOS2_LIBRARY_SUFFIX}
  ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings
  LIBRARY_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings
  RUNTIME_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings
  PDB_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings
  COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings
  ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings$<0:>
  LIBRARY_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings$<0:>
  RUNTIME_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings$<0:>
  PDB_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings$<0:>
  COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings$<0:>
)

set(install_location "${CMAKE_INSTALL_PYTHONDIR}/adios2")
+12 −0
Original line number Diff line number Diff line
"""This script is used to setup the testing environment for the project."""

import sys

if sys.platform.startswith("win"):
    import os
    from pathlib import Path
    os.add_dll_directory(Path(__file__).parent)
    for build_type in "@CMAKE_CONFIGURATION_TYPES@".split(";"):
        runtime_dir = Path("@CMAKE_RUNTIME_OUTPUT_DIRECTORY@") / build_type
        if runtime_dir.is_dir():
            os.add_dll_directory(runtime_dir)
+4 −2
Original line number Diff line number Diff line
@@ -86,12 +86,14 @@ function(python_add_test)
    set_property(TEST ${ARGS_NAME} PROPERTY
      ENVIRONMENT
        "PYTHONPATH=${ADIOS2_BINARY_DIR}/${CMAKE_INSTALL_PYTHONDIR}:$ENV{PYTHONPATH}"
        "PYTHONUSERBASE=${CMAKE_BINARY_DIR}"
    )
  else()
    set_property(TEST ${ARGS_NAME} PROPERTY
      ENVIRONMENT
        "PYTHONPATH=${ADIOS2_BINARY_DIR}/${CMAKE_INSTALL_PYTHONDIR};$ENV{PYTHONPATH}"
        "PATH=$<TARGET_FILE_DIR:adios2_py>;$ENV{PATH}"
        "PYTHONPATH=${ADIOS2_BINARY_DIR}/${CMAKE_INSTALL_PYTHONDIR};$<SHELL_PATH:$<TARGET_FILE_DIR:adios2_py>>;$ENV{PYTHONPATH}"
        "PATH=$<SHELL_PATH:$<TARGET_FILE_DIR:adios2_py>>;$<SHELL_PATH:$<TARGET_FILE_DIR:adios2_core>>;$ENV{PATH}"
        "PYTHONUSERBASE=${CMAKE_BINARY_DIR}"
    )
  endif()
endfunction()