Skip to content

Commit 8bac235

Browse files
committed
ci,python: enable python win2022 serial build
1 parent 47ee5c3 commit 8bac235

File tree

11 files changed

+60
-53
lines changed

11 files changed

+60
-53
lines changed

.github/workflows/everything.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,14 +363,18 @@ jobs:
363363
matrix:
364364
os: [win2019, win2022]
365365
shared: [shared]
366-
parallel: [serial, msmpi]
366+
parallel: [msmpi]
367367
include:
368368
- os: win2019
369369
image: windows-2019
370370
compiler: vs2019
371371
- os: win2022
372372
image: windows-2022
373373
compiler: vs2022
374+
- os: win2022
375+
image: windows-2022
376+
compiler: vs2022
377+
parallel: serial
374378
- os: win2022
375379
image: windows-2022
376380
shared: static

bindings/Python/CMakeLists.txt

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,31 @@ target_link_libraries(adios2_py PRIVATE
2929
adios2::thirdparty::pybind11
3030
${maybe_mpi4py}
3131
)
32+
3233
configure_file(
3334
${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.in
3435
${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings/__init__.py
3536
@ONLY
3637
)
3738

39+
# usercustomize.py will be read by python before everything else.
40+
# This is needed for Windows since Windows requires to point Python to the dll
41+
# locations of ADIOS2 during our unit tests execution.
42+
configure_file(
43+
${CMAKE_CURRENT_SOURCE_DIR}/usercustomize.py.in
44+
${CMAKE_PYTHON_OUTPUT_DIRECTORY}/usercustomize.py
45+
@ONLY
46+
)
47+
48+
# We need the $<0:> for the Windows python unittests to work
3849
set_target_properties(adios2_py PROPERTIES
3950
CXX_VISIBILITY_PRESET hidden
4051
OUTPUT_NAME adios2_bindings${ADIOS2_LIBRARY_SUFFIX}
41-
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings
42-
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings
43-
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings
44-
PDB_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings
45-
COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings
52+
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings$<0:>
53+
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings$<0:>
54+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings$<0:>
55+
PDB_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings$<0:>
56+
COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_PYTHON_OUTPUT_DIRECTORY}/adios2/bindings$<0:>
4657
)
4758

4859
set(install_location "${CMAKE_INSTALL_PYTHONDIR}/adios2")
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"""This script is used to setup the testing environment for the project."""
2+
3+
import sys
4+
5+
if sys.platform.startswith("win"):
6+
import os
7+
from pathlib import Path
8+
os.add_dll_directory(Path(__file__).parent)
9+
for build_type in "@CMAKE_CONFIGURATION_TYPES@".split(";"):
10+
runtime_dir = Path("@CMAKE_RUNTIME_OUTPUT_DIRECTORY@") / build_type
11+
if runtime_dir.is_dir():
12+
os.add_dll_directory(runtime_dir)

cmake/ADIOSFunctions.cmake

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,14 @@ function(python_add_test)
8686
set_property(TEST ${ARGS_NAME} PROPERTY
8787
ENVIRONMENT
8888
"PYTHONPATH=${ADIOS2_BINARY_DIR}/${CMAKE_INSTALL_PYTHONDIR}:$ENV{PYTHONPATH}"
89+
"PYTHONUSERBASE=${CMAKE_BINARY_DIR}"
8990
)
9091
else()
9192
set_property(TEST ${ARGS_NAME} PROPERTY
9293
ENVIRONMENT
93-
"PYTHONPATH=${ADIOS2_BINARY_DIR}/${CMAKE_INSTALL_PYTHONDIR};$ENV{PYTHONPATH}"
94-
"PATH=$<TARGET_FILE_DIR:adios2_py>;$ENV{PATH}"
94+
"PYTHONPATH=${ADIOS2_BINARY_DIR}/${CMAKE_INSTALL_PYTHONDIR};$<SHELL_PATH:$<TARGET_FILE_DIR:adios2_py>>;$ENV{PYTHONPATH}"
95+
"PATH=$<SHELL_PATH:$<TARGET_FILE_DIR:adios2_py>>;$<SHELL_PATH:$<TARGET_FILE_DIR:adios2_core>>;$ENV{PATH}"
96+
"PYTHONUSERBASE=${CMAKE_BINARY_DIR}"
9597
)
9698
endif()
9799
endfunction()

scripts/ci/cmake/ci-win2019-vs2019-msmpi.cmake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,17 @@ ADIOS2_BUILD_EXAMPLES:BOOL=ON
1010
ADIOS2_USE_BZip2:BOOL=OFF
1111
ADIOS2_USE_Fortran:BOOL=OFF
1212
ADIOS2_USE_MPI:BOOL=ON
13-
ADIOS2_USE_Python=OFF
13+
ADIOS2_USE_Python:BOOL=ON
14+
15+
Python_ROOT_DIR:PATH=$ENV{CMAKE_PREFIX_PATH}
16+
Python_FIND_STRATEGY:STRING=LOCATION
17+
Python_FIND_FRAMEWORK:STRING=FIRST
1418
")
1519

1620
set(CTEST_TEST_TIMEOUT 500)
1721
set(CTEST_CMAKE_GENERATOR "Visual Studio 16 2019")
1822
set(CTEST_CMAKE_GENERATOR_PLATFORM "x64")
1923
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
24+
# https://github.com/ornladios/ADIOS2/issues/4276
25+
set(CTEST_TEST_ARGS EXCLUDE "Api.Python.FileReader")
2026
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)

