@@ -42,6 +42,8 @@ endif()
4242
4343# Project structure ###########################################################
4444#
45+ get_property (isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
46+
4547# temporary build directories
4648if (NOT openPMD_ARCHIVE_OUTPUT_DIRECTORY)
4749 if (CMAKE_ARCHIVE_OUTPUT_DIRECTORY )
@@ -564,6 +566,7 @@ add_library(openPMD::openPMD ALIAS openPMD)
564566# properties
565567openpmd_cxx_required(openPMD)
566568set_target_properties (openPMD PROPERTIES
569+ COMPILE_PDB_NAME openPMD
567570 ARCHIVE_OUTPUT_DIRECTORY ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}
568571 LIBRARY_OUTPUT_DIRECTORY ${openPMD_LIBRARY_OUTPUT_DIRECTORY}
569572 RUNTIME_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
@@ -573,6 +576,20 @@ set_target_properties(openPMD PROPERTIES
573576 POSITION_INDEPENDENT_CODE ON
574577 WINDOWS_EXPORT_ALL_SYMBOLS ON
575578)
579+ # note: same as above, but for Multi-Config generators
580+ if (isMultiConfig)
581+ foreach (CFG IN LISTS CMAKE_CONFIGURATION_TYPES )
582+ string (TOUPPER "${CFG} " CFG_UPPER)
583+ set_target_properties (openPMD PROPERTIES
584+ COMPILE_PDB_NAME_${CFG_UPPER} openPMD
585+ ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY} /${CFG}
586+ LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY} /${CFG}
587+ RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
588+ PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PDB_OUTPUT_DIRECTORY} /${CFG}
589+ COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY} /${CFG}
590+ )
591+ endforeach ()
592+ endif ()
576593set (_cxx_msvc "$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:MSVC>>" )
577594set (_msvc_1914 "$<VERSION_GREATER_EQUAL:$<CXX_COMPILER_VERSION>,19.14>" )
578595set (_msvc_options)
@@ -644,6 +661,7 @@ if(openPMD_HAVE_ADIOS1)
644661 $<TARGET_PROPERTY:openPMD::thirdparty::toml11,INTERFACE_INCLUDE_DIRECTORIES >)
645662
646663 set_target_properties (openPMD.ADIOS1.Serial PROPERTIES
664+ COMPILE_PDB_NAME openPMD.ADIOS1.Serial
647665 ARCHIVE_OUTPUT_DIRECTORY ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}
648666 LIBRARY_OUTPUT_DIRECTORY ${openPMD_LIBRARY_OUTPUT_DIRECTORY}
649667 RUNTIME_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
@@ -654,6 +672,20 @@ if(openPMD_HAVE_ADIOS1)
654672 CXX_VISIBILITY_PRESET hidden
655673 VISIBILITY_INLINES_HIDDEN ON
656674 )
675+ # note: same as above, but for Multi-Config generators
676+ if (isMultiConfig)
677+ foreach (CFG IN LISTS CMAKE_CONFIGURATION_TYPES )
678+ string (TOUPPER "${CFG} " CFG_UPPER)
679+ set_target_properties (openPMD.ADIOS1.Serial PROPERTIES
680+ COMPILE_PDB_NAME_${CFG_UPPER} openPMD.ADIOS1.Serial
681+ ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY} /${CFG}
682+ LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY} /${CFG}
683+ RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${CMAKE_PYTHON_OUTPUT_DIRECTORY} /${CFG}
684+ PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PDB_OUTPUT_DIRECTORY} /${CFG}
685+ COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY} /${CFG}
686+ )
687+ endforeach ()
688+ endif ()
657689 if ("${CMAKE_SYSTEM_NAME} " MATCHES "Linux" )
658690 set_target_properties (openPMD.ADIOS1.Serial PROPERTIES
659691 LINK_FLAGS "-Wl,--exclude-libs,ALL" )
@@ -678,6 +710,7 @@ if(openPMD_HAVE_ADIOS1)
678710
679711 if (openPMD_HAVE_MPI)
680712 set_target_properties (openPMD.ADIOS1.Parallel PROPERTIES
713+ COMPILE_PDB_NAME openPMD.ADIOS1.Parallel
681714 ARCHIVE_OUTPUT_DIRECTORY ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}
682715 LIBRARY_OUTPUT_DIRECTORY ${openPMD_LIBRARY_OUTPUT_DIRECTORY}
683716 RUNTIME_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
@@ -688,6 +721,20 @@ if(openPMD_HAVE_ADIOS1)
688721 CXX_VISIBILITY_PRESET hidden
689722 VISIBILITY_INLINES_HIDDEN 1
690723 )
724+ # note: same as above, but for Multi-Config generators
725+ if (isMultiConfig)
726+ foreach (CFG IN LISTS CMAKE_CONFIGURATION_TYPES )
727+ string (TOUPPER "${CFG} " CFG_UPPER)
728+ set_target_properties (openPMD.ADIOS1.Parallel PROPERTIES
729+ COMPILE_PDB_NAME_${CFG_UPPER} opemPMD.ADIOS1.Parallel
730+ ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY} /${CFG}
731+ LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY} /${CFG}
732+ RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
733+ PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PDB_OUTPUT_DIRECTORY} /${CFG}
734+ COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY} /${CFG}
735+ )
736+ endforeach ()
737+ endif ()
691738 if ("${CMAKE_SYSTEM_NAME} " MATCHES "Linux" )
692739 set_target_properties (openPMD.ADIOS1.Parallel PROPERTIES
693740 LINK_FLAGS "-Wl,--exclude-libs,ALL" )
@@ -835,12 +882,27 @@ if(openPMD_HAVE_PYTHON)
835882 set_target_properties (openPMD.py PROPERTIES
836883 ARCHIVE_OUTPUT_NAME openpmd_api_cxx
837884 LIBRARY_OUTPUT_NAME openpmd_api_cxx
885+ COMPILE_PDB_NAME openpmd_api_cxx
838886 ARCHIVE_OUTPUT_DIRECTORY ${openPMD_PYTHON_OUTPUT_DIRECTORY} /openpmd_api
839887 LIBRARY_OUTPUT_DIRECTORY ${openPMD_PYTHON_OUTPUT_DIRECTORY} /openpmd_api
840888 RUNTIME_OUTPUT_DIRECTORY ${openPMD_PYTHON_OUTPUT_DIRECTORY} /openpmd_api
841889 PDB_OUTPUT_DIRECTORY ${openPMD_PYTHON_OUTPUT_DIRECTORY} /openpmd_api
842890 COMPILE_PDB_OUTPUT_DIRECTORY ${openPMD_PYTHON_OUTPUT_DIRECTORY} /openpmd_api
843891 )
892+ # note: same as above, but for Multi-Config generators
893+ if (isMultiConfig)
894+ foreach (CFG IN LISTS CMAKE_CONFIGURATION_TYPES )
895+ string (TOUPPER "${CFG} " CFG_UPPER)
896+ set_target_properties (openPMD.py PROPERTIES
897+ COMPILE_PDB_NAME_${CFG_UPPER} openpmd_api_cxx
898+ ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PYTHON_OUTPUT_DIRECTORY} /${CFG} /openpmd_api
899+ LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PYTHON_OUTPUT_DIRECTORY} /${CFG} /openpmd_api
900+ RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PYTHON_OUTPUT_DIRECTORY} /${CFG} /openpmd_api
901+ PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PYTHON_OUTPUT_DIRECTORY} /${CFG} /openpmd_api
902+ COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PYTHON_OUTPUT_DIRECTORY} /${CFG} /openpmd_api
903+ )
904+ endforeach ()
905+ endif ()
844906 function (copy_aux_py)
845907 set (AUX_PY_SRC_DIR ${openPMD_SOURCE_DIR} /src/binding/python/openpmd_api/)
846908 set (AUX_PY_DSR_DIR ${openPMD_PYTHON_OUTPUT_DIRECTORY} /openpmd_api/)
@@ -934,6 +996,30 @@ if(openPMD_BUILD_TESTING)
934996 POSITION_INDEPENDENT_CODE ON
935997 WINDOWS_EXPORT_ALL_SYMBOLS ON
936998 )
999+ set_target_properties (CatchRunner PROPERTIES COMPILE_PDB_NAME CatchRunner)
1000+ set_target_properties (CatchMain PROPERTIES COMPILE_PDB_NAME CatchMain)
1001+ # note: same as above, but for Multi-Config generators
1002+ if (isMultiConfig)
1003+ foreach (CFG IN LISTS CMAKE_CONFIGURATION_TYPES )
1004+ string (TOUPPER "${CFG} " CFG_UPPER)
1005+ set_target_properties (CatchRunner PROPERTIES
1006+ COMPILE_PDB_NAME_${CFG_UPPER} CatchRunner
1007+ ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY} /${CFG}
1008+ LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY} /${CFG}
1009+ RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1010+ PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PDB_OUTPUT_DIRECTORY} /${CFG}
1011+ COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY} /${CFG}
1012+ )
1013+ set_target_properties (CatchMain PROPERTIES
1014+ COMPILE_PDB_NAME_${CFG_UPPER} CatchMain
1015+ ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY} /${CFG}
1016+ LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY} /${CFG}
1017+ RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1018+ PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PDB_OUTPUT_DIRECTORY} /${CFG}
1019+ COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY} /${CFG}
1020+ )
1021+ endforeach ()
1022+ endif ()
9371023 target_compile_options (CatchRunner PUBLIC ${_msvc_options} )
9381024 target_compile_options (CatchMain PUBLIC ${_msvc_options} )
9391025 target_link_libraries (CatchRunner PUBLIC openPMD::thirdparty::Catch2)
@@ -947,12 +1033,27 @@ if(openPMD_BUILD_TESTING)
9471033 add_executable (${testname} Tests test /${testname} Test .cpp)
9481034 openpmd_cxx_required(${testname} Tests)
9491035 set_target_properties (${testname} Tests PROPERTIES
1036+ COMPILE_PDB_NAME ${testname} Tests
9501037 ARCHIVE_OUTPUT_DIRECTORY ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}
9511038 LIBRARY_OUTPUT_DIRECTORY ${openPMD_LIBRARY_OUTPUT_DIRECTORY}
9521039 RUNTIME_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
9531040 PDB_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
9541041 COMPILE_PDB_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
9551042 )
1043+ # note: same as above, but for Multi-Config generators
1044+ if (isMultiConfig)
1045+ foreach (CFG IN LISTS CMAKE_CONFIGURATION_TYPES )
1046+ string (TOUPPER "${CFG} " CFG_UPPER)
1047+ set_target_properties (${testname} Tests PROPERTIES
1048+ COMPILE_PDB_NAME_${CFG_UPPER} ${testname} Tests
1049+ ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY} /${CFG}
1050+ LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY} /${CFG}
1051+ RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1052+ PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1053+ COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1054+ )
1055+ endforeach ()
1056+ endif ()
9561057
9571058 if (openPMD_USE_INVASIVE_TESTS)
9581059 target_compile_definitions (${testname} Tests PRIVATE openPMD_USE_INVASIVE_TESTS=1)
@@ -977,12 +1078,27 @@ if(openPMD_BUILD_CLI_TOOLS)
9771078 add_executable (openpmd-${toolname} src/cli/${toolname} .cpp)
9781079 openpmd_cxx_required(openpmd-${toolname} )
9791080 set_target_properties (openpmd-${toolname} PROPERTIES
1081+ COMPILE_PDB_NAME openpmd-${toolname}
9801082 ARCHIVE_OUTPUT_DIRECTORY ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}
9811083 LIBRARY_OUTPUT_DIRECTORY ${openPMD_LIBRARY_OUTPUT_DIRECTORY}
9821084 RUNTIME_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
9831085 PDB_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
9841086 COMPILE_PDB_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
9851087 )
1088+ # note: same as above, but for Multi-Config generators
1089+ if (isMultiConfig)
1090+ foreach (CFG IN LISTS CMAKE_CONFIGURATION_TYPES )
1091+ string (TOUPPER "${CFG} " CFG_UPPER)
1092+ set_target_properties (openpmd-${toolname} PROPERTIES
1093+ COMPILE_PDB_NAME_${CFG_UPPER} openpmd-${toolname}
1094+ ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY} /${CFG}
1095+ LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY} /${CFG}
1096+ RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1097+ PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1098+ COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1099+ )
1100+ endforeach ()
1101+ endif ()
9861102
9871103 target_link_libraries (openpmd-${toolname} PRIVATE openPMD)
9881104 endforeach ()
@@ -1004,12 +1120,27 @@ if(openPMD_BUILD_EXAMPLES)
10041120 openpmd_cxx_required(${examplename} )
10051121 endif ()
10061122 set_target_properties (${examplename} PROPERTIES
1123+ COMPILE_PDB_NAME ${examplename}
10071124 ARCHIVE_OUTPUT_DIRECTORY ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}
10081125 LIBRARY_OUTPUT_DIRECTORY ${openPMD_LIBRARY_OUTPUT_DIRECTORY}
10091126 RUNTIME_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
10101127 PDB_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
10111128 COMPILE_PDB_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
10121129 )
1130+ # note: same as above, but for Multi-Config generators
1131+ if (isMultiConfig)
1132+ foreach (CFG IN LISTS CMAKE_CONFIGURATION_TYPES )
1133+ string (TOUPPER "${CFG} " CFG_UPPER)
1134+ set_target_properties (${examplename} PROPERTIES
1135+ COMPILE_PDB_NAME_${CFG_UPPER} ${examplename}
1136+ ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY} /${CFG}
1137+ LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY} /${CFG}
1138+ RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1139+ PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1140+ COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /${CFG}
1141+ )
1142+ endforeach ()
1143+ endif ()
10131144 target_link_libraries (${examplename} PRIVATE openPMD)
10141145 endforeach ()
10151146endif ()
@@ -1291,6 +1422,30 @@ if(openPMD_BUILD_TESTING)
12911422
12921423 # Python Unit tests
12931424 if (openPMD_HAVE_PYTHON)
1425+ function (test_set_pythonpath test_name)
1426+ if (WIN32 )
1427+ if (isMultiConfig)
1428+ string (REGEX REPLACE "/" "\\\\ " WIN_BUILD_BASEDIR ${openPMD_BINARY_DIR} /$<CONFIG>)
1429+ string (REGEX REPLACE "/" "\\\\ " WIN_BUILD_BINDIR ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /$<CONFIG>)
1430+ else ()
1431+ string (REGEX REPLACE "/" "\\\\ " WIN_BUILD_BASEDIR ${openPMD_BINARY_DIR} )
1432+ string (REGEX REPLACE "/" "\\\\ " WIN_BUILD_BINDIR ${openPMD_RUNTIME_OUTPUT_DIRECTORY} )
1433+ endif ()
1434+ string (REPLACE ";" "\\ ;" WIN_PATH "$ENV{PATH} " )
1435+ string (REPLACE ";" "\\ ;" WIN_PYTHONPATH "$ENV{PYTHONPATH} " )
1436+ set_property (TEST ${test_name}
1437+ PROPERTY ENVIRONMENT
1438+ "PATH=${WIN_BUILD_BINDIR} \\ ${CMAKE_BUILD_TYPE} \; ${WIN_PATH} \n "
1439+ "PYTHONPATH=${WIN_BUILD_BASEDIR} \\ ${openPMD_INSTALL_PYTHONDIR} \\ ${CMAKE_BUILD_TYPE} \; ${WIN_PYTHONPATH} "
1440+ )
1441+ else ()
1442+ set_tests_properties (${test_name}
1443+ PROPERTIES ENVIRONMENT
1444+ "PYTHONPATH=${openPMD_BINARY_DIR} /${openPMD_INSTALL_PYTHONDIR} :$ENV{PYTHONPATH} "
1445+ )
1446+ endif ()
1447+ endfunction ()
1448+
12941449 if (openPMD_HAVE_HDF5)
12951450 if (EXAMPLE_DATA_FOUND)
12961451 add_test (NAME Unittest.py
@@ -1299,22 +1454,7 @@ if(openPMD_BUILD_TESTING)
12991454 WORKING_DIRECTORY
13001455 ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
13011456 )
1302- if (WIN32 )
1303- string (REGEX REPLACE "/" "\\\\ " WIN_BUILD_BASEDIR ${openPMD_BINARY_DIR} )
1304- string (REGEX REPLACE "/" "\\\\ " WIN_BUILD_BINDIR ${openPMD_RUNTIME_OUTPUT_DIRECTORY} )
1305- string (REPLACE ";" "\\ ;" WIN_PATH "$ENV{PATH} " )
1306- string (REPLACE ";" "\\ ;" WIN_PYTHONPATH "$ENV{PYTHONPATH} " )
1307- set_property (TEST Unittest.py
1308- PROPERTY ENVIRONMENT
1309- "PATH=${WIN_BUILD_BINDIR} \\ ${CMAKE_BUILD_TYPE} \; ${WIN_PATH} \n "
1310- "PYTHONPATH=${WIN_BUILD_BASEDIR} \\ ${openPMD_INSTALL_PYTHONDIR} \\ ${CMAKE_BUILD_TYPE} \; ${WIN_PYTHONPATH} "
1311- )
1312- else ()
1313- set_tests_properties (Unittest.py
1314- PROPERTIES ENVIRONMENT
1315- "PYTHONPATH=${openPMD_BINARY_DIR} /${openPMD_INSTALL_PYTHONDIR} :$ENV{PYTHONPATH} "
1316- )
1317- endif ()
1457+ test_set_pythonpath(Unittest.py)
13181458 endif ()
13191459 endif ()
13201460 endif ()
@@ -1368,21 +1508,6 @@ if(openPMD_BUILD_TESTING)
13681508 endif ()
13691509 endif ()
13701510
1371- function (test_set_pythonpath test_name)
1372- if (WIN32 )
1373- set_property (TEST ${test_name}
1374- PROPERTY ENVIRONMENT
1375- "PATH=${WIN_BUILD_BINDIR} \\ ${CMAKE_BUILD_TYPE} \; ${WIN_PATH} \n "
1376- "PYTHONPATH=${WIN_BUILD_BASEDIR} \\ ${openPMD_INSTALL_PYTHONDIR} \\ ${CMAKE_BUILD_TYPE} \; ${WIN_PYTHONPATH} "
1377- )
1378- else ()
1379- set_tests_properties (${test_name}
1380- PROPERTIES ENVIRONMENT
1381- "PYTHONPATH=${openPMD_BINARY_DIR} /${openPMD_INSTALL_PYTHONDIR} :$ENV{PYTHONPATH} "
1382- )
1383- endif ()
1384- endfunction ()
1385-
13861511 # Python CLI Modules
13871512 if (openPMD_HAVE_PYTHON)
13881513 # (Note that during setuptools install, these are furthermore installed as
@@ -1469,25 +1594,6 @@ if(openPMD_BUILD_TESTING)
14691594 endif ()
14701595 endif ()
14711596
1472- function (configure_python_test testname)
1473- if (WIN32 )
1474- string (REGEX REPLACE "/" "\\\\ " WIN_BUILD_BASEDIR ${openPMD_BINARY_DIR} )
1475- string (REGEX REPLACE "/" "\\\\ " WIN_BUILD_BINDIR ${openPMD_RUNTIME_OUTPUT_DIRECTORY} )
1476- string (REPLACE ";" "\\ ;" WIN_PATH "$ENV{PATH} " )
1477- string (REPLACE ";" "\\ ;" WIN_PYTHONPATH "$ENV{PYTHONPATH} " )
1478- set_property (TEST ${testname}
1479- PROPERTY ENVIRONMENT
1480- "PATH=${WIN_BUILD_BINDIR} \\ ${CMAKE_BUILD_TYPE} \; ${WIN_PATH} \n "
1481- "PYTHONPATH=${WIN_BUILD_BASEDIR} \\ ${openPMD_INSTALL_PYTHONDIR} \\ ${CMAKE_BUILD_TYPE} \; ${WIN_PYTHONPATH} "
1482- )
1483- else ()
1484- set_tests_properties (${testname}
1485- PROPERTIES ENVIRONMENT
1486- "PYTHONPATH=${openPMD_BINARY_DIR} /${openPMD_INSTALL_PYTHONDIR} :$ENV{PYTHONPATH} "
1487- )
1488- endif ()
1489- endfunction ()
1490-
14911597
14921598 # Python Examples
14931599 # Current examples all use HDF5, elaborate if other backends are used
@@ -1522,14 +1628,14 @@ if(openPMD_BUILD_TESTING)
15221628 ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
15231629 )
15241630 endif ()
1525- configure_python_test (Example.py.${examplename} )
1631+ test_set_pythonpath (Example.py.${examplename} )
15261632 endif ()
15271633 endforeach ()
15281634 if (openPMD_HAVE_ADIOS2 AND openPMD_BUILD_TESTING AND NOT WIN32 )
15291635 add_test (NAME Asynchronous.10_streaming.py
15301636 COMMAND sh -c "${Python_EXECUTABLE} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /10_streaming_write.py & sleep 1; ${Python_EXECUTABLE} ${openPMD_RUNTIME_OUTPUT_DIRECTORY} /10_streaming_read.py"
15311637 WORKING_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY} )
1532- configure_python_test (Asynchronous.10_streaming.py)
1638+ test_set_pythonpath (Asynchronous.10_streaming.py)
15331639 endif ()
15341640 endif ()
15351641 endif ()
0 commit comments