openPMD-api 0.15.2__tar.gz → 0.16.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/CMakeLists.txt +54 -345
  2. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/PKG-INFO +47 -28
  3. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/README.md +29 -26
  4. openpmd_api-0.16.1/cmake/dependencies/catch.cmake +74 -0
  5. openpmd_api-0.16.1/cmake/dependencies/json.cmake +74 -0
  6. openpmd_api-0.16.1/cmake/dependencies/pybind11.cmake +101 -0
  7. openpmd_api-0.16.1/cmake/dependencies/toml11.cmake +82 -0
  8. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/10_streaming_read.cpp +12 -9
  9. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/10_streaming_write.py +1 -1
  10. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/11_particle_dataframe.py +21 -0
  11. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/12_span_write.cpp +24 -3
  12. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/13_write_dynamic_configuration.cpp +1 -5
  13. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/13_write_dynamic_configuration.py +1 -4
  14. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/1_structure.cpp +1 -2
  15. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/2_read_serial.cpp +15 -12
  16. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/2_read_serial.py +1 -1
  17. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/2a_read_thetaMode_serial.cpp +2 -0
  18. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/2a_read_thetaMode_serial.py +2 -0
  19. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/3_write_serial.cpp +1 -2
  20. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/3_write_serial.py +1 -1
  21. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/4_read_parallel.cpp +15 -3
  22. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/5_write_parallel.cpp +22 -5
  23. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/5_write_parallel.py +25 -5
  24. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/7_extended_write_serial.cpp +5 -15
  25. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/7_extended_write_serial.py +5 -10
  26. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/8_benchmark_parallel.cpp +5 -4
  27. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/8a_benchmark_write_parallel.cpp +5 -8
  28. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/8b_benchmark_read_parallel.cpp +2 -3
  29. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/9_particle_write_serial.py +4 -4
  30. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/ChunkInfo.hpp +60 -0
  31. openpmd_api-0.16.1/include/openPMD/ChunkInfo_internal.hpp +67 -0
  32. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/Dataset.hpp +11 -0
  33. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/Datatype.hpp +53 -1
  34. openpmd_api-0.16.1/include/openPMD/Datatype.tpp +258 -0
  35. openpmd_api-0.16.1/include/openPMD/DatatypeMacros.hpp +115 -0
  36. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/Error.hpp +4 -3
  37. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/ADIOS/ADIOS2Auxiliary.hpp +95 -2
  38. openpmd_api-0.16.1/include/openPMD/IO/ADIOS/ADIOS2File.hpp +485 -0
  39. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/ADIOS/ADIOS2FilePosition.hpp +5 -10
  40. openpmd_api-0.16.1/include/openPMD/IO/ADIOS/ADIOS2IOHandler.hpp +855 -0
  41. openpmd_api-0.16.1/include/openPMD/IO/ADIOS/macros.hpp +42 -0
  42. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/AbstractIOHandler.hpp +41 -8
  43. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/AbstractIOHandlerImpl.hpp +15 -13
  44. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/AbstractIOHandlerImplCommon.hpp +10 -0
  45. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/DummyIOHandler.hpp +1 -0
  46. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/Format.hpp +2 -1
  47. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/HDF5/HDF5Auxiliary.hpp +1 -1
  48. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/HDF5/HDF5IOHandlerImpl.hpp +15 -3
  49. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/HDF5/ParallelHDF5IOHandler.hpp +2 -1
  50. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/HDF5/ParallelHDF5IOHandlerImpl.hpp +2 -0
  51. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/IOTask.hpp +54 -35
  52. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/JSON/JSONIOHandler.hpp +19 -1
  53. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/JSON/JSONIOHandlerImpl.hpp +61 -20
  54. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/Iteration.hpp +42 -15
  55. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/Mesh.hpp +1 -1
  56. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/ParticleSpecies.hpp +9 -18
  57. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/ReadIterations.hpp +2 -21
  58. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/Record.hpp +1 -1
  59. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/RecordComponent.hpp +108 -26
  60. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/RecordComponent.tpp +64 -38
  61. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/Series.hpp +188 -20
  62. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/ThrowError.hpp +2 -11
  63. openpmd_api-0.16.1/include/openPMD/UndefDatatypeMacros.hpp +24 -0
  64. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/WriteIterations.hpp +5 -0
  65. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/JSON_internal.hpp +19 -4
  66. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/Mpi.hpp +50 -0
  67. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/TypeTraits.hpp +77 -0
  68. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/UniquePtr.hpp +21 -18
  69. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/Variant.hpp +14 -2
  70. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/backend/Attributable.hpp +163 -17
  71. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/backend/Attribute.hpp +128 -63
  72. openpmd_api-0.16.1/include/openPMD/backend/BaseRecord.hpp +1022 -0
  73. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/backend/BaseRecordComponent.hpp +78 -11
  74. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/backend/Container.hpp +111 -58
  75. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/backend/MeshRecordComponent.hpp +22 -1
  76. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/backend/PatchRecord.hpp +1 -1
  77. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/backend/PatchRecordComponent.hpp +52 -61
  78. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/backend/Writable.hpp +39 -12
  79. openpmd_api-0.16.1/include/openPMD/binding/python/Common.hpp +59 -0
  80. openPMD-api-0.15.2/src/binding/python/Container.cpp → openpmd_api-0.16.1/include/openPMD/binding/python/Container.H +31 -72
  81. openpmd_api-0.16.1/include/openPMD/binding/python/Mpi.hpp +100 -0
  82. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/binding/python/Numpy.hpp +27 -7
  83. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/binding/python/Pickle.hpp +5 -11
  84. openpmd_api-0.16.1/include/openPMD/binding/python/RecordComponent.hpp +110 -0
  85. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/cli/ls.hpp +2 -2
  86. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/config.hpp.in +1 -1
  87. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/version.hpp +2 -2
  88. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/openPMDConfig.cmake.in +7 -8
  89. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/openPMD_api.egg-info/PKG-INFO +47 -28
  90. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/openPMD_api.egg-info/SOURCES.txt +15 -109
  91. openpmd_api-0.16.1/openPMD_api.egg-info/requires.txt +1 -0
  92. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/pyproject.toml +3 -2
  93. openpmd_api-0.16.1/requirements.txt +1 -0
  94. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/setup.py +26 -13
  95. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/share/openPMD/download_samples.sh +4 -3
  96. openpmd_api-0.16.1/src/ChunkInfo.cpp +168 -0
  97. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/Dataset.cpp +46 -5
  98. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/Datatype.cpp +1 -1
  99. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/Error.cpp +5 -6
  100. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/Format.cpp +9 -23
  101. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/ADIOS/ADIOS2Auxiliary.cpp +39 -0
  102. openpmd_api-0.16.1/src/IO/ADIOS/ADIOS2File.cpp +1355 -0
  103. openpmd_api-0.16.1/src/IO/ADIOS/ADIOS2IOHandler.cpp +2228 -0
  104. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/AbstractIOHandlerHelper.cpp +41 -51
  105. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/AbstractIOHandlerImpl.cpp +136 -27
  106. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/DummyIOHandler.cpp +5 -0
  107. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/HDF5/HDF5Auxiliary.cpp +1 -1
  108. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/HDF5/HDF5IOHandler.cpp +335 -125
  109. openpmd_api-0.16.1/src/IO/HDF5/ParallelHDF5IOHandler.cpp +454 -0
  110. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/IOTask.cpp +8 -1
  111. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/InvalidatableFile.cpp +3 -3
  112. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/JSON/JSONIOHandler.cpp +22 -2
  113. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/JSON/JSONIOHandlerImpl.cpp +382 -98
  114. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/Iteration.cpp +54 -75
  115. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/Mesh.cpp +26 -28
  116. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/ParticlePatches.cpp +7 -8
  117. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/ParticleSpecies.cpp +15 -35
  118. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/ReadIterations.cpp +20 -6
  119. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/Record.cpp +17 -23
  120. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/RecordComponent.cpp +225 -83
  121. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/Series.cpp +851 -151
  122. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/WriteIterations.cpp +30 -6
  123. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/auxiliary/Filesystem.cpp +4 -2
  124. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/auxiliary/JSON.cpp +144 -17
  125. openpmd_api-0.16.1/src/auxiliary/Mpi.cpp +113 -0
  126. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/backend/Attributable.cpp +171 -53
  127. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/backend/BaseRecordComponent.cpp +64 -10
  128. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/backend/MeshRecordComponent.cpp +22 -2
  129. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/backend/PatchRecord.cpp +8 -8
  130. openpmd_api-0.16.1/src/backend/PatchRecordComponent.cpp +87 -0
  131. openpmd_api-0.16.1/src/backend/Writable.cpp +106 -0
  132. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/Access.cpp +1 -5
  133. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/Attributable.cpp +201 -61
  134. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/BaseRecordComponent.cpp +6 -9
  135. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/ChunkInfo.cpp +30 -7
  136. openpmd_api-0.16.1/src/binding/python/Dataset.cpp +92 -0
  137. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/Datatype.cpp +3 -7
  138. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/Error.cpp +9 -4
  139. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/Helper.cpp +3 -7
  140. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/Iteration.cpp +38 -8
  141. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/IterationEncoding.cpp +1 -5
  142. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/Mesh.cpp +19 -14
  143. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/MeshRecordComponent.cpp +30 -8
  144. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/ParticlePatches.cpp +9 -6
  145. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/ParticleSpecies.cpp +19 -9
  146. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/PatchRecord.cpp +10 -6
  147. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/PatchRecordComponent.cpp +28 -10
  148. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/Record.cpp +13 -8
  149. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/RecordComponent.cpp +267 -248
  150. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/Series.cpp +121 -96
  151. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/UnitDimension.cpp +1 -5
  152. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/openPMD.cpp +15 -16
  153. openpmd_api-0.16.1/src/binding/python/openpmd_api/DaskArray.py +149 -0
  154. openpmd_api-0.16.1/src/binding/python/openpmd_api/DataFrame.py +184 -0
  155. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/openpmd_api/__init__.py +4 -1
  156. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/openpmd_api/pipe/__main__.py +18 -43
  157. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/cli/ls.cpp +1 -0
  158. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/config.cpp +15 -3
  159. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/version.cpp +3 -6
  160. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/AuxiliaryTest.cpp +4 -3
  161. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/CoreTest.cpp +203 -66
  162. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/JSONTest.cpp +1 -1
  163. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/ParallelIOTest.cpp +484 -149
  164. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/SerialIOTest.cpp +900 -619
  165. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/python/unittest/API/APITest.py +75 -61
  166. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/python/unittest/Test.py +2 -2
  167. openPMD-api-0.15.2/include/openPMD/Datatype.tpp +0 -356
  168. openPMD-api-0.15.2/include/openPMD/IO/ADIOS/ADIOS1Auxiliary.hpp +0 -279
  169. openPMD-api-0.15.2/include/openPMD/IO/ADIOS/ADIOS1FilePosition.hpp +0 -36
  170. openPMD-api-0.15.2/include/openPMD/IO/ADIOS/ADIOS1IOHandler.hpp +0 -81
  171. openPMD-api-0.15.2/include/openPMD/IO/ADIOS/ADIOS1IOHandlerImpl.hpp +0 -64
  172. openPMD-api-0.15.2/include/openPMD/IO/ADIOS/ADIOS2IOHandler.hpp +0 -1407
  173. openPMD-api-0.15.2/include/openPMD/IO/ADIOS/ADIOS2PreloadAttributes.hpp +0 -170
  174. openPMD-api-0.15.2/include/openPMD/IO/ADIOS/CommonADIOS1IOHandler.hpp +0 -131
  175. openPMD-api-0.15.2/include/openPMD/IO/ADIOS/ParallelADIOS1IOHandler.hpp +0 -69
  176. openPMD-api-0.15.2/include/openPMD/IO/ADIOS/ParallelADIOS1IOHandlerImpl.hpp +0 -71
  177. openPMD-api-0.15.2/include/openPMD/backend/BaseRecord.hpp +0 -377
  178. openPMD-api-0.15.2/openPMD_api.egg-info/requires.txt +0 -1
  179. openPMD-api-0.15.2/requirements.txt +0 -1
  180. openPMD-api-0.15.2/share/openPMD/cmake/FindADIOS.cmake +0 -311
  181. openPMD-api-0.15.2/share/openPMD/thirdParty/catch2/include/catch2/catch.hpp +0 -17976
  182. openPMD-api-0.15.2/share/openPMD/thirdParty/json/CMakeLists.txt +0 -164
  183. openPMD-api-0.15.2/share/openPMD/thirdParty/json/LICENSE.MIT +0 -21
  184. openPMD-api-0.15.2/share/openPMD/thirdParty/json/cmake/config.cmake.in +0 -15
  185. openPMD-api-0.15.2/share/openPMD/thirdParty/json/cmake/download_test_data.cmake +0 -56
  186. openPMD-api-0.15.2/share/openPMD/thirdParty/json/cmake/nlohmann_jsonConfigVersion.cmake.in +0 -20
  187. openPMD-api-0.15.2/share/openPMD/thirdParty/json/cmake/pkg-config.pc.in +0 -4
  188. openPMD-api-0.15.2/share/openPMD/thirdParty/json/nlohmann_json.natvis +0 -32
  189. openPMD-api-0.15.2/share/openPMD/thirdParty/json/single_include/nlohmann/json.hpp +0 -25447
  190. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/CMakeLists.txt +0 -318
  191. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/LICENSE +0 -29
  192. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/MANIFEST.in +0 -5
  193. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/README.rst +0 -180
  194. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/attr.h +0 -678
  195. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/buffer_info.h +0 -193
  196. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/cast.h +0 -1663
  197. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/chrono.h +0 -225
  198. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/common.h +0 -2
  199. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/complex.h +0 -74
  200. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/detail/class.h +0 -735
  201. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/detail/common.h +0 -1188
  202. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/detail/descr.h +0 -158
  203. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/detail/init.h +0 -428
  204. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/detail/internals.h +0 -583
  205. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/detail/type_caster_base.h +0 -1010
  206. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/detail/typeid.h +0 -65
  207. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/eigen.h +0 -713
  208. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/embed.h +0 -279
  209. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/eval.h +0 -156
  210. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/functional.h +0 -130
  211. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/gil.h +0 -239
  212. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/iostream.h +0 -265
  213. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/numpy.h +0 -1991
  214. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/operators.h +0 -202
  215. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/options.h +0 -76
  216. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/pybind11.h +0 -2858
  217. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/pytypes.h +0 -2467
  218. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/stl/filesystem.h +0 -116
  219. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/stl.h +0 -446
  220. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/include/pybind11/stl_bind.h +0 -785
  221. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/pybind11/__init__.py +0 -17
  222. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/pybind11/__main__.py +0 -56
  223. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/pybind11/_version.py +0 -12
  224. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/pybind11/_version.pyi +0 -6
  225. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/pybind11/commands.py +0 -37
  226. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/pybind11/py.typed +0 -0
  227. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/pybind11/setup_helpers.py +0 -504
  228. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/pybind11/setup_helpers.pyi +0 -63
  229. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/FindCatch.cmake +0 -72
  230. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/FindEigen3.cmake +0 -86
  231. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/FindPythonLibsNew.cmake +0 -285
  232. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/JoinPaths.cmake +0 -23
  233. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/check-style.sh +0 -44
  234. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/cmake_uninstall.cmake.in +0 -23
  235. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/codespell_ignore_lines_from_errors.py +0 -35
  236. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/libsize.py +0 -36
  237. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/make_changelog.py +0 -63
  238. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/pybind11.pc.in +0 -7
  239. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/pybind11Common.cmake +0 -385
  240. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/pybind11Config.cmake.in +0 -231
  241. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/pybind11NewTools.cmake +0 -256
  242. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/pybind11Tools.cmake +0 -233
  243. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/pyproject.toml +0 -3
  244. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/setup_global.py.in +0 -61
  245. openPMD-api-0.15.2/share/openPMD/thirdParty/pybind11/tools/setup_main.py.in +0 -42
  246. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/CMakeLists.txt +0 -116
  247. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/LICENSE +0 -21
  248. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/README.md +0 -1967
  249. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/cmake/toml11Config.cmake.in +0 -2
  250. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/color.hpp +0 -64
  251. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/combinator.hpp +0 -306
  252. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/comments.hpp +0 -472
  253. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/datetime.hpp +0 -631
  254. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/exception.hpp +0 -65
  255. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/from.hpp +0 -19
  256. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/get.hpp +0 -1119
  257. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/into.hpp +0 -19
  258. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/lexer.hpp +0 -293
  259. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/literal.hpp +0 -113
  260. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/macros.hpp +0 -121
  261. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/parser.hpp +0 -2416
  262. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/region.hpp +0 -417
  263. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/result.hpp +0 -717
  264. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/serializer.hpp +0 -922
  265. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/source_location.hpp +0 -233
  266. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/storage.hpp +0 -43
  267. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/string.hpp +0 -228
  268. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/traits.hpp +0 -328
  269. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/types.hpp +0 -173
  270. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/utility.hpp +0 -150
  271. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/value.hpp +0 -2035
  272. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml/version.hpp +0 -42
  273. openPMD-api-0.15.2/share/openPMD/thirdParty/toml11/toml.hpp +0 -38
  274. openPMD-api-0.15.2/src/ChunkInfo.cpp +0 -51
  275. openPMD-api-0.15.2/src/IO/ADIOS/ADIOS1IOHandler.cpp +0 -467
  276. openPMD-api-0.15.2/src/IO/ADIOS/ADIOS2IOHandler.cpp +0 -3818
  277. openPMD-api-0.15.2/src/IO/ADIOS/ADIOS2PreloadAttributes.cpp +0 -282
  278. openPMD-api-0.15.2/src/IO/ADIOS/CommonADIOS1IOHandler.cpp +0 -2054
  279. openPMD-api-0.15.2/src/IO/ADIOS/ParallelADIOS1IOHandler.cpp +0 -511
  280. openPMD-api-0.15.2/src/IO/HDF5/ParallelHDF5IOHandler.cpp +0 -207
  281. openPMD-api-0.15.2/src/backend/Container.cpp +0 -58
  282. openPMD-api-0.15.2/src/backend/PatchRecordComponent.cpp +0 -152
  283. openPMD-api-0.15.2/src/backend/Writable.cpp +0 -58
  284. openPMD-api-0.15.2/src/binding/python/BaseRecord.cpp +0 -65
  285. openPMD-api-0.15.2/src/binding/python/Dataset.cpp +0 -88
  286. openPMD-api-0.15.2/src/binding/python/openpmd_api/DaskArray.py +0 -143
  287. openPMD-api-0.15.2/src/binding/python/openpmd_api/DataFrame.py +0 -76
  288. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/COPYING +0 -0
  289. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/COPYING.LESSER +0 -0
  290. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/MANIFEST.in +0 -0
  291. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/cmake/openPMDFunctions.cmake +0 -0
  292. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/10_streaming_read.py +0 -0
  293. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/10_streaming_write.cpp +0 -0
  294. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/12_span_write.py +0 -0
  295. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/3a_write_thetaMode_serial.cpp +0 -0
  296. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/3a_write_thetaMode_serial.py +0 -0
  297. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/3b_write_resizable_particles.cpp +0 -0
  298. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/3b_write_resizable_particles.py +0 -0
  299. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/4_read_parallel.py +0 -0
  300. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/examples/6_dump_filebased_series.cpp +0 -0
  301. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/DatatypeHelpers.hpp +0 -0
  302. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/Datatype_internal.hpp +0 -0
  303. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/AbstractFilePosition.hpp +0 -0
  304. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/AbstractIOHandlerHelper.hpp +0 -0
  305. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/Access.hpp +0 -0
  306. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/FlushParametersInternal.hpp +0 -0
  307. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/HDF5/HDF5FilePosition.hpp +0 -0
  308. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/HDF5/HDF5IOHandler.hpp +0 -0
  309. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/InvalidatableFile.hpp +0 -0
  310. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IO/JSON/JSONFilePosition.hpp +0 -0
  311. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/IterationEncoding.hpp +0 -0
  312. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/ParticlePatches.hpp +0 -0
  313. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/Span.hpp +0 -0
  314. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/Streaming.hpp +0 -0
  315. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/UnitDimension.hpp +0 -0
  316. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/Date.hpp +0 -0
  317. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/DerefDynamicCast.hpp +0 -0
  318. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/Environment.hpp +0 -0
  319. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/Export.hpp +0 -0
  320. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/Filesystem.hpp +0 -0
  321. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/JSON.hpp +0 -0
  322. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/Memory.hpp +0 -0
  323. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/OutOfRangeMsg.hpp +0 -0
  324. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/ShareRaw.hpp +0 -0
  325. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/ShareRawInternal.hpp +0 -0
  326. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/auxiliary/StringManip.hpp +0 -0
  327. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/backend/ParsePreference.hpp +0 -0
  328. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/benchmark/MemoryProfiler.hpp +0 -0
  329. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/benchmark/Timer.hpp +0 -0
  330. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/benchmark/mpi/BlockSlicer.hpp +0 -0
  331. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/benchmark/mpi/DatasetFiller.hpp +0 -0
  332. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/benchmark/mpi/MPIBenchmark.hpp +0 -0
  333. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/benchmark/mpi/MPIBenchmarkReport.hpp +0 -0
  334. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/benchmark/mpi/OneDimensionalBlockSlicer.hpp +0 -0
  335. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/benchmark/mpi/RandomDatasetFiller.hpp +0 -0
  336. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/binding/python/UnitDimension.hpp +0 -0
  337. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/helper/list_series.hpp +0 -0
  338. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/include/openPMD/openPMD.hpp +0 -0
  339. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/openPMD.pc.in +0 -0
  340. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/openPMD_api.egg-info/dependency_links.txt +0 -0
  341. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/openPMD_api.egg-info/entry_points.txt +0 -0
  342. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/openPMD_api.egg-info/not-zip-safe +0 -0
  343. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/openPMD_api.egg-info/top_level.txt +0 -0
  344. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/setup.cfg +0 -0
  345. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/share/openPMD/download_samples.ps1 +0 -0
  346. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/share/openPMD/validate_files.sh +0 -0
  347. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/AbstractIOHandler.cpp +0 -0
  348. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/FlushParams.cpp +0 -0
  349. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IO/JSON/JSONFilePosition.cpp +0 -0
  350. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/IterationEncoding.cpp +0 -0
  351. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/auxiliary/Date.cpp +0 -0
  352. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/benchmark/mpi/OneDimensionalBlockSlicer.cpp +0 -0
  353. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/openpmd_api/DaskDataFrame.py +0 -0
  354. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/openpmd_api/ls/__init__.py +0 -0
  355. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/openpmd_api/ls/__main__.py +0 -0
  356. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/binding/python/openpmd_api/pipe/__init__.py +0 -0
  357. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/cli/pipe.py +0 -0
  358. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/src/helper/list_series.cpp +0 -0
  359. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/CatchMain.cpp +0 -0
  360. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/CatchRunner.cpp +0 -0
  361. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/python/unittest/API/__init__.py +0 -0
  362. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/python/unittest/TestUtilities/TestUtilities.py +0 -0
  363. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/python/unittest/TestUtilities/__init__.py +0 -0
  364. {openPMD-api-0.15.2 → openpmd_api-0.16.1}/test/python/unittest/__init__.py +0 -0