scripts/ci/cmake/ci-win2019-vs2019-ninja.cmake

Lines changed: 0 additions & 21 deletions
This file was deleted.

scripts/ci/cmake/ci-win2019-vs2019-serial.cmake

Lines changed: 0 additions & 20 deletions
This file was deleted.

scripts/ci/cmake/ci-win2022-vs2022-msmpi.cmake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,16 @@ ADIOS2_USE_Fortran:BOOL=OFF
1212
ADIOS2_USE_MPI:BOOL=ON
1313
ADIOS2_USE_HDF5:STRING=ON
1414
ADIOS2_USE_HDF5_VOL:STRING=OFF
15-
ADIOS2_USE_Python=OFF
15+
ADIOS2_USE_Python:BOOL=ON
16+
17+
Python_ROOT_DIR:PATH=$ENV{CMAKE_PREFIX_PATH}
18+
Python_FIND_STRATEGY:STRING=LOCATION
19+
Python_FIND_FRAMEWORK:STRING=FIRST
1620
")
1721

1822
set(CTEST_CMAKE_GENERATOR "Visual Studio 17 2022")
1923
set(CTEST_CMAKE_GENERATOR_PLATFORM "x64")
2024
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
25+
# https://github.com/ornladios/ADIOS2/issues/4276
26+
set(CTEST_TEST_ARGS EXCLUDE "Api.Python.FileReader")
2127
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)

scripts/ci/cmake/ci-win2022-vs2022-serial.cmake

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,18 @@ ADIOS2_USE_BZip2:BOOL=OFF
1414
ADIOS2_USE_Fortran:BOOL=OFF
1515
ADIOS2_USE_MPI:BOOL=OFF
1616
ADIOS2_USE_HDF5:STRING=ON
17-
ADIOS2_USE_Python:BOOL=OFF
17+
ADIOS2_USE_Python:BOOL=ON
1818
ADIOS2_USE_HDF5_VOL:STRING=OFF
19+
20+
Python_ROOT_DIR:PATH=$ENV{CMAKE_PREFIX_PATH}
21+
Python_FIND_STRATEGY:STRING=LOCATION
22+
Python_FIND_FRAMEWORK:STRING=FIRST
1923
")
2024

2125
set(CTEST_CMAKE_GENERATOR "Visual Studio 17 2022")
2226
set(CTEST_CMAKE_GENERATOR_PLATFORM "x64")
2327
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
28+
# https://github.com/ornladios/ADIOS2/issues/4276
29+
set(CTEST_TEST_ARGS EXCLUDE "Api.Python.FileReader")
30+
2431
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)

scripts/ci/gh-actions/conda-env-win.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ variables:
44
dependencies:
55
- c-blosc2
66
- numpy>=1.19
7+
- python=3.10
78
- hdf5

0 commit comments

Comments
 (0)