openPMD-api 0.15.1__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 (366) hide show
  1. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/CMakeLists.txt +57 -345
  2. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/PKG-INFO +35 -30
  3. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/README.md +30 -27
  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.1 → openpmd_api-0.16.0}/examples/10_streaming_read.cpp +27 -10
  9. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/10_streaming_read.py +9 -7
  10. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/10_streaming_write.cpp +15 -1
  11. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/10_streaming_write.py +10 -9
  12. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/11_particle_dataframe.py +21 -0
  13. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/12_span_write.cpp +27 -3
  14. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/12_span_write.py +5 -0
  15. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/13_write_dynamic_configuration.cpp +6 -2
  16. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/13_write_dynamic_configuration.py +8 -8
  17. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/1_structure.cpp +8 -3
  18. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/2_read_serial.cpp +15 -12
  19. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/2_read_serial.py +1 -1
  20. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/2a_read_thetaMode_serial.cpp +2 -0
  21. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/2a_read_thetaMode_serial.py +2 -0
  22. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/3_write_serial.cpp +6 -2
  23. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/3_write_serial.py +6 -1
  24. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/3a_write_thetaMode_serial.cpp +5 -0
  25. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/3a_write_thetaMode_serial.py +5 -0
  26. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/3b_write_resizable_particles.cpp +5 -0
  27. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/3b_write_resizable_particles.py +1 -1
  28. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/4_read_parallel.cpp +15 -3
  29. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/5_write_parallel.cpp +30 -7
  30. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/5_write_parallel.py +31 -5
  31. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/7_extended_write_serial.cpp +7 -11
  32. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/7_extended_write_serial.py +7 -5
  33. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/8_benchmark_parallel.cpp +5 -4
  34. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/8a_benchmark_write_parallel.cpp +15 -8
  35. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/8b_benchmark_read_parallel.cpp +7 -3
  36. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/9_particle_write_serial.py +14 -10
  37. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/ChunkInfo.hpp +60 -0
  38. openpmd_api-0.16.0/include/openPMD/ChunkInfo_internal.hpp +67 -0
  39. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/Dataset.hpp +11 -0
  40. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/Datatype.hpp +128 -2
  41. openpmd_api-0.16.0/include/openPMD/Datatype.tpp +258 -0
  42. openpmd_api-0.16.0/include/openPMD/DatatypeHelpers.hpp +28 -0
  43. openpmd_api-0.16.0/include/openPMD/DatatypeMacros.hpp +115 -0
  44. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/Error.hpp +4 -3
  45. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/ADIOS/ADIOS2Auxiliary.hpp +95 -2
  46. openpmd_api-0.16.0/include/openPMD/IO/ADIOS/ADIOS2File.hpp +485 -0
  47. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/ADIOS/ADIOS2FilePosition.hpp +5 -10
  48. openpmd_api-0.16.0/include/openPMD/IO/ADIOS/ADIOS2IOHandler.hpp +855 -0
  49. openpmd_api-0.16.0/include/openPMD/IO/ADIOS/macros.hpp +42 -0
  50. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/AbstractIOHandler.hpp +49 -8
  51. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/AbstractIOHandlerHelper.hpp +6 -2
  52. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/AbstractIOHandlerImpl.hpp +31 -203
  53. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/AbstractIOHandlerImplCommon.hpp +10 -0
  54. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/DummyIOHandler.hpp +1 -0
  55. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/Format.hpp +2 -1
  56. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/HDF5Auxiliary.hpp +1 -1
  57. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/HDF5IOHandlerImpl.hpp +25 -3
  58. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/ParallelHDF5IOHandler.hpp +2 -1
  59. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/ParallelHDF5IOHandlerImpl.hpp +2 -0
  60. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/IOTask.hpp +55 -35
  61. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/JSON/JSONIOHandler.hpp +19 -1
  62. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/JSON/JSONIOHandlerImpl.hpp +61 -20
  63. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/Iteration.hpp +42 -15
  64. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/Mesh.hpp +1 -1
  65. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/ParticleSpecies.hpp +9 -18
  66. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/ReadIterations.hpp +20 -25
  67. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/Record.hpp +1 -1
  68. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/RecordComponent.hpp +108 -26
  69. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/RecordComponent.tpp +66 -39
  70. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/Series.hpp +245 -30
  71. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/ThrowError.hpp +2 -11
  72. openpmd_api-0.16.0/include/openPMD/UndefDatatypeMacros.hpp +24 -0
  73. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/WriteIterations.hpp +18 -0
  74. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/JSON_internal.hpp +19 -4
  75. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Mpi.hpp +50 -0
  76. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/TypeTraits.hpp +77 -0
  77. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/UniquePtr.hpp +21 -18
  78. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Variant.hpp +14 -2
  79. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/backend/Attributable.hpp +164 -17
  80. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/backend/Attribute.hpp +128 -63
  81. openpmd_api-0.16.0/include/openPMD/backend/BaseRecord.hpp +1022 -0
  82. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/backend/BaseRecordComponent.hpp +78 -11
  83. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/backend/Container.hpp +110 -57
  84. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/backend/MeshRecordComponent.hpp +22 -1
  85. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/backend/PatchRecord.hpp +1 -1
  86. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/backend/PatchRecordComponent.hpp +52 -61
  87. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/backend/Writable.hpp +39 -12
  88. openpmd_api-0.16.0/include/openPMD/binding/python/Common.hpp +59 -0
  89. openPMD-api-0.15.1/src/binding/python/Container.cpp → openpmd_api-0.16.0/include/openPMD/binding/python/Container.H +49 -72
  90. openpmd_api-0.16.0/include/openPMD/binding/python/Mpi.hpp +100 -0
  91. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/binding/python/Numpy.hpp +27 -7
  92. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/binding/python/Pickle.hpp +5 -11
  93. openpmd_api-0.16.0/include/openPMD/binding/python/RecordComponent.hpp +110 -0
  94. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/cli/ls.hpp +2 -2
  95. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/config.hpp.in +1 -1
  96. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/version.hpp +1 -1
  97. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/openPMDConfig.cmake.in +1 -7
  98. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/openPMD_api.egg-info/PKG-INFO +35 -30
  99. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/openPMD_api.egg-info/SOURCES.txt +16 -109
  100. openpmd_api-0.16.0/openPMD_api.egg-info/requires.txt +1 -0
  101. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/pyproject.toml +3 -2
  102. openpmd_api-0.16.0/requirements.txt +1 -0
  103. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/setup.py +19 -14
  104. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/share/openPMD/download_samples.ps1 +5 -0
  105. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/share/openPMD/download_samples.sh +8 -4
  106. openpmd_api-0.16.0/src/ChunkInfo.cpp +168 -0
  107. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/Dataset.cpp +46 -5
  108. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/Datatype.cpp +44 -41
  109. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/Error.cpp +5 -6
  110. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/Format.cpp +9 -23
  111. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/ADIOS/ADIOS2Auxiliary.cpp +39 -0
  112. openpmd_api-0.16.0/src/IO/ADIOS/ADIOS2File.cpp +1355 -0
  113. openpmd_api-0.16.0/src/IO/ADIOS/ADIOS2IOHandler.cpp +2220 -0
  114. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/AbstractIOHandler.cpp +12 -1
  115. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/AbstractIOHandlerHelper.cpp +55 -55
  116. openpmd_api-0.16.0/src/IO/AbstractIOHandlerImpl.cpp +493 -0
  117. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/DummyIOHandler.cpp +5 -0
  118. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/HDF5/HDF5Auxiliary.cpp +5 -4
  119. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/HDF5/HDF5IOHandler.cpp +627 -188
  120. openpmd_api-0.16.0/src/IO/HDF5/ParallelHDF5IOHandler.cpp +454 -0
  121. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/IOTask.cpp +8 -1
  122. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/InvalidatableFile.cpp +3 -3
  123. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/JSON/JSONIOHandler.cpp +22 -2
  124. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/JSON/JSONIOHandlerImpl.cpp +368 -98
  125. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/Iteration.cpp +68 -81
  126. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/Mesh.cpp +26 -28
  127. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/ParticlePatches.cpp +7 -8
  128. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/ParticleSpecies.cpp +15 -35
  129. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/ReadIterations.cpp +67 -32
  130. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/Record.cpp +17 -23
  131. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/RecordComponent.cpp +225 -83
  132. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/Series.cpp +895 -152
  133. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/WriteIterations.cpp +43 -9
  134. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/auxiliary/Filesystem.cpp +4 -2
  135. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/auxiliary/JSON.cpp +144 -17
  136. openpmd_api-0.16.0/src/auxiliary/Mpi.cpp +113 -0
  137. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/backend/Attributable.cpp +172 -53
  138. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/backend/BaseRecordComponent.cpp +64 -10
  139. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/backend/MeshRecordComponent.cpp +22 -2
  140. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/backend/PatchRecord.cpp +8 -8
  141. openpmd_api-0.16.0/src/backend/PatchRecordComponent.cpp +87 -0
  142. openpmd_api-0.16.0/src/backend/Writable.cpp +106 -0
  143. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/Access.cpp +1 -5
  144. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/Attributable.cpp +211 -62
  145. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/BaseRecordComponent.cpp +6 -9
  146. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/ChunkInfo.cpp +30 -7
  147. openpmd_api-0.16.0/src/binding/python/Dataset.cpp +92 -0
  148. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/Datatype.cpp +3 -7
  149. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/Error.cpp +9 -4
  150. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/Helper.cpp +3 -7
  151. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/Iteration.cpp +41 -9
  152. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/IterationEncoding.cpp +1 -5
  153. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/Mesh.cpp +21 -15
  154. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/MeshRecordComponent.cpp +49 -11
  155. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/ParticlePatches.cpp +14 -8
  156. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/ParticleSpecies.cpp +27 -10
  157. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/PatchRecord.cpp +10 -6
  158. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/PatchRecordComponent.cpp +51 -10
  159. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/Record.cpp +20 -9
  160. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/RecordComponent.cpp +299 -252
  161. openpmd_api-0.16.0/src/binding/python/Series.cpp +449 -0
  162. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/UnitDimension.cpp +1 -5
  163. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/openPMD.cpp +15 -16
  164. openpmd_api-0.16.0/src/binding/python/openpmd_api/DaskArray.py +149 -0
  165. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/DaskDataFrame.py +20 -12
  166. openpmd_api-0.16.0/src/binding/python/openpmd_api/DataFrame.py +184 -0
  167. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/__init__.py +4 -1
  168. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/pipe/__main__.py +20 -45
  169. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/cli/ls.cpp +1 -0
  170. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/config.cpp +15 -3
  171. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/version.cpp +3 -6
  172. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/AuxiliaryTest.cpp +4 -3
  173. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/CoreTest.cpp +219 -75
  174. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/JSONTest.cpp +1 -1
  175. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/ParallelIOTest.cpp +490 -154
  176. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/SerialIOTest.cpp +1046 -586
  177. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/python/unittest/API/APITest.py +75 -61
  178. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/python/unittest/Test.py +2 -2
  179. openPMD-api-0.15.1/include/openPMD/DatatypeHelpers.hpp +0 -299
  180. openPMD-api-0.15.1/include/openPMD/IO/ADIOS/ADIOS1Auxiliary.hpp +0 -279
  181. openPMD-api-0.15.1/include/openPMD/IO/ADIOS/ADIOS1FilePosition.hpp +0 -36
  182. openPMD-api-0.15.1/include/openPMD/IO/ADIOS/ADIOS1IOHandler.hpp +0 -81
  183. openPMD-api-0.15.1/include/openPMD/IO/ADIOS/ADIOS1IOHandlerImpl.hpp +0 -64
  184. openPMD-api-0.15.1/include/openPMD/IO/ADIOS/ADIOS2IOHandler.hpp +0 -1401
  185. openPMD-api-0.15.1/include/openPMD/IO/ADIOS/ADIOS2PreloadAttributes.hpp +0 -170
  186. openPMD-api-0.15.1/include/openPMD/IO/ADIOS/CommonADIOS1IOHandler.hpp +0 -131
  187. openPMD-api-0.15.1/include/openPMD/IO/ADIOS/ParallelADIOS1IOHandler.hpp +0 -69
  188. openPMD-api-0.15.1/include/openPMD/IO/ADIOS/ParallelADIOS1IOHandlerImpl.hpp +0 -71
  189. openPMD-api-0.15.1/include/openPMD/backend/BaseRecord.hpp +0 -377
  190. openPMD-api-0.15.1/openPMD_api.egg-info/requires.txt +0 -1
  191. openPMD-api-0.15.1/requirements.txt +0 -1
  192. openPMD-api-0.15.1/share/openPMD/cmake/FindADIOS.cmake +0 -311
  193. openPMD-api-0.15.1/share/openPMD/thirdParty/catch2/include/catch2/catch.hpp +0 -17976
  194. openPMD-api-0.15.1/share/openPMD/thirdParty/json/CMakeLists.txt +0 -164
  195. openPMD-api-0.15.1/share/openPMD/thirdParty/json/LICENSE.MIT +0 -21
  196. openPMD-api-0.15.1/share/openPMD/thirdParty/json/cmake/config.cmake.in +0 -15
  197. openPMD-api-0.15.1/share/openPMD/thirdParty/json/cmake/download_test_data.cmake +0 -56
  198. openPMD-api-0.15.1/share/openPMD/thirdParty/json/cmake/nlohmann_jsonConfigVersion.cmake.in +0 -20
  199. openPMD-api-0.15.1/share/openPMD/thirdParty/json/cmake/pkg-config.pc.in +0 -4
  200. openPMD-api-0.15.1/share/openPMD/thirdParty/json/nlohmann_json.natvis +0 -32
  201. openPMD-api-0.15.1/share/openPMD/thirdParty/json/single_include/nlohmann/json.hpp +0 -25447
  202. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/CMakeLists.txt +0 -318
  203. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/LICENSE +0 -29
  204. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/MANIFEST.in +0 -5
  205. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/README.rst +0 -180
  206. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/attr.h +0 -678
  207. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/buffer_info.h +0 -193
  208. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/cast.h +0 -1663
  209. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/chrono.h +0 -225
  210. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/common.h +0 -2
  211. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/complex.h +0 -74
  212. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/detail/class.h +0 -735
  213. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/detail/common.h +0 -1188
  214. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/detail/descr.h +0 -158
  215. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/detail/init.h +0 -428
  216. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/detail/internals.h +0 -583
  217. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/detail/type_caster_base.h +0 -1010
  218. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/detail/typeid.h +0 -65
  219. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/eigen.h +0 -713
  220. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/embed.h +0 -279
  221. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/eval.h +0 -156
  222. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/functional.h +0 -130
  223. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/gil.h +0 -239
  224. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/iostream.h +0 -265
  225. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/numpy.h +0 -1991
  226. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/operators.h +0 -202
  227. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/options.h +0 -76
  228. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/pybind11.h +0 -2858
  229. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/pytypes.h +0 -2467
  230. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/stl/filesystem.h +0 -116
  231. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/stl.h +0 -446
  232. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/include/pybind11/stl_bind.h +0 -785
  233. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/pybind11/__init__.py +0 -17
  234. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/pybind11/__main__.py +0 -56
  235. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/pybind11/_version.py +0 -12
  236. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/pybind11/_version.pyi +0 -6
  237. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/pybind11/commands.py +0 -37
  238. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/pybind11/py.typed +0 -0
  239. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/pybind11/setup_helpers.py +0 -504
  240. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/pybind11/setup_helpers.pyi +0 -63
  241. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/FindCatch.cmake +0 -72
  242. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/FindEigen3.cmake +0 -86
  243. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/FindPythonLibsNew.cmake +0 -285
  244. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/JoinPaths.cmake +0 -23
  245. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/check-style.sh +0 -44
  246. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/cmake_uninstall.cmake.in +0 -23
  247. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/codespell_ignore_lines_from_errors.py +0 -35
  248. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/libsize.py +0 -36
  249. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/make_changelog.py +0 -63
  250. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/pybind11.pc.in +0 -7
  251. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/pybind11Common.cmake +0 -385
  252. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/pybind11Config.cmake.in +0 -231
  253. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/pybind11NewTools.cmake +0 -256
  254. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/pybind11Tools.cmake +0 -233
  255. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/pyproject.toml +0 -3
  256. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/setup_global.py.in +0 -61
  257. openPMD-api-0.15.1/share/openPMD/thirdParty/pybind11/tools/setup_main.py.in +0 -42
  258. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/CMakeLists.txt +0 -116
  259. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/LICENSE +0 -21
  260. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/README.md +0 -1967
  261. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/cmake/toml11Config.cmake.in +0 -2
  262. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/color.hpp +0 -64
  263. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/combinator.hpp +0 -306
  264. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/comments.hpp +0 -472
  265. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/datetime.hpp +0 -631
  266. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/exception.hpp +0 -65
  267. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/from.hpp +0 -19
  268. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/get.hpp +0 -1119
  269. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/into.hpp +0 -19
  270. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/lexer.hpp +0 -293
  271. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/literal.hpp +0 -113
  272. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/macros.hpp +0 -121
  273. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/parser.hpp +0 -2416
  274. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/region.hpp +0 -417
  275. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/result.hpp +0 -717
  276. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/serializer.hpp +0 -922
  277. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/source_location.hpp +0 -233
  278. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/storage.hpp +0 -43
  279. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/string.hpp +0 -228
  280. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/traits.hpp +0 -328
  281. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/types.hpp +0 -173
  282. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/utility.hpp +0 -150
  283. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/value.hpp +0 -2035
  284. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml/version.hpp +0 -42
  285. openPMD-api-0.15.1/share/openPMD/thirdParty/toml11/toml.hpp +0 -38
  286. openPMD-api-0.15.1/src/ChunkInfo.cpp +0 -51
  287. openPMD-api-0.15.1/src/IO/ADIOS/ADIOS1IOHandler.cpp +0 -467
  288. openPMD-api-0.15.1/src/IO/ADIOS/ADIOS2IOHandler.cpp +0 -3775
  289. openPMD-api-0.15.1/src/IO/ADIOS/ADIOS2PreloadAttributes.cpp +0 -282
  290. openPMD-api-0.15.1/src/IO/ADIOS/CommonADIOS1IOHandler.cpp +0 -2054
  291. openPMD-api-0.15.1/src/IO/ADIOS/ParallelADIOS1IOHandler.cpp +0 -511
  292. openPMD-api-0.15.1/src/IO/AbstractIOHandlerImpl.cpp +0 -33
  293. openPMD-api-0.15.1/src/IO/HDF5/ParallelHDF5IOHandler.cpp +0 -207
  294. openPMD-api-0.15.1/src/backend/Container.cpp +0 -58
  295. openPMD-api-0.15.1/src/backend/PatchRecordComponent.cpp +0 -148
  296. openPMD-api-0.15.1/src/backend/Writable.cpp +0 -58
  297. openPMD-api-0.15.1/src/binding/python/BaseRecord.cpp +0 -65
  298. openPMD-api-0.15.1/src/binding/python/Dataset.cpp +0 -72
  299. openPMD-api-0.15.1/src/binding/python/Series.cpp +0 -279
  300. openPMD-api-0.15.1/src/binding/python/openpmd_api/DaskArray.py +0 -142
  301. openPMD-api-0.15.1/src/binding/python/openpmd_api/DataFrame.py +0 -69
  302. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/COPYING +0 -0
  303. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/COPYING.LESSER +0 -0
  304. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/MANIFEST.in +0 -0
  305. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/cmake/openPMDFunctions.cmake +0 -0
  306. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/4_read_parallel.py +0 -0
  307. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/examples/6_dump_filebased_series.cpp +0 -0
  308. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/Datatype_internal.hpp +0 -0
  309. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/AbstractFilePosition.hpp +0 -0
  310. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/Access.hpp +0 -0
  311. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/FlushParametersInternal.hpp +0 -0
  312. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/HDF5FilePosition.hpp +0 -0
  313. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/HDF5/HDF5IOHandler.hpp +0 -0
  314. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/InvalidatableFile.hpp +0 -0
  315. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IO/JSON/JSONFilePosition.hpp +0 -0
  316. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/IterationEncoding.hpp +0 -0
  317. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/ParticlePatches.hpp +0 -0
  318. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/Span.hpp +0 -0
  319. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/Streaming.hpp +0 -0
  320. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/UnitDimension.hpp +0 -0
  321. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Date.hpp +0 -0
  322. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/DerefDynamicCast.hpp +0 -0
  323. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Environment.hpp +0 -0
  324. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Export.hpp +0 -0
  325. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Filesystem.hpp +0 -0
  326. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/JSON.hpp +0 -0
  327. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/Memory.hpp +0 -0
  328. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/OutOfRangeMsg.hpp +0 -0
  329. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/ShareRaw.hpp +0 -0
  330. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/ShareRawInternal.hpp +0 -0
  331. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/auxiliary/StringManip.hpp +0 -0
  332. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/backend/ParsePreference.hpp +0 -0
  333. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/benchmark/MemoryProfiler.hpp +0 -0
  334. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/benchmark/Timer.hpp +0 -0
  335. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/BlockSlicer.hpp +0 -0
  336. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/DatasetFiller.hpp +0 -0
  337. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/MPIBenchmark.hpp +0 -0
  338. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/MPIBenchmarkReport.hpp +0 -0
  339. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/OneDimensionalBlockSlicer.hpp +0 -0
  340. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/benchmark/mpi/RandomDatasetFiller.hpp +0 -0
  341. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/binding/python/UnitDimension.hpp +0 -0
  342. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/helper/list_series.hpp +0 -0
  343. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/include/openPMD/openPMD.hpp +0 -0
  344. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/openPMD.pc.in +0 -0
  345. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/openPMD_api.egg-info/dependency_links.txt +0 -0
  346. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/openPMD_api.egg-info/entry_points.txt +0 -0
  347. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/openPMD_api.egg-info/not-zip-safe +0 -0
  348. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/openPMD_api.egg-info/top_level.txt +0 -0
  349. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/setup.cfg +0 -0
  350. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/share/openPMD/validate_files.sh +0 -0
  351. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/FlushParams.cpp +0 -0
  352. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IO/JSON/JSONFilePosition.cpp +0 -0
  353. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/IterationEncoding.cpp +0 -0
  354. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/auxiliary/Date.cpp +0 -0
  355. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/benchmark/mpi/OneDimensionalBlockSlicer.cpp +0 -0
  356. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/ls/__init__.py +0 -0
  357. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/ls/__main__.py +0 -0
  358. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/binding/python/openpmd_api/pipe/__init__.py +0 -0
  359. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/cli/pipe.py +0 -0
  360. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/src/helper/list_series.cpp +0 -0
  361. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/CatchMain.cpp +0 -0
  362. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/CatchRunner.cpp +0 -0
  363. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/python/unittest/API/__init__.py +0 -0
  364. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/python/unittest/TestUtilities/TestUtilities.py +0 -0
  365. {openPMD-api-0.15.1 → openpmd_api-0.16.0}/test/python/unittest/TestUtilities/__init__.py +0 -0
  366. {openPMD-api-0.15.1 → 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.1) # 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)