@@ -1,30 +1,21 @@
1
1
  # Preamble ####################################################################
2
2
  #
3
- cmake_minimum_required(VERSION 3.15.0)
3
+ cmake_minimum_required(VERSION 3.22.0)
4
4
 
5
- project(openPMD VERSION 0.15.2) # LANGUAGES CXX
5
+ project(openPMD VERSION 0.16.1) # LANGUAGES CXX
6
6
 
7
7
  # the openPMD "markup"/"schema" standard version
8
8
  set(openPMD_STANDARD_VERSION 1.1.0)
9
9
 
10
10
  include(${openPMD_SOURCE_DIR}/cmake/openPMDFunctions.cmake)
11
11
 
12
- list(APPEND CMAKE_MODULE_PATH "${openPMD_SOURCE_DIR}/share/openPMD/cmake")
13
-
14
12
 
15
13
  # CMake policies ##############################################################
16
14
  #
17
- # Search in <PackageName>_ROOT:
18
- # https://cmake.org/cmake/help/v3.12/policy/CMP0074.html
19
- if(POLICY CMP0074)
20
- cmake_policy(SET CMP0074 NEW)
21
- endif()
22
-
23
- # We use simple syntax in cmake_dependent_option, so we are compatible with the
24
- # extended syntax in CMake 3.22+
25
- # https://cmake.org/cmake/help/v3.22/policy/CMP0127.html
26
- if(POLICY CMP0127)
27
- cmake_policy(SET CMP0127 NEW)
15
+ # CMake 3.24+ tarball download robustness
16
+ # https://cmake.org/cmake/help/latest/module/ExternalProject.html#url
17
+ if(POLICY CMP0135)
18
+ cmake_policy(SET CMP0135 NEW)
28
19
  endif()
