openPMD-api 0.15.2__tar.gz → 0.16.0__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.0}/CMakeLists.txt +46 -341
  2. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/PKG-INFO +32 -26
  3. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/README.md +28 -25
  4. openpmd_api-0.16.0/cmake/dependencies/catch.cmake +74 -0
  5. openpmd_api-0.16.0/cmake/dependencies/json.cmake +74 -0
  6. openpmd_api-0.16.0/cmake/dependencies/pybind11.cmake +96 -0
  7. openpmd_api-0.16.0/cmake/dependencies/toml11.cmake +82 -0
  8. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/10_streaming_read.cpp +12 -9
  9. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/10_streaming_write.py +1 -1
  10. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/11_particle_dataframe.py +21 -0
  11. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/12_span_write.cpp +22 -3
  12. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/13_write_dynamic_configuration.cpp +1 -2
  13. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/13_write_dynamic_configuration.py +1 -1
  14. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/1_structure.cpp +1 -2
  15. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/2_read_serial.cpp +15 -12
  16. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/2_read_serial.py +1 -1
  17. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/2a_read_thetaMode_serial.cpp +2 -0
  18. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/2a_read_thetaMode_serial.py +2 -0
  19. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/3_write_serial.cpp +1 -2
  20. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/3_write_serial.py +1 -1
  21. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/4_read_parallel.cpp +15 -3
  22. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/5_write_parallel.cpp +22 -5
  23. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/5_write_parallel.py +25 -5
  24. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/7_extended_write_serial.cpp +5 -10
  25. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/7_extended_write_serial.py +5 -5
  26. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/8_benchmark_parallel.cpp +5 -4
  27. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/8a_benchmark_write_parallel.cpp +5 -8
  28. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/8b_benchmark_read_parallel.cpp +2 -3
  29. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/9_particle_write_serial.py +4 -4
  30. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/ChunkInfo.hpp +60 -0
  31. openpmd_api-0.16.0/include/openPMD/ChunkInfo_internal.hpp +67 -0
  32. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/Dataset.hpp +11 -0
  33. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/Datatype.hpp +53 -1
  34. openpmd_api-0.16.0/include/openPMD/Datatype.tpp +258 -0
  35. openpmd_api-0.16.0/include/openPMD/DatatypeMacros.hpp +115 -0
  36. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/Error.hpp +4 -3
  37. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/ADIOS/ADIOS2Auxiliary.hpp +95 -2
  38. openpmd_api-0.16.0/include/openPMD/IO/ADIOS/ADIOS2File.hpp +485 -0
  39. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/ADIOS/ADIOS2FilePosition.hpp +5 -10
  40. openpmd_api-0.16.0/include/openPMD/IO/ADIOS/ADIOS2IOHandler.hpp +855 -0
  41. openpmd_api-0.16.0/include/openPMD/IO/ADIOS/macros.hpp +42 -0
  42. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/AbstractIOHandler.hpp +41 -8
  43. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/AbstractIOHandlerImpl.hpp +15 -13
  44. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/AbstractIOHandlerImplCommon.hpp +10 -0
  45. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/DummyIOHandler.hpp +1 -0
  46. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/Format.hpp +2 -1
  47. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/HDF5Auxiliary.hpp +1 -1
  48. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/HDF5IOHandlerImpl.hpp +15 -3
  49. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/ParallelHDF5IOHandler.hpp +2 -1
  50. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/ParallelHDF5IOHandlerImpl.hpp +2 -0
  51. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/IOTask.hpp +54 -35
  52. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/JSON/JSONIOHandler.hpp +19 -1
  53. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/JSON/JSONIOHandlerImpl.hpp +61 -20
  54. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/Iteration.hpp +42 -15
  55. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/Mesh.hpp +1 -1
  56. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/ParticleSpecies.hpp +9 -18
  57. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/ReadIterations.hpp +2 -21
  58. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/Record.hpp +1 -1
  59. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/RecordComponent.hpp +108 -26
  60. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/RecordComponent.tpp +64 -38
  61. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/Series.hpp +188 -20
  62. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/ThrowError.hpp +2 -11
  63. openpmd_api-0.16.0/include/openPMD/UndefDatatypeMacros.hpp +24 -0
  64. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/WriteIterations.hpp +5 -0
  65. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/JSON_internal.hpp +19 -4
  66. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Mpi.hpp +50 -0
  67. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/TypeTraits.hpp +77 -0
  68. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/UniquePtr.hpp +21 -18
  69. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Variant.hpp +14 -2
  70. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/backend/Attributable.hpp +163 -17
  71. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/backend/Attribute.hpp +128 -63
  72. openpmd_api-0.16.0/include/openPMD/backend/BaseRecord.hpp +1022 -0
  73. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/backend/BaseRecordComponent.hpp +78 -11
  74. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/backend/Container.hpp +110 -57
  75. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/backend/MeshRecordComponent.hpp +22 -1
  76. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/backend/PatchRecord.hpp +1 -1
  77. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/backend/PatchRecordComponent.hpp +52 -61
  78. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/backend/Writable.hpp +39 -12
  79. openpmd_api-0.16.0/include/openPMD/binding/python/Common.hpp +59 -0
  80. openPMD-api-0.15.2/src/binding/python/Container.cpp → openpmd_api-0.16.0/include/openPMD/binding/python/Container.H +31 -72
  81. openpmd_api-0.16.0/include/openPMD/binding/python/Mpi.hpp +100 -0
  82. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/binding/python/Numpy.hpp +27 -7
  83. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/binding/python/Pickle.hpp +5 -11
  84. openpmd_api-0.16.0/include/openPMD/binding/python/RecordComponent.hpp +110 -0
  85. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/cli/ls.hpp +2 -2
  86. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/config.hpp.in +1 -1
  87. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/version.hpp +2 -2
  88. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/openPMDConfig.cmake.in +1 -7
  89. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/openPMD_api.egg-info/PKG-INFO +32 -26
  90. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/openPMD_api.egg-info/SOURCES.txt +15 -109
  91. openpmd_api-0.16.0/openPMD_api.egg-info/requires.txt +1 -0
  92. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/pyproject.toml +3 -2
  93. openpmd_api-0.16.0/requirements.txt +1 -0
  94. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/setup.py +18 -12
  95. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/share/openPMD/download_samples.sh +4 -3
  96. openpmd_api-0.16.0/src/ChunkInfo.cpp +168 -0
  97. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/Dataset.cpp +46 -5
  98. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/Datatype.cpp +1 -1
  99. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/Error.cpp +5 -6
  100. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/Format.cpp +9 -23
  101. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/ADIOS/ADIOS2Auxiliary.cpp +39 -0
  102. openpmd_api-0.16.0/src/IO/ADIOS/ADIOS2File.cpp +1355 -0
  103. openpmd_api-0.16.0/src/IO/ADIOS/ADIOS2IOHandler.cpp +2220 -0
  104. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/AbstractIOHandlerHelper.cpp +41 -51
  105. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/AbstractIOHandlerImpl.cpp +136 -27
  106. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/DummyIOHandler.cpp +5 -0
  107. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/HDF5/HDF5Auxiliary.cpp +1 -1
  108. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/HDF5/HDF5IOHandler.cpp +298 -120
  109. openpmd_api-0.16.0/src/IO/HDF5/ParallelHDF5IOHandler.cpp +454 -0
  110. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/IOTask.cpp +8 -1
  111. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/InvalidatableFile.cpp +3 -3
  112. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/JSON/JSONIOHandler.cpp +22 -2
  113. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/JSON/JSONIOHandlerImpl.cpp +368 -98
  114. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/Iteration.cpp +54 -75
  115. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/Mesh.cpp +26 -28
  116. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/ParticlePatches.cpp +7 -8
  117. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/ParticleSpecies.cpp +15 -35
  118. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/ReadIterations.cpp +20 -6
  119. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/Record.cpp +17 -23
  120. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/RecordComponent.cpp +225 -83
  121. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/Series.cpp +851 -151
  122. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/WriteIterations.cpp +30 -6
  123. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/auxiliary/Filesystem.cpp +4 -2
  124. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/auxiliary/JSON.cpp +144 -17
  125. openpmd_api-0.16.0/src/auxiliary/Mpi.cpp +113 -0
  126. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/backend/Attributable.cpp +171 -53
  127. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/backend/BaseRecordComponent.cpp +64 -10
  128. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/backend/MeshRecordComponent.cpp +22 -2
  129. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/backend/PatchRecord.cpp +8 -8
  130. openpmd_api-0.16.0/src/backend/PatchRecordComponent.cpp +87 -0
  131. openpmd_api-0.16.0/src/backend/Writable.cpp +106 -0
  132. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/Access.cpp +1 -5
  133. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/Attributable.cpp +201 -61
  134. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/BaseRecordComponent.cpp +6 -9
  135. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/ChunkInfo.cpp +30 -7
  136. openpmd_api-0.16.0/src/binding/python/Dataset.cpp +92 -0
  137. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/Datatype.cpp +3 -7
  138. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/Error.cpp +9 -4
  139. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/Helper.cpp +3 -7
  140. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/Iteration.cpp +38 -8
  141. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/IterationEncoding.cpp +1 -5
  142. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/Mesh.cpp +19 -14
  143. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/MeshRecordComponent.cpp +30 -8
  144. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/ParticlePatches.cpp +9 -6
  145. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/ParticleSpecies.cpp +19 -9
  146. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/PatchRecord.cpp +10 -6
  147. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/PatchRecordComponent.cpp +28 -10
  148. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/Record.cpp +13 -8
  149. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/RecordComponent.cpp +267 -248
  150. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/Series.cpp +121 -96
  151. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/UnitDimension.cpp +1 -5
  152. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/openPMD.cpp +15 -16
  153. openpmd_api-0.16.0/src/binding/python/openpmd_api/DaskArray.py +149 -0
  154. openpmd_api-0.16.0/src/binding/python/openpmd_api/DataFrame.py +184 -0
  155. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/__init__.py +4 -1
  156. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/pipe/__main__.py +18 -43
  157. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/cli/ls.cpp +1 -0
  158. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/config.cpp +15 -3
  159. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/version.cpp +3 -6
  160. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/AuxiliaryTest.cpp +4 -3
  161. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/CoreTest.cpp +203 -66
  162. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/JSONTest.cpp +1 -1
  163. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/ParallelIOTest.cpp +484 -149
  164. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/SerialIOTest.cpp +890 -619
  165. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/python/unittest/API/APITest.py +75 -61
  166. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/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.0}/COPYING +0 -0
  289. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/COPYING.LESSER +0 -0
  290. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/MANIFEST.in +0 -0
  291. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/cmake/openPMDFunctions.cmake +0 -0
  292. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/10_streaming_read.py +0 -0
  293. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/10_streaming_write.cpp +0 -0
  294. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/12_span_write.py +0 -0
  295. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/3a_write_thetaMode_serial.cpp +0 -0
  296. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/3a_write_thetaMode_serial.py +0 -0
  297. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/3b_write_resizable_particles.cpp +0 -0
  298. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/3b_write_resizable_particles.py +0 -0
  299. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/4_read_parallel.py +0 -0
  300. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/examples/6_dump_filebased_series.cpp +0 -0
  301. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/DatatypeHelpers.hpp +0 -0
  302. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/Datatype_internal.hpp +0 -0
  303. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/AbstractFilePosition.hpp +0 -0
  304. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/AbstractIOHandlerHelper.hpp +0 -0
  305. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/Access.hpp +0 -0
  306. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/FlushParametersInternal.hpp +0 -0
  307. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/HDF5FilePosition.hpp +0 -0
  308. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/HDF5IOHandler.hpp +0 -0
  309. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/InvalidatableFile.hpp +0 -0
  310. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IO/JSON/JSONFilePosition.hpp +0 -0
  311. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/IterationEncoding.hpp +0 -0
  312. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/ParticlePatches.hpp +0 -0
  313. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/Span.hpp +0 -0
  314. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/Streaming.hpp +0 -0
  315. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/UnitDimension.hpp +0 -0
  316. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Date.hpp +0 -0
  317. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/DerefDynamicCast.hpp +0 -0
  318. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Environment.hpp +0 -0
  319. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Export.hpp +0 -0
  320. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Filesystem.hpp +0 -0
  321. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/JSON.hpp +0 -0
  322. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Memory.hpp +0 -0
  323. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/OutOfRangeMsg.hpp +0 -0
  324. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/ShareRaw.hpp +0 -0
  325. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/ShareRawInternal.hpp +0 -0
  326. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/auxiliary/StringManip.hpp +0 -0
  327. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/backend/ParsePreference.hpp +0 -0
  328. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/benchmark/MemoryProfiler.hpp +0 -0
  329. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/benchmark/Timer.hpp +0 -0
  330. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/BlockSlicer.hpp +0 -0
  331. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/DatasetFiller.hpp +0 -0
  332. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/MPIBenchmark.hpp +0 -0
  333. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/MPIBenchmarkReport.hpp +0 -0
  334. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/OneDimensionalBlockSlicer.hpp +0 -0
  335. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/RandomDatasetFiller.hpp +0 -0
  336. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/binding/python/UnitDimension.hpp +0 -0
  337. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/helper/list_series.hpp +0 -0
  338. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/include/openPMD/openPMD.hpp +0 -0
  339. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/openPMD.pc.in +0 -0
  340. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/openPMD_api.egg-info/dependency_links.txt +0 -0
  341. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/openPMD_api.egg-info/entry_points.txt +0 -0
  342. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/openPMD_api.egg-info/not-zip-safe +0 -0
  343. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/openPMD_api.egg-info/top_level.txt +0 -0
  344. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/setup.cfg +0 -0
  345. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/share/openPMD/download_samples.ps1 +0 -0
  346. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/share/openPMD/validate_files.sh +0 -0
  347. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/AbstractIOHandler.cpp +0 -0
  348. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/FlushParams.cpp +0 -0
  349. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IO/JSON/JSONFilePosition.cpp +0 -0
  350. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/IterationEncoding.cpp +0 -0
  351. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/auxiliary/Date.cpp +0 -0
  352. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/benchmark/mpi/OneDimensionalBlockSlicer.cpp +0 -0
  353. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/DaskDataFrame.py +0 -0
  354. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/ls/__init__.py +0 -0
  355. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/ls/__main__.py +0 -0
  356. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/pipe/__init__.py +0 -0
  357. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/cli/pipe.py +0 -0
  358. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/src/helper/list_series.cpp +0 -0
  359. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/CatchMain.cpp +0 -0
  360. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/CatchRunner.cpp +0 -0
  361. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/python/unittest/API/__init__.py +0 -0
  362. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/python/unittest/TestUtilities/TestUtilities.py +0 -0
  363. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/test/python/unittest/TestUtilities/__init__.py +0 -0
  364. {openPMD-api-0.15.2 → openpmd_api-0.16.0}/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.0) # 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)