@@ -334,10 +313,16 @@ endif()
334
313
  # HDF5 checks
335
314
  string(CONCAT openPMD_HDF5_STATUS "")
336
315
  # version: lower limit
337
- if(openPMD_HAVE_HDF5 AND HDF5_VERSION VERSION_LESS 1.8.13)
338
- string(CONCAT openPMD_HDF5_STATUS
339
- "Found HDF5 version ${HDF5_VERSION} is too old. At least "
340
- "version 1.8.13 is required.\n")
316
+ if(openPMD_HAVE_HDF5)
317
+ if(HDF5_VERSION STREQUAL "")
318
+ message(WARNING "HDF5_VERSION is empty. Now assuming it is 1.8.13 or newer.")
319
+ else()
320
+ if(HDF5_VERSION VERSION_LESS 1.8.13)
321
+ string(CONCAT openPMD_HDF5_STATUS
322
+ "Found HDF5 version ${HDF5_VERSION} is too old. At least "
323
+ "version 1.8.13 is required.\n")
324
+ endif()
325
+ endif()
341
326
  endif()
342
327
  # we imply support for parallel I/O if MPI variant is ON
343
328
  if(openPMD_HAVE_MPI AND openPMD_HAVE_HDF5
@@ -374,64 +359,6 @@ if(openPMD_HDF5_STATUS)
374
359
  endif()
375
360
  endif()
376
361
 
377
- # always search for a sequential lib first, so we can mock MPI
378
- find_package(ADIOS 1.13.1 COMPONENTS sequential QUIET)
379
- set(ADIOS_DEFINITIONS_SEQUENTIAL ${ADIOS_DEFINITIONS})
380
- set(ADIOS_LIBRARIES_SEQUENTIAL ${ADIOS_LIBRARIES})
381
- set(ADIOS_INCLUDE_DIRS_SEQUENTIAL ${ADIOS_INCLUDE_DIRS})
382
- unset(ADIOS_FOUND CACHE)
383
- unset(ADIOS_VERSION CACHE)
384
-
385
- # regular logic
386
- set(ADIOS1_PREFER_COMPONENTS)
387
- if(NOT openPMD_HAVE_MPI)
388
- set(ADIOS1_PREFER_COMPONENTS sequential)
389
- endif()
390
- if(openPMD_USE_ADIOS1 STREQUAL AUTO)
391
- find_package(ADIOS 1.13.1 COMPONENTS ${ADIOS1_PREFER_COMPONENTS})
392
- if(ADIOS_FOUND)
393
- set(openPMD_HAVE_ADIOS1 TRUE)
394
- else()
395
- set(openPMD_HAVE_ADIOS1 FALSE)
396
- endif()
397
- elseif(openPMD_USE_ADIOS1)
398
- find_package(ADIOS 1.13.1 REQUIRED COMPONENTS ${ADIOS1_PREFER_COMPONENTS})
399
- set(openPMD_HAVE_ADIOS1 TRUE)
400
- else()
401
- set(openPMD_HAVE_ADIOS1 FALSE)
402
- endif()
403
-
404
- if(openPMD_HAVE_MPI AND openPMD_HAVE_ADIOS1 AND ADIOS_HAVE_SEQUENTIAL)
405
- string(CONCAT openPMD_ADIOS1_STATUS
406
- "Found MPI but requested ADIOS1 is serial. "
407
- "Set openPMD_USE_MPI=OFF to disable MPI.\n"
408
- "If you manually installed a parallel version of ADIOS1 in "
409
- "a non-default path, add its installation prefix to the "
410
- "environment variable CMAKE_PREFIX_PATH to find it: "
411
- "https://cmake.org/cmake/help/latest/envvar/CMAKE_PREFIX_PATH.html")
412
- if(openPMD_USE_ADIOS1 STREQUAL AUTO)
413
- message(WARNING "${openPMD_ADIOS1_STATUS}")
414
- set(openPMD_HAVE_ADIOS1 FALSE)
415
- elseif(openPMD_USE_ADIOS1)
416
- message(FATAL_ERROR "${openPMD_ADIOS1_STATUS}")
417
- endif()
418
- endif()
419
- if(NOT openPMD_HAVE_MPI AND openPMD_HAVE_ADIOS1 AND NOT ADIOS_HAVE_SEQUENTIAL)
420
- string(CONCAT openPMD_ADIOS1_STATUS
421
- "Did not find MPI but requested ADIOS1 is parallel. "
422
- "Set openPMD_USE_ADIOS1=OFF to disable ADIOS1.\n"
423
- "If you manually installed a serial version of ADIOS1 in "
424
- "a non-default path, add its installation prefix to the "
425
- "environment variable CMAKE_PREFIX_PATH to find it: "
426
- "https://cmake.org/cmake/help/latest/envvar/CMAKE_PREFIX_PATH.html")
427
- if(openPMD_USE_ADIOS1 STREQUAL AUTO)
428
- message(WARNING "${openPMD_ADIOS1_STATUS}")
429
- set(openPMD_HAVE_ADIOS1 FALSE)
430
- elseif(openPMD_USE_ADIOS1)
431
- message(FATAL_ERROR "${openPMD_ADIOS1_STATUS}")
432
- endif()
433
- endif()
434
-
435
362
  # external library: ADIOS2 (optional)
436
363
  if(openPMD_USE_ADIOS2 STREQUAL AUTO)
437
364
  find_package(ADIOS2 2.7.0 CONFIG)
@@ -446,50 +373,10 @@ elseif(openPMD_USE_ADIOS2)
446
373
  else()
447
374
  set(openPMD_HAVE_ADIOS2 FALSE)
448
375
  endif()
449
-
450
376
  # TODO: Check if ADIOS2 is parallel when openPMD_HAVE_MPI is ON
451
377
 
452
378
  # external library: pybind11 (optional)
453
- set(_PY_DEV_MODULE Development.Module)
454
- if(CMAKE_VERSION VERSION_LESS 3.18.0)
455
- # over-specification needed for CMake<3.18
456
- # https://pybind11.readthedocs.io/en/latest/compiling.html#findpython-mode
457
- # https://cmake.org/cmake/help/v3.18/module/FindPython.html
458
- set(_PY_DEV_MODULE Development)
459
- endif()
460
- if(openPMD_USE_PYTHON STREQUAL AUTO)
461
- find_package(Python 3.7.0 COMPONENTS Interpreter ${_PY_DEV_MODULE})
462
- if(Python_FOUND)
463
- if(openPMD_USE_INTERNAL_PYBIND11)
464
- add_subdirectory("${openPMD_SOURCE_DIR}/share/openPMD/thirdParty/pybind11")
465
- set(openPMD_HAVE_PYTHON TRUE)
466
- message(STATUS "pybind11: Using INTERNAL version 2.10.1")
467
- else()
468
- find_package(pybind11 2.10.1 CONFIG)
469
- if(pybind11_FOUND)
470
- set(openPMD_HAVE_PYTHON TRUE)
471
- message(STATUS "pybind11: Found version '${pybind11_VERSION}'")
472
- else()
473
- set(openPMD_HAVE_PYTHON FALSE)
474
- endif()
475
- endif()
476
- else()
477
- set(openPMD_HAVE_PYTHON FALSE)
478
- endif()
479
- elseif(openPMD_USE_PYTHON)
480
- find_package(Python COMPONENTS Interpreter ${_PY_DEV_MODULE} REQUIRED)
481
- if(openPMD_USE_INTERNAL_PYBIND11)
482
- add_subdirectory("${openPMD_SOURCE_DIR}/share/openPMD/thirdParty/pybind11")
483
- set(openPMD_HAVE_PYTHON TRUE)
484
- message(STATUS "pybind11: Using INTERNAL version 2.10.1")
485
- else()
486
- find_package(pybind11 2.10.1 REQUIRED CONFIG)
487
- set(openPMD_HAVE_PYTHON TRUE)
488
- message(STATUS "pybind11: Found version '${pybind11_VERSION}'")
489
- endif()
490
- else()
491
- set(openPMD_HAVE_PYTHON FALSE)
492
- endif()
379
+ include(${openPMD_SOURCE_DIR}/cmake/dependencies/pybind11.cmake)
493
380
 
494
381
 
495
382
  # Targets #####################################################################
@@ -515,9 +402,9 @@ set(CORE_SOURCE
515
402
  src/auxiliary/Date.cpp
516
403
  src/auxiliary/Filesystem.cpp
517
404
  src/auxiliary/JSON.cpp
405
+ src/auxiliary/Mpi.cpp
518
406
  src/backend/Attributable.cpp
519
407
  src/backend/BaseRecordComponent.cpp
520
- src/backend/Container.cpp
521
408
  src/backend/MeshRecordComponent.cpp
522
409
  src/backend/PatchRecord.cpp
523
410
  src/backend/PatchRecordComponent.cpp
@@ -538,29 +425,9 @@ set(IO_SOURCE
538
425
  src/IO/JSON/JSONIOHandlerImpl.cpp
539
426
  src/IO/JSON/JSONFilePosition.cpp
540
427
  src/IO/ADIOS/ADIOS2IOHandler.cpp
428
+ src/IO/ADIOS/ADIOS2File.cpp
541
429
  src/IO/ADIOS/ADIOS2Auxiliary.cpp
542
- src/IO/ADIOS/ADIOS2PreloadAttributes.cpp
543
430
  src/IO/InvalidatableFile.cpp)
544
- set(IO_ADIOS1_SEQUENTIAL_SOURCE
545
- src/auxiliary/Filesystem.cpp
546
- src/auxiliary/JSON.cpp
547
- src/IO/AbstractIOHandlerImpl.cpp
548
- src/ChunkInfo.cpp
549
- src/Error.cpp
550
- src/IO/IOTask.cpp
551
- src/IO/ADIOS/CommonADIOS1IOHandler.cpp
552
- src/IO/ADIOS/ADIOS1IOHandler.cpp
553
- src/IO/IOTask.cpp)
554
- set(IO_ADIOS1_SOURCE
555
- src/auxiliary/Filesystem.cpp
556
- src/auxiliary/JSON.cpp
557
- src/IO/AbstractIOHandlerImpl.cpp
558
- src/ChunkInfo.cpp
559
- src/Error.cpp
560
- src/IO/IOTask.cpp
561
- src/IO/ADIOS/CommonADIOS1IOHandler.cpp
562
- src/IO/ADIOS/ParallelADIOS1IOHandler.cpp
563
- src/IO/IOTask.cpp)
564
431
 
565
432
  # library
566
433
  if(openPMD_BUILD_SHARED_LIBS)
@@ -627,18 +494,10 @@ target_include_directories(openPMD PUBLIC
627
494
 
628
495
  # Catch2 for unit tests
629
496
  if(openPMD_BUILD_TESTING)
497
+ include(${openPMD_SOURCE_DIR}/cmake/dependencies/catch.cmake)
630
498
  add_library(openPMD::thirdparty::Catch2 INTERFACE IMPORTED)
631
- if(openPMD_USE_INTERNAL_CATCH)
632
- target_include_directories(openPMD::thirdparty::Catch2 SYSTEM INTERFACE
633
- $<BUILD_INTERFACE:${openPMD_SOURCE_DIR}/share/openPMD/thirdParty/catch2/include>
634
- )
635
- message(STATUS "Catch2: Using INTERNAL version '2.13.10'")
636
- else()
637
- find_package(Catch2 2.13.10 REQUIRED CONFIG)
638
- target_link_libraries(openPMD::thirdparty::Catch2
499
+ target_link_libraries(openPMD::thirdparty::Catch2
639
500
  INTERFACE Catch2::Catch2)
640
- message(STATUS "Catch2: Found version '${Catch2_VERSION}'")
641
- endif()
642
501
  endif()
643
502
 
644
503
  if(openPMD_HAVE_MPI)
@@ -652,149 +511,13 @@ target_include_directories(openPMD SYSTEM PRIVATE
652
511
  $<TARGET_PROPERTY:openPMD::thirdparty::toml11,INTERFACE_INCLUDE_DIRECTORIES>)
653
512
 
654
513
  # HDF5 Backend
514
+ # TODO: Once we require CMake 3.20+, simply link hdf5::hdf5 C lib target
655
515
  if(openPMD_HAVE_HDF5)
656
- target_link_libraries(openPMD PRIVATE ${HDF5_LIBRARIES})
516
+ target_link_libraries(openPMD PUBLIC ${HDF5_LIBRARIES})
657
517
  target_include_directories(openPMD SYSTEM PRIVATE ${HDF5_INCLUDE_DIRS})
658
518
  target_compile_definitions(openPMD PRIVATE ${HDF5_DEFINITIONS})
659
519
  endif()
660
520
 
661
- # ADIOS1 Backend
662
- if(openPMD_HAVE_ADIOS1)
663
- add_library(openPMD.ADIOS1.Serial SHARED ${IO_ADIOS1_SEQUENTIAL_SOURCE})
664
- add_library(openPMD.ADIOS1.Parallel SHARED ${IO_ADIOS1_SOURCE})
665
- openpmd_cxx_required(openPMD.ADIOS1.Serial)
666
- openpmd_cxx_required(openPMD.ADIOS1.Parallel)
667
- target_compile_options(openPMD.ADIOS1.Serial PUBLIC ${_msvc_options})
668
- target_compile_options(openPMD.ADIOS1.Parallel PUBLIC ${_msvc_options})
669
-
670
- target_include_directories(openPMD.ADIOS1.Serial PRIVATE
671
- ${openPMD_SOURCE_DIR}/include ${openPMD_BINARY_DIR}/include)
672
- target_include_directories(openPMD.ADIOS1.Parallel PRIVATE
673
- ${openPMD_SOURCE_DIR}/include ${openPMD_BINARY_DIR}/include)
674
-
675
- target_include_directories(openPMD.ADIOS1.Serial SYSTEM PRIVATE
676
- $<TARGET_PROPERTY:openPMD::thirdparty::nlohmann_json,INTERFACE_INCLUDE_DIRECTORIES>
677
- $<TARGET_PROPERTY:openPMD::thirdparty::toml11,INTERFACE_INCLUDE_DIRECTORIES>)
678
- target_include_directories(openPMD.ADIOS1.Parallel SYSTEM PRIVATE
679
- $<TARGET_PROPERTY:openPMD::thirdparty::nlohmann_json,INTERFACE_INCLUDE_DIRECTORIES>
680
- $<TARGET_PROPERTY:openPMD::thirdparty::toml11,INTERFACE_INCLUDE_DIRECTORIES>)
681
-
682
- set_target_properties(openPMD.ADIOS1.Serial PROPERTIES
683
- COMPILE_PDB_NAME openPMD.ADIOS1.Serial
684
- ARCHIVE_OUTPUT_DIRECTORY ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}
685
- LIBRARY_OUTPUT_DIRECTORY ${openPMD_LIBRARY_OUTPUT_DIRECTORY}
686
- RUNTIME_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
687
- PDB_OUTPUT_DIRECTORY ${openPMD_PDB_OUTPUT_DIRECTORY}
688
- COMPILE_PDB_OUTPUT_DIRECTORY ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY}
689
-
690
- POSITION_INDEPENDENT_CODE ON
691
- CXX_VISIBILITY_PRESET hidden
692
- VISIBILITY_INLINES_HIDDEN ON
693
- )
694
- # note: same as above, but for Multi-Config generators
695
- if(isMultiConfig)
696
- foreach(CFG IN LISTS CMAKE_CONFIGURATION_TYPES)
697
- string(TOUPPER "${CFG}" CFG_UPPER)
698
- set_target_properties(openPMD.ADIOS1.Serial PROPERTIES
699
- COMPILE_PDB_NAME_${CFG_UPPER} openPMD.ADIOS1.Serial
700
- ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}/${CFG}
701
- LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY}/${CFG}
702
- RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/${CFG}
703
- PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PDB_OUTPUT_DIRECTORY}/${CFG}
704
- COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY}/${CFG}
705
- )
706
- endforeach()
707
- endif()
708
- if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
709
- set_target_properties(openPMD.ADIOS1.Serial PROPERTIES
710
- LINK_FLAGS "-Wl,--exclude-libs,ALL")
711
- elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
712
- set_target_properties(openPMD.ADIOS1.Serial PROPERTIES
713
- XCODE_ATTRIBUTE_STRIP_STYLE "non-global"
714
- XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING "YES"
715
- XCODE_ATTRIBUTE_SEPARATE_STRIP "YES"
716
- )
717
- endif()
718
- foreach(adlib ${ADIOS_LIBRARIES_SEQUENTIAL})
719
- target_link_libraries(openPMD.ADIOS1.Serial PRIVATE ${adlib})
720
- endforeach()
721
- target_include_directories(openPMD.ADIOS1.Serial SYSTEM PRIVATE ${ADIOS_INCLUDE_DIRS_SEQUENTIAL})
722
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE "${ADIOS_DEFINITIONS_SEQUENTIAL}")
723
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE openPMD_HAVE_ADIOS1=1)
724
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE openPMD_HAVE_MPI=0)
725
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE _NOMPI) # ADIOS header
726
-
727
- if(openPMD_HAVE_MPI)
728
- set_target_properties(openPMD.ADIOS1.Parallel PROPERTIES
729
- COMPILE_PDB_NAME openPMD.ADIOS1.Parallel
730
- ARCHIVE_OUTPUT_DIRECTORY ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}
731
- LIBRARY_OUTPUT_DIRECTORY ${openPMD_LIBRARY_OUTPUT_DIRECTORY}
732
- RUNTIME_OUTPUT_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
733
- PDB_OUTPUT_DIRECTORY ${openPMD_PDB_OUTPUT_DIRECTORY}
734
- COMPILE_PDB_OUTPUT_DIRECTORY ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY}
735
-
736
- POSITION_INDEPENDENT_CODE ON
737
- CXX_VISIBILITY_PRESET hidden
738
- VISIBILITY_INLINES_HIDDEN 1
739
- )
740
- # note: same as above, but for Multi-Config generators
741
- if(isMultiConfig)
742
- foreach(CFG IN LISTS CMAKE_CONFIGURATION_TYPES)
743
- string(TOUPPER "${CFG}" CFG_UPPER)
744
- set_target_properties(openPMD.ADIOS1.Parallel PROPERTIES
745
- COMPILE_PDB_NAME_${CFG_UPPER} opemPMD.ADIOS1.Parallel
746
- ARCHIVE_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_ARCHIVE_OUTPUT_DIRECTORY}/${CFG}
747
- LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_LIBRARY_OUTPUT_DIRECTORY}/${CFG}
748
- RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/${CFG}
749
- PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_PDB_OUTPUT_DIRECTORY}/${CFG}
750
- COMPILE_PDB_OUTPUT_DIRECTORY_${CFG_UPPER} ${openPMD_COMPILE_PDB_OUTPUT_DIRECTORY}/${CFG}
751
- )
752
- endforeach()
753
- endif()
754
- if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
755
- set_target_properties(openPMD.ADIOS1.Parallel PROPERTIES
756
- LINK_FLAGS "-Wl,--exclude-libs,ALL")
757
- elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
758
- set_target_properties(openPMD.ADIOS1.Parallel PROPERTIES
759
- XCODE_ATTRIBUTE_STRIP_STYLE "non-global"
760
- XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING "YES"
761
- XCODE_ATTRIBUTE_SEPARATE_STRIP "YES"
762
- )
763
- endif()
764
- foreach(adlib ${ADIOS_LIBRARIES})
765
- target_link_libraries(openPMD.ADIOS1.Parallel PRIVATE ${adlib})
766
- endforeach()
767
- target_link_libraries(openPMD.ADIOS1.Parallel PUBLIC ${openPMD_MPI_TARGETS})
768
-
769
- target_include_directories(openPMD.ADIOS1.Parallel SYSTEM PRIVATE ${ADIOS_INCLUDE_DIRS})
770
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE "${ADIOS_DEFINITIONS}")
771
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_HAVE_ADIOS1=1)
772
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_HAVE_MPI=1)
773
- else()
774
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_HAVE_ADIOS1=0)
775
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_HAVE_MPI=0)
776
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE _NOMPI) # ADIOS header
777
- endif()
778
- # This ensures that the ADIOS1 targets don't ever include Error.hpp
779
- # To avoid incompatible error types in weird compile configurations
780
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE OPENPMD_ADIOS1_IMPLEMENTATION)
781
-
782
- # Runtime parameter and API status checks ("asserts")
783
- if(openPMD_USE_VERIFY)
784
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE openPMD_USE_VERIFY=1)
785
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_USE_VERIFY=1)
786
- else()
787
- target_compile_definitions(openPMD.ADIOS1.Serial PRIVATE openPMD_USE_VERIFY=0)
788
- target_compile_definitions(openPMD.ADIOS1.Parallel PRIVATE openPMD_USE_VERIFY=0)
789
- endif()
790
-
791
- target_link_libraries(openPMD PUBLIC openPMD.ADIOS1.Serial)
792
- target_link_libraries(openPMD PUBLIC openPMD.ADIOS1.Parallel)
793
- else()
794
- # add stubs to prevent missing symbols in Clang ASAN/UBSAN
795
- target_sources(openPMD PRIVATE ${IO_ADIOS1_SEQUENTIAL_SOURCE} ${IO_ADIOS1_SOURCE})
796
- endif()
797
-
798
521
  # ADIOS2 Backend