29
20
 
30
21
 
@@ -144,17 +135,19 @@ endfunction()
144
135
 
145
136
  openpmd_option(MPI "Parallel, Multi-Node I/O for clusters" AUTO)
146
137
  openpmd_option(HDF5 "HDF5 backend (.h5 files)" AUTO)
147
- openpmd_option(ADIOS1 "ADIOS1 backend (.bp files)" OFF)
148
138
  openpmd_option(ADIOS2 "ADIOS2 backend (.bp files)" AUTO)
149
139
  openpmd_option(PYTHON "Enable Python bindings" AUTO)
150
140
 
151
141
  option(openPMD_INSTALL "Add installation targets" ON)
152
142
  option(openPMD_INSTALL_RPATH "Add RPATHs to installed binaries" ON)
153
143
  option(openPMD_HAVE_PKGCONFIG "Generate a .pc file for pkg-config" ON)
154
- option(openPMD_USE_INTERNAL_CATCH "Use internally shipped Catch2" ON)
155
- option(openPMD_USE_INTERNAL_PYBIND11 "Use internally shipped pybind11" ON)
156
- option(openPMD_USE_INTERNAL_JSON "Use internally shipped nlohmann-json" ON)
157
- option(openPMD_USE_INTERNAL_TOML11 "Use internally shipped toml11" ON)
144
+
145
+ # superbuild control
146
+ option(openPMD_SUPERBUILD "Download & build extra dependencies" ON)
147
+ option(openPMD_USE_INTERNAL_CATCH "Use internally shipped Catch2" ${openPMD_SUPERBUILD})
148
+ option(openPMD_USE_INTERNAL_PYBIND11 "Use internally shipped pybind11" ${openPMD_SUPERBUILD})
149
+ option(openPMD_USE_INTERNAL_JSON "Use internally shipped nlohmann-json" ${openPMD_SUPERBUILD})
150
+ option(openPMD_USE_INTERNAL_TOML11 "Use internally shipped toml11" ${openPMD_SUPERBUILD})
158
151
 