@@ -380,64 +359,6 @@ 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)
442
363
  if(openPMD_USE_ADIOS2 STREQUAL AUTO)
443
364
  find_package(ADIOS2 2.7.0 CONFIG)
@@ -452,50 +373,10 @@ elseif(openPMD_USE_ADIOS2)
452
373
  else()
453
374
  set(openPMD_HAVE_ADIOS2 FALSE)
454
375
  endif()
455
-
456
376
  # TODO: Check if ADIOS2 is parallel when openPMD_HAVE_MPI is ON
457
377
 
458
378
  # 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()
379
+ include(${openPMD_SOURCE_DIR}/cmake/dependencies/pybind11.cmake)
499
380
 
500
381
 
501
382
  # Targets #####################################################################
@@ -521,9 +402,9 @@ set(CORE_SOURCE
521
402
  src/auxiliary/Date.cpp
522
403
  src/auxiliary/Filesystem.cpp
523
404
  src/auxiliary/JSON.cpp
405
+ src/auxiliary/Mpi.cpp
524
406
  src/backend/Attributable.cpp
525
407
  src/backend/BaseRecordComponent.cpp
526
- src/backend/Container.cpp
527
408
  src/backend/MeshRecordComponent.cpp
528
409
  src/backend/PatchRecord.cpp
529
410
  src/backend/PatchRecordComponent.cpp
@@ -544,31 +425,9 @@ set(IO_SOURCE
544
425
  src/IO/JSON/JSONIOHandlerImpl.cpp
545
426
  src/IO/JSON/JSONFilePosition.cpp
546
427
  src/IO/ADIOS/ADIOS2IOHandler.cpp
428
+ src/IO/ADIOS/ADIOS2File.cpp
547
429
  src/IO/ADIOS/ADIOS2Auxiliary.cpp
548
- src/IO/ADIOS/ADIOS2PreloadAttributes.cpp
549
430
  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
431
 
573
432
  # library
574
433
  if(openPMD_BUILD_SHARED_LIBS)
@@ -635,18 +494,10 @@ target_include_directories(openPMD PUBLIC
635
494
 
636
495
  # Catch2 for unit tests
637
496
  if(openPMD_BUILD_TESTING)
497
+ include(${openPMD_SOURCE_DIR}/cmake/dependencies/catch.cmake)
638
498
  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
499
+ target_link_libraries(openPMD::thirdparty::Catch2
647
500
  INTERFACE Catch2::Catch2)
648
- message(STATUS "Catch2: Found version '${Catch2_VERSION}'")
649
- endif()
650
501
  endif()
651
502
 
652
503
  if(openPMD_HAVE_MPI)
@@ -660,149 +511,13 @@ target_include_directories(openPMD SYSTEM PRIVATE
660
511
  $<TARGET_PROPERTY:openPMD::thirdparty::toml11,INTERFACE_INCLUDE_DIRECTORIES>)
661
512
 
662
513
  # HDF5 Backend
514
+ # TODO: Once we require CMake 3.20+, simply link hdf5::hdf5 C lib target
663
515
  if(openPMD_HAVE_HDF5)
664
- target_link_libraries(openPMD PRIVATE ${HDF5_LIBRARIES})
516
+ target_link_libraries(openPMD PUBLIC ${HDF5_LIBRARIES})
665
517
  target_include_directories(openPMD SYSTEM PRIVATE ${HDF5_INCLUDE_DIRS})
666
518
  target_compile_definitions(openPMD PRIVATE ${HDF5_DEFINITIONS})
667
519
  endif()
668
520
 
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
521
  # ADIOS2 Backend
807
522
  if(openPMD_HAVE_ADIOS2)
808
523
  if(openPMD_HAVE_MPI)
@@ -825,10 +540,8 @@ if(openPMD_HAVE_PYTHON)
825
540
  src/binding/python/openPMD.cpp
826
541
  src/binding/python/Access.cpp
827
542
  src/binding/python/Attributable.cpp
828
- src/binding/python/BaseRecord.cpp
829
543
  src/binding/python/BaseRecordComponent.cpp
830
544
  src/binding/python/ChunkInfo.cpp
831
- src/binding/python/Container.cpp
832
545
  src/binding/python/Dataset.cpp
833
546
  src/binding/python/Datatype.cpp
834
547
  src/binding/python/Error.cpp
@@ -857,14 +570,8 @@ if(openPMD_HAVE_PYTHON)
857
570
  endif()
858
571
  endif()
859
572
  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()
573
+ set_target_properties(openPMD.py PROPERTIES
574
+ INTERPROCEDURAL_OPTIMIZATION ${_USE_PY_LTO})
868
575
  unset(_USE_PY_LTO)
869
576
 
870
577
  if(EMSCRIPTEN)
@@ -1196,6 +903,8 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
1196
903
  # /usr/lib/llvm-6.0/lib/clang/6.0.0/lib/linux/libclang_rt.ubsan_minimal-x86_64.so
1197
904
  # at runtime when used with symbol-hidden code (e.g. pybind11 module)
1198
905
 
906
+ set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wpedantic -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -Wsign-compare ${CMAKE_CXX_FLAGS}")
907
+ elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
1199
908
  set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wpedantic -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -Wsign-compare ${CMAKE_CXX_FLAGS}")
1200
909
  elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
1201
910
  set(CMAKE_CXX_FLAGS "-w3 -wd193,383,1572 ${CMAKE_CXX_FLAGS}")
@@ -1273,11 +982,6 @@ write_basic_package_version_file("openPMDConfigVersion.cmake"
1273
982
  if(openPMD_INSTALL)
1274
983
  set(openPMD_INSTALL_TARGET_NAMES openPMD)
1275
984
 
1276
- if(openPMD_HAVE_ADIOS1)
1277
- list(APPEND openPMD_INSTALL_TARGET_NAMES
1278
- openPMD.ADIOS1.Serial openPMD.ADIOS1.Parallel)
1279
- endif()
1280
-
1281
985
  if(openPMD_BUILD_CLI_TOOLS)
1282
986
  foreach(toolname ${openPMD_CLI_TOOL_NAMES})
1283
987
  list(APPEND openPMD_INSTALL_TARGET_NAMES openpmd-${toolname})
@@ -1361,11 +1065,6 @@ if(openPMD_INSTALL)
1361
1065
  ${openPMD_BINARY_DIR}/openPMDConfigVersion.cmake
1362
1066
  DESTINATION ${openPMD_INSTALL_CMAKEDIR}
1363
1067
  )
1364
- install(
1365
- FILES
1366
- ${openPMD_SOURCE_DIR}/share/openPMD/cmake/FindADIOS.cmake
1367
- DESTINATION ${openPMD_INSTALL_CMAKEDIR}/Modules
1368
- )
1369
1068
  # pkg-config .pc file for depending legacy projects
1370
1069
  # This is for projects that do not use a build file generator, e.g.
1371
1070
  # because they compile manually on the command line or write their
@@ -1572,7 +1271,7 @@ if(openPMD_BUILD_TESTING)
1572
1271
  # openpmd-pipe (python) test
1573
1272
  if( NOT WIN32
1574
1273
  AND openPMD_HAVE_HDF5
1575
- AND (openPMD_HAVE_ADIOS2 OR openPMD_HAVE_ADIOS1)
1274
+ AND openPMD_HAVE_ADIOS2
1576
1275
  AND EXAMPLE_DATA_FOUND
1577
1276
  )
1578
1277
  if( openPMD_HAVE_MPI )
@@ -1584,18 +1283,25 @@ if(openPMD_BUILD_TESTING)
1584
1283
  add_test(NAME CLI.pipe.py
1585
1284
  COMMAND sh -c
1586
1285
  "${MPI_TEST_EXE} ${Python_EXECUTABLE} \
1587
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1286
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1588
1287
  --infile ../samples/git-sample/data%T.h5 \
1589
1288
  --outfile ../samples/git-sample/data%T.bp && \
1590
1289
  \
1591
1290
  ${MPI_TEST_EXE} ${Python_EXECUTABLE} \
1592
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1291
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1292
+ --infile ../samples/git-sample/data00000100.h5 \
1293
+ --outfile \
1294
+ ../samples/git-sample/single_iteration_%T.bp && \
1295
+ \
1296
+ ${MPI_TEST_EXE} ${Python_EXECUTABLE} \
1297
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1593
1298
  --infile ../samples/git-sample/thetaMode/data%T.h5 \
1594
- --outfile ../samples/git-sample/thetaMode/data.bp && \
1299
+ --outfile \
1300
+ ../samples/git-sample/thetaMode/data_%T.bp && \
1595
1301
  \
1596
- ${Python_EXECUTABLE} \
1597
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1598
- --infile ../samples/git-sample/thetaMode/data.bp \
1302
+ ${MPI_TEST_EXE} ${Python_EXECUTABLE} \
1303
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1304
+ --infile ../samples/git-sample/thetaMode/data_%T.bp \
1599
1305
  --outfile ../samples/git-sample/thetaMode/data%T.json \
1600
1306
  "
1601
1307
  WORKING_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
@@ -1604,17 +1310,17 @@ if(openPMD_BUILD_TESTING)
1604
1310
  add_test(NAME CLI.pipe.py
1605
1311
  COMMAND sh -c
1606
1312
  "${Python_EXECUTABLE} \
1607
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1313
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1608
1314
  --infile ../samples/git-sample/data%T.h5 \
1609
1315
  --outfile ../samples/git-sample/data%T.bp && \
1610
1316
  \
1611
1317
  ${Python_EXECUTABLE} \
1612
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1318
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1613
1319
  --infile ../samples/git-sample/thetaMode/data%T.h5 \
1614
1320
  --outfile ../samples/git-sample/thetaMode/data%T.bp && \
1615
1321
  \
1616
1322
  ${Python_EXECUTABLE} \
1617
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1323
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1618
1324
  --infile ../samples/git-sample/thetaMode/data%T.bp \
1619
1325
  --outfile ../samples/git-sample/thetaMode/data%T.json \
1620
1326
  "
@@ -1672,7 +1378,6 @@ if(openPMD_BUILD_TESTING)
1672
1378
  endif()
1673
1379
  endif()
1674
1380
 
1675
-
1676
1381
  # Status Message for Build Options ############################################
1677
1382
  #
1678
1383
  openpmd_print_summary()