799
522
  if(openPMD_HAVE_ADIOS2)
800
523
  if(openPMD_HAVE_MPI)
@@ -817,10 +540,8 @@ if(openPMD_HAVE_PYTHON)
817
540
  src/binding/python/openPMD.cpp
818
541
  src/binding/python/Access.cpp
819
542
  src/binding/python/Attributable.cpp
820
- src/binding/python/BaseRecord.cpp
821
543
  src/binding/python/BaseRecordComponent.cpp
822
544
  src/binding/python/ChunkInfo.cpp
823
- src/binding/python/Container.cpp
824
545
  src/binding/python/Dataset.cpp
825
546
  src/binding/python/Datatype.cpp
826
547
  src/binding/python/Error.cpp
@@ -849,14 +570,8 @@ if(openPMD_HAVE_PYTHON)
849
570
  endif()
850
571
  endif()
851
572
  message(STATUS "Python LTO/IPO: ${_USE_PY_LTO}")
852
- if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.18)
853
- set_target_properties(openPMD.py PROPERTIES
854
- INTERPROCEDURAL_OPTIMIZATION ${_USE_PY_LTO})
855
- else()
856
- if(_USE_PY_LTO)
857
- target_link_libraries(openPMD.py PRIVATE pybind11::lto)
858
- endif()
859
- endif()
573
+ set_target_properties(openPMD.py PROPERTIES
574
+ INTERPROCEDURAL_OPTIMIZATION ${_USE_PY_LTO})
860
575
  unset(_USE_PY_LTO)