159
152
  option(openPMD_USE_INVASIVE_TESTS "Enable unit tests that modify source code" OFF)
160
153
  option(openPMD_USE_VERIFY "Enable internal VERIFY (assert) macro independent of build type" ON)
@@ -226,6 +219,8 @@ endfunction()
226
219
 
227
220
  # Dependencies ################################################################
228
221
  #
222
+ message(STATUS "openPMD-api superbuild: ${openPMD_SUPERBUILD}")
223
+
229
224
  # external library: MPI (optional)
230
225
  # Implementation quirks for BullMPI, Clang+MPI and Brew's MPICH
231
226
  # definitely w/o MPI::MPI_C:
@@ -262,33 +257,17 @@ endif()
262
257
 
263
258
 
264
259
  # external library: nlohmann-json (required)
265
- if(openPMD_USE_INTERNAL_JSON)
266
- set(JSON_BuildTests OFF CACHE INTERNAL "")
267
- set(JSON_Install OFF CACHE INTERNAL "") # only used PRIVATE
268
- add_subdirectory("${openPMD_SOURCE_DIR}/share/openPMD/thirdParty/json")
269
- message(STATUS "nlohmann-json: Using INTERNAL version '3.9.1'")
270
- else()
271
- find_package(nlohmann_json 3.9.1 CONFIG REQUIRED)
272
- message(STATUS "nlohmann-json: Found version '${nlohmann_json_VERSION}'")
273
- endif()
260
+ include(${openPMD_SOURCE_DIR}/cmake/dependencies/json.cmake)
274
261
  add_library(openPMD::thirdparty::nlohmann_json INTERFACE IMPORTED)
275
262
  target_link_libraries(openPMD::thirdparty::nlohmann_json
276
263
  INTERFACE nlohmann_json::nlohmann_json)
277
264
 
278
- # external library: toml11
279
- if(openPMD_USE_INTERNAL_TOML11)
280
- set(toml11_INSTALL OFF CACHE INTERNAL "")
281
- add_subdirectory("${openPMD_SOURCE_DIR}/share/openPMD/thirdParty/toml11")
282
- message(STATUS "toml11: Using INTERNAL version '3.7.1'")
283
- else()
284
- find_package(toml11 3.7.1 CONFIG REQUIRED)
285
- message(STATUS "toml11: Found version '${toml11_VERSION}'")
286
- endif()
265
+ # external library: toml11 (required)
266
+ include(${openPMD_SOURCE_DIR}/cmake/dependencies/toml11.cmake)
287
267
  add_library(openPMD::thirdparty::toml11 INTERFACE IMPORTED)
288
268
  target_link_libraries(openPMD::thirdparty::toml11
289
269
  INTERFACE toml11::toml11)
290
270
 
291
-
292
271
  # external: CUDA (optional)
293
272
  if(openPMD_BUILD_EXAMPLES) # currently only used in examples
294
273
  if(openPMD_USE_CUDA_EXAMPLES STREQUAL AUTO)
@@ -335,7 +314,7 @@ endif()
335
314
  string(CONCAT openPMD_HDF5_STATUS "")
336
315
  # version: lower limit
337
316
  if(openPMD_HAVE_HDF5)
338
- if(HDF5_VERSION STREQUAL "")
317
+ if("${HDF5_VERSION}" STREQUAL "")
339
318
  message(WARNING "HDF5_VERSION is empty. Now assuming it is 1.8.13 or newer.")
340
319
  else()
341
320
  if(HDF5_VERSION VERSION_LESS 1.8.13)
@@ -380,122 +359,28 @@ if(openPMD_HDF5_STATUS)
380
359
  endif()
381
360
  endif()
382
361
 
383
- # always search for a sequential lib first, so we can mock MPI
384
- find_package(ADIOS 1.13.1 COMPONENTS sequential QUIET)
385
- set(ADIOS_DEFINITIONS_SEQUENTIAL ${ADIOS_DEFINITIONS})
386
- set(ADIOS_LIBRARIES_SEQUENTIAL ${ADIOS_LIBRARIES})
387
- set(ADIOS_INCLUDE_DIRS_SEQUENTIAL ${ADIOS_INCLUDE_DIRS})
388
- unset(ADIOS_FOUND CACHE)
389
- unset(ADIOS_VERSION CACHE)
390
-
391
- # regular logic
392
- set(ADIOS1_PREFER_COMPONENTS)
393
- if(NOT openPMD_HAVE_MPI)
394
- set(ADIOS1_PREFER_COMPONENTS sequential)
395
- endif()
396
- if(openPMD_USE_ADIOS1 STREQUAL AUTO)
397
- find_package(ADIOS 1.13.1 COMPONENTS ${ADIOS1_PREFER_COMPONENTS})
398
- if(ADIOS_FOUND)
399
- set(openPMD_HAVE_ADIOS1 TRUE)
400
- else()
401
- set(openPMD_HAVE_ADIOS1 FALSE)
402
- endif()
403
- elseif(openPMD_USE_ADIOS1)
404
- find_package(ADIOS 1.13.1 REQUIRED COMPONENTS ${ADIOS1_PREFER_COMPONENTS})
405
- set(openPMD_HAVE_ADIOS1 TRUE)
406
- else()
407
- set(openPMD_HAVE_ADIOS1 FALSE)
408
- endif()
409
-
410
- if(openPMD_HAVE_MPI AND openPMD_HAVE_ADIOS1 AND ADIOS_HAVE_SEQUENTIAL)
411
- string(CONCAT openPMD_ADIOS1_STATUS
412
- "Found MPI but requested ADIOS1 is serial. "
413
- "Set openPMD_USE_MPI=OFF to disable MPI.\n"
414
- "If you manually installed a parallel version of ADIOS1 in "
415
- "a non-default path, add its installation prefix to the "
416
- "environment variable CMAKE_PREFIX_PATH to find it: "
417
- "https://cmake.org/cmake/help/latest/envvar/CMAKE_PREFIX_PATH.html")
418
- if(openPMD_USE_ADIOS1 STREQUAL AUTO)
419
- message(WARNING "${openPMD_ADIOS1_STATUS}")
420
- set(openPMD_HAVE_ADIOS1 FALSE)
421
- elseif(openPMD_USE_ADIOS1)
422
- message(FATAL_ERROR "${openPMD_ADIOS1_STATUS}")
423
- endif()
424
- endif()
425
- if(NOT openPMD_HAVE_MPI AND openPMD_HAVE_ADIOS1 AND NOT ADIOS_HAVE_SEQUENTIAL)
426
- string(CONCAT openPMD_ADIOS1_STATUS
427
- "Did not find MPI but requested ADIOS1 is parallel. "
428
- "Set openPMD_USE_ADIOS1=OFF to disable ADIOS1.\n"
429
- "If you manually installed a serial version of ADIOS1 in "
430
- "a non-default path, add its installation prefix to the "
431
- "environment variable CMAKE_PREFIX_PATH to find it: "
432
- "https://cmake.org/cmake/help/latest/envvar/CMAKE_PREFIX_PATH.html")
433
- if(openPMD_USE_ADIOS1 STREQUAL AUTO)
434
- message(WARNING "${openPMD_ADIOS1_STATUS}")
435
- set(openPMD_HAVE_ADIOS1 FALSE)
436
- elseif(openPMD_USE_ADIOS1)
437
- message(FATAL_ERROR "${openPMD_ADIOS1_STATUS}")
438
- endif()
439
- endif()
440
-
441
362
  # external library: ADIOS2 (optional)
363
+ set(openPMD_REQUIRED_ADIOS2_COMPONENTS CXX)
364
+ if(openPMD_HAVE_MPI)
365
+ list(APPEND openPMD_REQUIRED_ADIOS2_COMPONENTS MPI)
366
+ endif()
442
367
  if(openPMD_USE_ADIOS2 STREQUAL AUTO)
443
- find_package(ADIOS2 2.7.0 CONFIG)
368
+ find_package(ADIOS2 2.7.0 CONFIG COMPONENTS ${openPMD_REQUIRED_ADIOS2_COMPONENTS})
444
369
  if(ADIOS2_FOUND)
445
370
  set(openPMD_HAVE_ADIOS2 TRUE)
446
371
  else()
447
372
  set(openPMD_HAVE_ADIOS2 FALSE)
448
373
  endif()
449
374
  elseif(openPMD_USE_ADIOS2)
450
- find_package(ADIOS2 2.7.0 REQUIRED CONFIG)
375
+ find_package(ADIOS2 2.7.0 REQUIRED CONFIG COMPONENTS ${openPMD_REQUIRED_ADIOS2_COMPONENTS})
451
376
  set(openPMD_HAVE_ADIOS2 TRUE)
452
377
  else()
453
378
  set(openPMD_HAVE_ADIOS2 FALSE)
454
379
  endif()
455
-
456
- # TODO: Check if ADIOS2 is parallel when openPMD_HAVE_MPI is ON
380
+ unset(openPMD_REQUIRED_ADIOS2_COMPONENTS)
457
381
 
458
382
  # external library: pybind11 (optional)