861
576
 
862
577
  if(EMSCRIPTEN)
@@ -1188,6 +903,8 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
1188
903
  # /usr/lib/llvm-6.0/lib/clang/6.0.0/lib/linux/libclang_rt.ubsan_minimal-x86_64.so
1189
904
  # at runtime when used with symbol-hidden code (e.g. pybind11 module)
1190
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")
1191
908
  set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wpedantic -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -Wsign-compare ${CMAKE_CXX_FLAGS}")
1192
909
  elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
1193
910
  set(CMAKE_CXX_FLAGS "-w3 -wd193,383,1572 ${CMAKE_CXX_FLAGS}")
@@ -1265,11 +982,6 @@ write_basic_package_version_file("openPMDConfigVersion.cmake"
1265
982
  if(openPMD_INSTALL)
1266
983
  set(openPMD_INSTALL_TARGET_NAMES openPMD)
1267
984
 
1268
- if(openPMD_HAVE_ADIOS1)
1269
- list(APPEND openPMD_INSTALL_TARGET_NAMES
1270
- openPMD.ADIOS1.Serial openPMD.ADIOS1.Parallel)
1271
- endif()
1272
-
1273
985
  if(openPMD_BUILD_CLI_TOOLS)
1274
986
  foreach(toolname ${openPMD_CLI_TOOL_NAMES})
1275
987
  list(APPEND openPMD_INSTALL_TARGET_NAMES openpmd-${toolname})
@@ -1323,10 +1035,9 @@ if(openPMD_INSTALL)
1323
1035
  if(openPMD_BUILD_CLI_TOOLS)
1324
1036
  foreach(toolname ${openPMD_PYTHON_CLI_TOOL_NAMES})
1325
1037
  install(
1326
- FILES ${openPMD_SOURCE_DIR}/src/cli/${toolname}.py
1038
+ PROGRAMS ${openPMD_SOURCE_DIR}/src/cli/${toolname}.py
1327
1039
  DESTINATION ${openPMD_INSTALL_BINDIR}
1328
1040
  RENAME openpmd-${toolname}
1329
- PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
1330
1041
  )
1331
1042
  endforeach()
1332
1043
  endif()
@@ -1354,11 +1065,6 @@ if(openPMD_INSTALL)
1354
1065
  ${openPMD_BINARY_DIR}/openPMDConfigVersion.cmake
1355
1066
  DESTINATION ${openPMD_INSTALL_CMAKEDIR}
1356
1067
  )