459
- set(_PY_DEV_MODULE Development.Module)
460
- if(CMAKE_VERSION VERSION_LESS 3.18.0)
461
- # over-specification needed for CMake<3.18
462
- # https://pybind11.readthedocs.io/en/latest/compiling.html#findpython-mode
463
- # https://cmake.org/cmake/help/v3.18/module/FindPython.html
464
- set(_PY_DEV_MODULE Development)
465
- endif()
466
- if(openPMD_USE_PYTHON STREQUAL AUTO)
467
- find_package(Python 3.8.0 COMPONENTS Interpreter ${_PY_DEV_MODULE})
468
- if(Python_FOUND)
469
- if(openPMD_USE_INTERNAL_PYBIND11)
470
- add_subdirectory("${openPMD_SOURCE_DIR}/share/openPMD/thirdParty/pybind11")
471
- set(openPMD_HAVE_PYTHON TRUE)
472
- message(STATUS "pybind11: Using INTERNAL version 2.10.1")
473
- else()
474
- find_package(pybind11 2.10.1 CONFIG)
475
- if(pybind11_FOUND)
476
- set(openPMD_HAVE_PYTHON TRUE)
477
- message(STATUS "pybind11: Found version '${pybind11_VERSION}'")
478
- else()
479
- set(openPMD_HAVE_PYTHON FALSE)
480
- endif()
481
- endif()
482
- else()
483
- set(openPMD_HAVE_PYTHON FALSE)
484
- endif()
485
- elseif(openPMD_USE_PYTHON)
486
- find_package(Python COMPONENTS Interpreter ${_PY_DEV_MODULE} REQUIRED)
487
- if(openPMD_USE_INTERNAL_PYBIND11)
488
- add_subdirectory("${openPMD_SOURCE_DIR}/share/openPMD/thirdParty/pybind11")
489
- set(openPMD_HAVE_PYTHON TRUE)
490
- message(STATUS "pybind11: Using INTERNAL version 2.10.1")
491
- else()
492
- find_package(pybind11 2.10.1 REQUIRED CONFIG)
493
- set(openPMD_HAVE_PYTHON TRUE)
494
- message(STATUS "pybind11: Found version '${pybind11_VERSION}'")
495
- endif()
496
- else()
497
- set(openPMD_HAVE_PYTHON FALSE)
498
- endif()
383
+ include(${openPMD_SOURCE_DIR}/cmake/dependencies/pybind11.cmake)
499
384
 
500
385
 
501
386
  # Targets #####################################################################
@@ -521,9 +406,9 @@ set(CORE_SOURCE
521
406
  src/auxiliary/Date.cpp
522
407
  src/auxiliary/Filesystem.cpp
523
408
  src/auxiliary/JSON.cpp
409
+ src/auxiliary/Mpi.cpp
524
410
  src/backend/Attributable.cpp
525
411
  src/backend/BaseRecordComponent.cpp
526
- src/backend/Container.cpp
527
412
  src/backend/MeshRecordComponent.cpp
528
413
  src/backend/PatchRecord.cpp
529
414
  src/backend/PatchRecordComponent.cpp
@@ -544,31 +429,9 @@ set(IO_SOURCE
544
429
  src/IO/JSON/JSONIOHandlerImpl.cpp
545
430
  src/IO/JSON/JSONFilePosition.cpp
546
431
  src/IO/ADIOS/ADIOS2IOHandler.cpp
432
+ src/IO/ADIOS/ADIOS2File.cpp
547
433
  src/IO/ADIOS/ADIOS2Auxiliary.cpp
548
- src/IO/ADIOS/ADIOS2PreloadAttributes.cpp
549
434
  src/IO/InvalidatableFile.cpp)
550
- set(IO_ADIOS1_SEQUENTIAL_SOURCE
551
- src/auxiliary/Filesystem.cpp
552
- src/auxiliary/JSON.cpp
553
- src/IO/AbstractIOHandlerImpl.cpp
554
- src/ChunkInfo.cpp
555
- src/Datatype.cpp
556
- src/Error.cpp
557
- src/IO/IOTask.cpp
558
- src/IO/ADIOS/CommonADIOS1IOHandler.cpp
559
- src/IO/ADIOS/ADIOS1IOHandler.cpp
560
- src/IO/IOTask.cpp)
561
- set(IO_ADIOS1_SOURCE
562
- src/auxiliary/Filesystem.cpp
563
- src/auxiliary/JSON.cpp
564
- src/IO/AbstractIOHandlerImpl.cpp
565
- src/ChunkInfo.cpp
566
- src/Datatype.cpp
567
- src/Error.cpp
568
- src/IO/IOTask.cpp
569
- src/IO/ADIOS/CommonADIOS1IOHandler.cpp
570
- src/IO/ADIOS/ParallelADIOS1IOHandler.cpp
571
- src/IO/IOTask.cpp)
572
435
 
573
436
  # library
574
437
  if(openPMD_BUILD_SHARED_LIBS)
@@ -635,18 +498,10 @@ target_include_directories(openPMD PUBLIC
635
498
 
636
499
  # Catch2 for unit tests
637
500
  if(openPMD_BUILD_TESTING)
501
+ include(${openPMD_SOURCE_DIR}/cmake/dependencies/catch.cmake)
638
502
  add_library(openPMD::thirdparty::Catch2 INTERFACE IMPORTED)
639
- if(openPMD_USE_INTERNAL_CATCH)
640
- target_include_directories(openPMD::thirdparty::Catch2 SYSTEM INTERFACE
641
- $<BUILD_INTERFACE:${openPMD_SOURCE_DIR}/share/openPMD/thirdParty/catch2/include>
642
- )
643
- message(STATUS "Catch2: Using INTERNAL version '2.13.10'")
644
- else()
645
- find_package(Catch2 2.13.10 REQUIRED CONFIG)
646
- target_link_libraries(openPMD::thirdparty::Catch2
503
+ target_link_libraries(openPMD::thirdparty::Catch2
647
504
  INTERFACE Catch2::Catch2)
648
- message(STATUS "Catch2: Found version '${Catch2_VERSION}'")
649
- endif()
650
505
  endif()
651
506
 
652
507
  if(openPMD_HAVE_MPI)
@@ -660,149 +515,13 @@ target_include_directories(openPMD SYSTEM PRIVATE
660
515
  $<TARGET_PROPERTY:openPMD::thirdparty::toml11,INTERFACE_INCLUDE_DIRECTORIES>)
661
516
 
662
517
  # HDF5 Backend
518
+ # TODO: Once we require CMake 3.20+, simply link hdf5::hdf5 C lib target
663
519
  if(openPMD_HAVE_HDF5)
664
- target_link_libraries(openPMD PRIVATE ${HDF5_LIBRARIES})
520
+ target_link_libraries(openPMD PUBLIC ${HDF5_LIBRARIES})
665
521
  target_include_directories(openPMD SYSTEM PRIVATE ${HDF5_INCLUDE_DIRS})
666
522
  target_compile_definitions(openPMD PRIVATE ${HDF5_DEFINITIONS})
667
523
  endif()
668
524
 
669
- # ADIOS1 Backend
670
- if(openPMD_HAVE_ADIOS1)
671
- add_library(openPMD.ADIOS1.Serial SHARED ${IO_ADIOS1_SEQUENTIAL_SOURCE})
672
- add_library(openPMD.ADIOS1.Parallel SHARED ${IO_ADIOS1_SOURCE})
673
- openpmd_cxx_required(openPMD.ADIOS1.Serial)
674
- openpmd_cxx_required(openPMD.ADIOS1.Parallel)
675
- target_compile_options(openPMD.ADIOS1.Serial PUBLIC ${_msvc_options})
676
- target_compile_options(openPMD.ADIOS1.Parallel PUBLIC ${_msvc_options})
677
-
678
- target_include_directories(openPMD.ADIOS1.Serial PRIVATE
679
- ${openPMD_SOURCE_DIR}/include ${openPMD_BINARY_DIR}/include)
680
- target_include_directories(openPMD.ADIOS1.Parallel PRIVATE
681
- ${openPMD_SOURCE_DIR}/include ${openPMD_BINARY_DIR}/include)
682
-
683
- target_include_directories(openPMD.ADIOS1.Serial SYSTEM PRIVATE
684
- $<TARGET_PROPERTY:openPMD::thirdparty::nlohmann_json,INTERFACE_INCLUDE_DIRECTORIES>
685
- $<TARGET_PROPERTY:openPMD::thirdparty::toml11,INTERFACE_INCLUDE_DIRECTORIES>)
686
- target_include_directories(openPMD.ADIOS1.Parallel SYSTEM PRIVATE
687
- $<TARGET_PROPERTY:openPMD::thirdparty::nlohmann_json,INTERFACE_INCLUDE_DIRECTORIES>
688
- $<TARGET_PROPERTY:openPMD::thirdparty::toml11,INTERFACE_INCLUDE_DIRECTORIES>)
689
-
690
- set_target_properties(openPMD.ADIOS1.Serial PROPERTIES
691
- COMPILE_PDB_NAME openPMD.ADIOS1.Serial
692
- ARCHIVE_OUTPUT_DIRECTORY ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}
693
- LIBRARY_OUTPUT_DIRECTORY ${openPMD_LIBRARY_OUTPUT_DIRECTORY}
694
- RUNTIME_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
695
- PDB_OUTPUT_DIRECTORY ${openPMD_PDB_OUTPUT_DIRECTORY}
696
- COMPILE_PDB_OUTPUT_DIRECTORY ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY}
697
-
698
- POSITION_INDEPENDENT_CODE ON
699
- CXX_VISIBILITY_PRESET hidden
700
- VISIBILITY_INLINES_HIDDEN ON
701
- )
702
- # note: same as above, but for Multi-Config generators
703
- if(isMultiConfig)
704
- foreach(CFG IN LISTS CMAKE_CONFIGURATION_TYPES)
705
- string(TOUPPER "${CFG}" CFG_UPPER)
706
- set_target_properties(openPMD.ADIOS1.Serial PROPERTIES
707
- COMPILE_PDB_NAME_${CFG_UPPER} openPMD.ADIOS1.Serial
708
- ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}/${CFG}
709
- LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY}/${CFG}
710
- RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/${CFG}
711
- PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PDB_OUTPUT_DIRECTORY}/${CFG}
712
- COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY}/${CFG}
713
- )
714
- endforeach()
715
- endif()
716
- if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
717
- set_target_properties(openPMD.ADIOS1.Serial PROPERTIES
718
- LINK_FLAGS "-Wl,--exclude-libs,ALL")
719
- elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
720
- set_target_properties(openPMD.ADIOS1.Serial PROPERTIES
721
- XCODE_ATTRIBUTE_STRIP_STYLE "non-global"
722
- XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING "YES"
723
- XCODE_ATTRIBUTE_SEPARATE_STRIP "YES"
724
- )
725
- endif()
726
- foreach(adlib ${ADIOS_LIBRARIES_SEQUENTIAL})
727
- target_link_libraries(openPMD.ADIOS1.Serial PRIVATE ${adlib})
728
- endforeach()
729
- target_include_directories(openPMD.ADIOS1.Serial SYSTEM PRIVATE ${ADIOS_INCLUDE_DIRS_SEQUENTIAL})
730
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE "${ADIOS_DEFINITIONS_SEQUENTIAL}")
731
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE openPMD_HAVE_ADIOS1=1)
732
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE openPMD_HAVE_MPI=0)
733
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE _NOMPI) # ADIOS header
734
-
735
- if(openPMD_HAVE_MPI)
736
- set_target_properties(openPMD.ADIOS1.Parallel PROPERTIES
737
- COMPILE_PDB_NAME openPMD.ADIOS1.Parallel
738
- ARCHIVE_OUTPUT_DIRECTORY ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}
739
- LIBRARY_OUTPUT_DIRECTORY ${openPMD_LIBRARY_OUTPUT_DIRECTORY}
740
- RUNTIME_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
741
- PDB_OUTPUT_DIRECTORY ${openPMD_PDB_OUTPUT_DIRECTORY}
742
- COMPILE_PDB_OUTPUT_DIRECTORY ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY}
743
-
744
- POSITION_INDEPENDENT_CODE ON
745
- CXX_VISIBILITY_PRESET hidden
746
- VISIBILITY_INLINES_HIDDEN 1
747
- )
748
- # note: same as above, but for Multi-Config generators
749
- if(isMultiConfig)
750
- foreach(CFG IN LISTS CMAKE_CONFIGURATION_TYPES)
751
- string(TOUPPER "${CFG}" CFG_UPPER)
752
- set_target_properties(openPMD.ADIOS1.Parallel PROPERTIES
753
- COMPILE_PDB_NAME_${CFG_UPPER} opemPMD.ADIOS1.Parallel
754
- ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}/${CFG}
755
- LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY}/${CFG}
756
- RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/${CFG}
757
- PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PDB_OUTPUT_DIRECTORY}/${CFG}
758
- COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY}/${CFG}
759
- )
760
- endforeach()
761
- endif()
762
- if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
763
- set_target_properties(openPMD.ADIOS1.Parallel PROPERTIES
764
- LINK_FLAGS "-Wl,--exclude-libs,ALL")
765
- elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
766
- set_target_properties(openPMD.ADIOS1.Parallel PROPERTIES
767
- XCODE_ATTRIBUTE_STRIP_STYLE "non-global"
768
- XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING "YES"
769
- XCODE_ATTRIBUTE_SEPARATE_STRIP "YES"
770
- )
771
- endif()
772
- foreach(adlib ${ADIOS_LIBRARIES})
773
- target_link_libraries(openPMD.ADIOS1.Parallel PRIVATE ${adlib})
774
- endforeach()
775
- target_link_libraries(openPMD.ADIOS1.Parallel PUBLIC ${openPMD_MPI_TARGETS})
776
-
777
- target_include_directories(openPMD.ADIOS1.Parallel SYSTEM PRIVATE ${ADIOS_INCLUDE_DIRS})
778
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE "${ADIOS_DEFINITIONS}")
779
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_HAVE_ADIOS1=1)
780
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_HAVE_MPI=1)
781
- else()
782
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_HAVE_ADIOS1=0)
783
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_HAVE_MPI=0)
784
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE _NOMPI) # ADIOS header
785
- endif()
786
- # This ensures that the ADIOS1 targets don't ever include Error.hpp
787
- # To avoid incompatible error types in weird compile configurations
788
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE OPENPMD_ADIOS1_IMPLEMENTATION)
789
-
790
- # Runtime parameter and API status checks ("asserts")
791
- if(openPMD_USE_VERIFY)
792
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE openPMD_USE_VERIFY=1)
793
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_USE_VERIFY=1)
794
- else()
795
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE openPMD_USE_VERIFY=0)
796
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_USE_VERIFY=0)
797
- endif()
798
-
799
- target_link_libraries(openPMD PUBLIC openPMD.ADIOS1.Serial)
800
- target_link_libraries(openPMD PUBLIC openPMD.ADIOS1.Parallel)
801
- else()
802
- # add stubs to prevent missing symbols in Clang ASAN/UBSAN
803
- target_sources(openPMD PRIVATE ${IO_ADIOS1_SEQUENTIAL_SOURCE} ${IO_ADIOS1_SOURCE})
804
- endif()
805
-
806
525
  # ADIOS2 Backend