1357
- install(
1358
- FILES
1359
- ${openPMD_SOURCE_DIR}/share/openPMD/cmake/FindADIOS.cmake
1360
- DESTINATION ${openPMD_INSTALL_CMAKEDIR}/Modules
1361
- )
1362
1068
  # pkg-config .pc file for depending legacy projects
1363
1069
  # This is for projects that do not use a build file generator, e.g.
1364
1070
  # because they compile manually on the command line or write their
@@ -1565,7 +1271,7 @@ if(openPMD_BUILD_TESTING)
1565
1271
  # openpmd-pipe (python) test
1566
1272
  if( NOT WIN32
1567
1273
  AND openPMD_HAVE_HDF5
1568
- AND (openPMD_HAVE_ADIOS2 OR openPMD_HAVE_ADIOS1)
1274
+ AND openPMD_HAVE_ADIOS2
1569
1275
  AND EXAMPLE_DATA_FOUND
1570
1276
  )
1571
1277
  if( openPMD_HAVE_MPI )
@@ -1577,18 +1283,25 @@ if(openPMD_BUILD_TESTING)
1577
1283
  add_test(NAME CLI.pipe.py
1578
1284
  COMMAND sh -c
1579
1285
  "${MPI_TEST_EXE} ${Python_EXECUTABLE} \
1580
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1286
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1581
1287
  --infile ../samples/git-sample/data%T.h5 \
1582
1288
  --outfile ../samples/git-sample/data%T.bp && \
1583
1289
  \
1584
1290
  ${MPI_TEST_EXE} ${Python_EXECUTABLE} \
1585
- ${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 \
1586
1298
  --infile ../samples/git-sample/thetaMode/data%T.h5 \
1587
- --outfile ../samples/git-sample/thetaMode/data.bp && \
1299
+ --outfile \
1300
+ ../samples/git-sample/thetaMode/data_%T.bp && \
1588
1301
  \
1589
- ${Python_EXECUTABLE} \
1590
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1591
- --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 \
1592
1305
  --outfile ../samples/git-sample/thetaMode/data%T.json \
1593
1306
  "
1594
1307
  WORKING_DIRECTORY ${openPMD_RUNTIME_OUTPUT_DIRECTORY}
@@ -1597,17 +1310,17 @@ if(openPMD_BUILD_TESTING)
1597
1310
  add_test(NAME CLI.pipe.py
1598
1311
  COMMAND sh -c
1599
1312
  "${Python_EXECUTABLE} \
1600
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1313
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1601
1314
  --infile ../samples/git-sample/data%T.h5 \
1602
1315
  --outfile ../samples/git-sample/data%T.bp && \
1603
1316
  \
1604
1317
  ${Python_EXECUTABLE} \
1605
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1318
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1606
1319
  --infile ../samples/git-sample/thetaMode/data%T.h5 \
1607
1320
  --outfile ../samples/git-sample/thetaMode/data%T.bp && \
1608
1321
  \
1609
1322
  ${Python_EXECUTABLE} \
1610
- ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1323
+ ${openPMD_RUNTIME_OUTPUT_DIRECTORY}/openpmd-pipe \
1611
1324
  --infile ../samples/git-sample/thetaMode/data%T.bp \
1612
1325
  --outfile ../samples/git-sample/thetaMode/data%T.json \
1613
1326
  "
@@ -1665,7 +1378,6 @@ if(openPMD_BUILD_TESTING)
1665
1378
  endif()
1666
1379
  endif()
1667
1380
 
1668
-
1669
1381
  # Status Message for Build Options ############################################
1670
1382
  #
1671
1383
  openpmd_print_summary()