807
526
  if(openPMD_HAVE_ADIOS2)
808
527
  if(openPMD_HAVE_MPI)
@@ -825,10 +544,8 @@ if(openPMD_HAVE_PYTHON)
825
544
  src/binding/python/openPMD.cpp
826
545
  src/binding/python/Access.cpp
827
546
  src/binding/python/Attributable.cpp
828
- src/binding/python/BaseRecord.cpp
829
547
  src/binding/python/BaseRecordComponent.cpp
830
548
  src/binding/python/ChunkInfo.cpp
831
- src/binding/python/Container.cpp
832
549
  src/binding/python/Dataset.cpp
833
550
  src/binding/python/Datatype.cpp
834
551
  src/binding/python/Error.cpp
@@ -857,14 +574,8 @@ if(openPMD_HAVE_PYTHON)
857
574
  endif()
858
575
  endif()
859
576
  message(STATUS "Python LTO/IPO: ${_USE_PY_LTO}")
860
- if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.18)
861
- set_target_properties(openPMD.py PROPERTIES
862
- INTERPROCEDURAL_OPTIMIZATION ${_USE_PY_LTO})
863
- else()
864
- if(_USE_PY_LTO)
865
- target_link_libraries(openPMD.py PRIVATE pybind11::lto)
866
- endif()
867
- endif()
577
+ set_target_properties(openPMD.py PROPERTIES
578
+ INTERPROCEDURAL_OPTIMIZATION ${_USE_PY_LTO})
868
579
  unset(_USE_PY_LTO)
869
580
 
870
581
  if(EMSCRIPTEN)
@@ -1196,6 +907,8 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
1196
907
  # /usr/lib/llvm-6.0/lib/clang/6.0.0/lib/linux/libclang_rt.ubsan_minimal-x86_64.so
1197
908
  # at runtime when used with symbol-hidden code (e.g. pybind11 module)
1198
909
 
910
+ set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wpedantic -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -Wsign-compare ${CMAKE_CXX_FLAGS}")
911
+ elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
1199
912
  set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wpedantic -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -Wsign-compare ${CMAKE_CXX_FLAGS}")
1200
913
  elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
1201
914
  set(CMAKE_CXX_FLAGS "-w3 -wd193,383,1572 ${CMAKE_CXX_FLAGS}")
@@ -1273,11 +986,6 @@ write_basic_package_version_file("openPMDConfigVersion.cmake"
1273
986
  if(openPMD_INSTALL)
1274
987
  set(openPMD_INSTALL_TARGET_NAMES openPMD)
1275
988
 
1276
- if(openPMD_HAVE_ADIOS1)
1277
- list(APPEND openPMD_INSTALL_TARGET_NAMES
1278
- openPMD.ADIOS1.Serial openPMD.ADIOS1.Parallel)
1279
- endif()
1280
-
1281
989
  if(openPMD_BUILD_CLI_TOOLS)
1282
990
  foreach(toolname ${openPMD_CLI_TOOL_NAMES})
1283
991
  list(APPEND openPMD_INSTALL_TARGET_NAMES openpmd-${toolname})
@@ -1361,11 +1069,6 @@ if(openPMD_INSTALL)
1361
1069
  ${openPMD_BINARY_DIR}/openPMDConfigVersion.cmake
1362
1070
  DESTINATION ${openPMD_INSTALL_CMAKEDIR}
1363
1071
  )
1364
- install(
1365
- FILES
1366
- ${openPMD_SOURCE_DIR}/share/openPMD/cmake/FindADIOS.cmake
1367
- DESTINATION ${openPMD_INSTALL_CMAKEDIR}/Modules
1368
- )
1369
1072
  # pkg-config .pc file for depending legacy projects
1370
1073
  # This is for projects that do not use a build file generator, e.g.
1371
1074
  # because they compile manually on the command line or write their
@@ -1572,7 +1275,7 @@ if(openPMD_BUILD_TESTING)
1572
1275
  # openpmd-pipe (python) test
1573
1276
  if( NOT WIN32
1574
1277
  AND openPMD_HAVE_HDF5
1575
- AND (openPMD_HAVE_ADIOS2 OR openPMD_HAVE_ADIOS1)
1278
+ AND openPMD_HAVE_ADIOS2
1576
1279
  AND EXAMPLE_DATA_FOUND
1577
1280
  )
1578
1281
  if( openPMD_HAVE_MPI )
@@ -1584,18 +1287,25 @@ if(openPMD_BUILD_TESTING)
1584
1287
  add_test(NAME CLI.pipe.py
1585
1288
  COMMAND sh -c
1586
1289
  "${MPI_TEST_EXE} ${Python_EXECUTABLE} \
1587
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1290
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1588
1291
  --infile ../samples/git-sample/data%T.h5 \
1589
1292
  --outfile ../samples/git-sample/data%T.bp && \
1590
1293
  \
1591
1294
  ${MPI_TEST_EXE} ${Python_EXECUTABLE} \
1592
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1295
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1296
+ --infile ../samples/git-sample/data00000100.h5 \
1297
+ --outfile \
1298
+ ../samples/git-sample/single_iteration_%T.bp && \
1299
+ \
1300
+ ${MPI_TEST_EXE} ${Python_EXECUTABLE} \
1301
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1593
1302
  --infile ../samples/git-sample/thetaMode/data%T.h5 \
1594
- --outfile ../samples/git-sample/thetaMode/data.bp && \
1303
+ --outfile \
1304
+ ../samples/git-sample/thetaMode/data_%T.bp && \
1595
1305
  \
1596
- ${Python_EXECUTABLE} \
1597
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1598
- --infile ../samples/git-sample/thetaMode/data.bp \
1306
+ ${MPI_TEST_EXE} ${Python_EXECUTABLE} \
1307
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1308
+ --infile ../samples/git-sample/thetaMode/data_%T.bp \
1599
1309
  --outfile ../samples/git-sample/thetaMode/data%T.json \
1600
1310
  "
1601
1311
  WORKING_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
@@ -1604,17 +1314,17 @@ if(openPMD_BUILD_TESTING)
1604
1314
  add_test(NAME CLI.pipe.py
1605
1315
  COMMAND sh -c
1606
1316
  "${Python_EXECUTABLE} \
1607
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1317
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1608
1318
  --infile ../samples/git-sample/data%T.h5 \
1609
1319
  --outfile ../samples/git-sample/data%T.bp && \
1610
1320
  \
1611
1321
  ${Python_EXECUTABLE} \
1612
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1322
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1613
1323
  --infile ../samples/git-sample/thetaMode/data%T.h5 \
1614
1324
  --outfile ../samples/git-sample/thetaMode/data%T.bp && \
1615
1325
  \
1616
1326
  ${Python_EXECUTABLE} \
1617
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1327
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1618
1328
  --infile ../samples/git-sample/thetaMode/data%T.bp \
1619
1329
  --outfile ../samples/git-sample/thetaMode/data%T.json \
1620
1330
  "
@@ -1672,7 +1382,6 @@ if(openPMD_BUILD_TESTING)
1672
1382
  endif()
1673
1383
  endif()
1674
1384
 
1675
-
1676
1385
  # Status Message for Build Options ############################################
1677
1386
  #
1678
1387
  openpmd_print_summary()