react-native-nitro-xlsx 0.1.4 → 0.2.6

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 (428) hide show
  1. package/NitroXlsx.podspec +27 -27
  2. package/Package.swift +35 -10
  3. package/README.md +220 -58
  4. package/android/CMakeLists.txt +24 -27
  5. package/android/cpp-adapter.cpp +12 -0
  6. package/android/src/main/java/com/margelo/nitro/xlsx/NitroXlsxPackage.kt +9 -0
  7. package/cpp/HybridNitroXlsx.cpp +25 -179
  8. package/cpp/HybridNitroXlsx.hpp +2 -2
  9. package/cpp/HybridXlsxConditionalFormat.cpp +252 -0
  10. package/cpp/HybridXlsxConditionalFormat.hpp +62 -0
  11. package/cpp/HybridXlsxConditionalFormats.cpp +46 -0
  12. package/cpp/HybridXlsxConditionalFormats.hpp +28 -0
  13. package/cpp/HybridXlsxWorkbook.cpp +159 -196
  14. package/cpp/HybridXlsxWorkbook.hpp +7 -2
  15. package/cpp/HybridXlsxWorksheet.cpp +433 -62
  16. package/cpp/HybridXlsxWorksheet.hpp +73 -26
  17. package/cpp/XlsxCacheDir.cpp +76 -0
  18. package/cpp/XlsxCacheDir.hpp +27 -0
  19. package/cpp/XlsxError.hpp +68 -0
  20. package/cpp/XlsxJson.cpp +185 -0
  21. package/cpp/XlsxJson.hpp +36 -0
  22. package/ios/XlsxCacheDir.mm +60 -0
  23. package/nitrogen/generated/android/NitroXlsx+autolinking.cmake +2 -0
  24. package/nitrogen/generated/shared/c++/HybridNitroXlsxSpec.hpp +5 -3
  25. package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatSpec.cpp +54 -0
  26. package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatSpec.hpp +95 -0
  27. package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatsSpec.cpp +24 -0
  28. package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatsSpec.hpp +68 -0
  29. package/nitrogen/generated/shared/c++/HybridXlsxWorkbookSpec.cpp +3 -0
  30. package/nitrogen/generated/shared/c++/HybridXlsxWorkbookSpec.hpp +6 -1
  31. package/nitrogen/generated/shared/c++/HybridXlsxWorksheetSpec.cpp +47 -19
  32. package/nitrogen/generated/shared/c++/HybridXlsxWorksheetSpec.hpp +52 -20
  33. package/package.json +3 -3
  34. package/scripts/run-cpp-tests.sh +14 -0
  35. package/src/__mocks__/react-native-nitro-modules.ts +1 -0
  36. package/src/__tests__/index.test.ts +76 -7
  37. package/src/index.ts +107 -18
  38. package/src/specs/NitroXlsx.nitro.ts +141 -44
  39. package/thirdparty/OpenXLSX/.clang-format +118 -0
  40. package/thirdparty/OpenXLSX/.clang-tidy +28 -0
  41. package/thirdparty/OpenXLSX/.gitignore +130 -0
  42. package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_before_XMLNode_wrappers +46 -0
  43. package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_and_stripping +49 -0
  44. package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_char_support +49 -0
  45. package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_support +49 -0
  46. package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespaced_name_disabled +49 -0
  47. package/thirdparty/OpenXLSX/Benchmarks/2024-08-11-benchmarks_post-XLCellIterator-Rework +46 -0
  48. package/thirdparty/OpenXLSX/Benchmarks/2024-08-14-benchmarks_post-default-row-column-style-support +46 -0
  49. package/thirdparty/OpenXLSX/Benchmarks/2024-09-02-benchmarks +46 -0
  50. package/thirdparty/OpenXLSX/Benchmarks/2024-12-19-benchmarks +46 -0
  51. package/thirdparty/OpenXLSX/Benchmarks/2024-12-30-benchmarks-post-XLSharedStrings-by-ref +46 -0
  52. package/thirdparty/OpenXLSX/Benchmarks/2025-01-09-benchmarks-post-conditionalFormatsAndSheetProtection +46 -0
  53. package/thirdparty/OpenXLSX/Benchmarks/2025-01-10-benchmarks-post-XLCellValue-bugfix +46 -0
  54. package/thirdparty/OpenXLSX/Benchmarks/2025-01-31-benchmarks-post-XLComments-implementation +46 -0
  55. package/thirdparty/OpenXLSX/Benchmarks/2025-02-02-benchmarks-post-XLRowIterator-Rework +46 -0
  56. package/thirdparty/OpenXLSX/Benchmarks/2025-07-20-benchmarks-after-hiding-pugixml-internals +46 -0
  57. package/thirdparty/OpenXLSX/Benchmarks/2025-08-29-benchmarks-after-code-review-with-libzip +46 -0
  58. package/thirdparty/OpenXLSX/Benchmarks/Benchmark.cpp +249 -0
  59. package/thirdparty/OpenXLSX/Benchmarks/CMakeLists.txt +19 -0
  60. package/thirdparty/OpenXLSX/CMakeLists.txt +466 -0
  61. package/thirdparty/OpenXLSX/Documentation/CMakeLists.txt +31 -0
  62. package/thirdparty/OpenXLSX/Documentation/Doxyfile.in +2471 -0
  63. package/thirdparty/OpenXLSX/Documentation/DoxygenLayout.xml +194 -0
  64. package/thirdparty/OpenXLSX/Documentation/customdoxygen.css +1355 -0
  65. package/thirdparty/OpenXLSX/Examples/CMakeLists.txt +103 -0
  66. package/thirdparty/OpenXLSX/Examples/Demo1.cpp +279 -0
  67. package/thirdparty/OpenXLSX/Examples/Demo10.cpp +545 -0
  68. package/thirdparty/OpenXLSX/Examples/Demo1A.cpp +137 -0
  69. package/thirdparty/OpenXLSX/Examples/Demo2.cpp +65 -0
  70. package/thirdparty/OpenXLSX/Examples/Demo3.cpp +89 -0
  71. package/thirdparty/OpenXLSX/Examples/Demo4.cpp +86 -0
  72. package/thirdparty/OpenXLSX/Examples/Demo5.cpp +77 -0
  73. package/thirdparty/OpenXLSX/Examples/Demo6.cpp +103 -0
  74. package/thirdparty/OpenXLSX/Examples/Demo7.cpp +79 -0
  75. package/thirdparty/OpenXLSX/Examples/Demo8.cpp +117 -0
  76. package/thirdparty/OpenXLSX/Examples/Demo9.cpp +363 -0
  77. package/thirdparty/OpenXLSX/Examples/cmake/FindLIBZIP.cmake +61 -0
  78. package/thirdparty/OpenXLSX/Examples/external/CustomZip/CustomZip.hpp +256 -0
  79. package/thirdparty/OpenXLSX/LICENSE.md +29 -0
  80. package/thirdparty/OpenXLSX/Makefile.GNU +530 -0
  81. package/thirdparty/OpenXLSX/Notes/TBDs.txt +16 -0
  82. package/thirdparty/OpenXLSX/Notes/confirmed-TBCs.txt +8 -0
  83. package/thirdparty/OpenXLSX/Notes/styles-missing-support.xml +12 -0
  84. package/thirdparty/OpenXLSX/Notes/todo-list.txt +108 -0
  85. package/thirdparty/OpenXLSX/OpenXLSX/CMakeLists.txt +631 -0
  86. package/thirdparty/OpenXLSX/OpenXLSX/OpenXLSX.hpp +63 -0
  87. package/thirdparty/OpenXLSX/OpenXLSX/OpenXLSXConfig.cmake +11 -0
  88. package/thirdparty/OpenXLSX/OpenXLSX/cmake/bundle_static_library.cmake +198 -0
  89. package/thirdparty/OpenXLSX/OpenXLSX/cmake/patch_pkg_config.cmake +69 -0
  90. package/thirdparty/OpenXLSX/OpenXLSX/headers/IZipArchive.hpp +361 -0
  91. package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX-Exports.hpp +12 -0
  92. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCell.hpp +367 -0
  93. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellIterator.hpp +252 -0
  94. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellRange.hpp +223 -0
  95. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellReference.hpp +317 -0
  96. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellValue.hpp +793 -0
  97. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLColor.hpp +232 -0
  98. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLColumn.hpp +159 -0
  99. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCommandQuery.hpp +228 -0
  100. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLComments.hpp +270 -0
  101. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLConstants.hpp +18 -0
  102. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLContentTypes.hpp +264 -0
  103. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDateTime.hpp +175 -0
  104. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDocument.hpp +505 -0
  105. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDrawing.hpp +452 -0
  106. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLException.hpp +161 -0
  107. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLFormula.hpp +375 -0
  108. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLIterator.hpp +40 -0
  109. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLMergeCells.hpp +216 -0
  110. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLProperties.hpp +348 -0
  111. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRelationships.hpp +348 -0
  112. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRow.hpp +721 -0
  113. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRowData.hpp +488 -0
  114. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLSharedStrings.hpp +204 -0
  115. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLSheet.hpp +1640 -0
  116. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLStyles.hpp +2390 -0
  117. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLTables.hpp +132 -0
  118. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLWorkbook.hpp +404 -0
  119. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlData.hpp +283 -0
  120. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlFile.hpp +194 -0
  121. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlParser.hpp +282 -0
  122. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlParserForwardDeclarations.hpp +85 -0
  123. package/thirdparty/OpenXLSX/OpenXLSX/headers/XLZipArchive.hpp +232 -0
  124. package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/LibZip.hpp +447 -0
  125. package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/OpenXLSXFileSystemTools.hpp +207 -0
  126. package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/Zippy.hpp +1375 -0
  127. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCell.cpp +340 -0
  128. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellIterator.cpp +427 -0
  129. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellRange.cpp +221 -0
  130. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellReference.cpp +408 -0
  131. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellValue.cpp +519 -0
  132. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLColor.cpp +202 -0
  133. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLColumn.cpp +141 -0
  134. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLComments.cpp +637 -0
  135. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLContentTypes.cpp +329 -0
  136. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDateTime.cpp +269 -0
  137. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDocument.cpp +1678 -0
  138. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDrawing.cpp +784 -0
  139. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLFormula.cpp +201 -0
  140. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLMergeCells.cpp +357 -0
  141. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLProperties.cpp +810 -0
  142. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRelationships.cpp +529 -0
  143. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRow.cpp +918 -0
  144. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRowData.cpp +508 -0
  145. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLSharedStrings.cpp +220 -0
  146. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLSheet.cpp +1970 -0
  147. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLStyles.cpp +3014 -0
  148. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLTables.cpp +125 -0
  149. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLWorkbook.cpp +784 -0
  150. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlData.cpp +247 -0
  151. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlFile.cpp +160 -0
  152. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlParser.cpp +261 -0
  153. package/thirdparty/OpenXLSX/OpenXLSX/sources/XLZipArchive.cpp +266 -0
  154. package/thirdparty/OpenXLSX/OpenXLSX/sources/utilities/XLUtilities.hpp +478 -0
  155. package/thirdparty/OpenXLSX/README.md +1279 -0
  156. package/thirdparty/OpenXLSX/Scripts/cmake-cleanup.sh +102 -0
  157. package/thirdparty/OpenXLSX/Scripts/compile.sh +23 -0
  158. package/thirdparty/OpenXLSX/Scripts/demos-cleanup.sh +25 -0
  159. package/thirdparty/OpenXLSX/Scripts/demos-run-all.sh +60 -0
  160. package/thirdparty/OpenXLSX/Scripts/guarded-xml-format.sh +47 -0
  161. package/thirdparty/OpenXLSX/Scripts/make-gnu.sh +11 -0
  162. package/thirdparty/OpenXLSX/Scripts/uninstall-manifest.sh +48 -0
  163. package/thirdparty/OpenXLSX/Scripts/xml-format-all.sh +19 -0
  164. package/thirdparty/OpenXLSX/Scripts/xml-format.sh +38 -0
  165. package/thirdparty/OpenXLSX/Tests/CMakeLists.txt +37 -0
  166. package/thirdparty/OpenXLSX/Tests/catch/catch.hpp +17799 -0
  167. package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_automake.hpp +68 -0
  168. package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_sonarqube.hpp +182 -0
  169. package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_tap.hpp +278 -0
  170. package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_teamcity.hpp +212 -0
  171. package/thirdparty/OpenXLSX/Tests/main.cpp +55 -0
  172. package/thirdparty/OpenXLSX/Tests/testXLCell.cpp +176 -0
  173. package/thirdparty/OpenXLSX/Tests/testXLCellRange.cpp +180 -0
  174. package/thirdparty/OpenXLSX/Tests/testXLCellReference.cpp +160 -0
  175. package/thirdparty/OpenXLSX/Tests/testXLCellValue.cpp +366 -0
  176. package/thirdparty/OpenXLSX/Tests/testXLCellValueProxy.cpp +255 -0
  177. package/thirdparty/OpenXLSX/Tests/testXLColor.cpp +75 -0
  178. package/thirdparty/OpenXLSX/Tests/testXLDateTime.cpp +229 -0
  179. package/thirdparty/OpenXLSX/Tests/testXLDocument.cpp +197 -0
  180. package/thirdparty/OpenXLSX/Tests/testXLFormula.cpp +131 -0
  181. package/thirdparty/OpenXLSX/Tests/testXLRow.cpp +597 -0
  182. package/thirdparty/OpenXLSX/Tests/testXLSheet.cpp +77 -0
  183. package/thirdparty/OpenXLSX/Tests/ziptest-with-libs.cpp +88 -0
  184. package/thirdparty/OpenXLSX/Tests/ziptest.cpp +735 -0
  185. package/thirdparty/OpenXLSX/cmake/get-git-HEAD-ID.cmake +45 -0
  186. package/thirdparty/OpenXLSX/cmake/libopenxlsxCPackOptions.cmake.in +20 -0
  187. package/thirdparty/OpenXLSX/cmake/manage_dependency.cmake +813 -0
  188. package/thirdparty/OpenXLSX/cmake/recursive_library_type_test.cmake +52 -0
  189. package/thirdparty/OpenXLSX/gnu-make-crutch/OpenXLSX-Exports-shared.hpp +42 -0
  190. package/thirdparty/OpenXLSX/gnu-make-crutch/OpenXLSX-Exports-static.hpp +42 -0
  191. package/thirdparty/OpenXLSX/vcpkg.json +24 -0
  192. package/thirdparty/README.md +42 -0
  193. package/thirdparty/miniz/.clang-format +47 -0
  194. package/thirdparty/miniz/.travis.yml +2 -0
  195. package/thirdparty/miniz/CMakeLists.txt +333 -0
  196. package/thirdparty/miniz/CMakePresets.json +31 -0
  197. package/thirdparty/miniz/ChangeLog.md +272 -0
  198. package/thirdparty/miniz/Config.cmake.in +1 -0
  199. package/thirdparty/miniz/LICENSE +22 -0
  200. package/thirdparty/miniz/amalgamate.sh +57 -0
  201. package/thirdparty/miniz/examples/example1.c +105 -0
  202. package/thirdparty/miniz/examples/example2.c +164 -0
  203. package/thirdparty/miniz/examples/example3.c +269 -0
  204. package/thirdparty/miniz/examples/example4.c +102 -0
  205. package/thirdparty/miniz/examples/example5.c +327 -0
  206. package/thirdparty/miniz/examples/example6.c +189 -0
  207. package/thirdparty/miniz/meson.build +21 -0
  208. package/thirdparty/miniz/miniz.c +646 -0
  209. package/thirdparty/miniz/miniz.h +615 -0
  210. package/thirdparty/miniz/miniz.pc.in +13 -0
  211. package/thirdparty/miniz/miniz_common.h +89 -0
  212. package/thirdparty/miniz/miniz_export.h +20 -0
  213. package/thirdparty/miniz/miniz_tdef.c +1602 -0
  214. package/thirdparty/miniz/miniz_tdef.h +199 -0
  215. package/thirdparty/miniz/miniz_tinfl.c +778 -0
  216. package/thirdparty/miniz/miniz_tinfl.h +150 -0
  217. package/thirdparty/miniz/miniz_zip.c +4895 -0
  218. package/thirdparty/miniz/miniz_zip.h +454 -0
  219. package/thirdparty/miniz/readme.md +46 -0
  220. package/thirdparty/miniz/test.sh +36 -0
  221. package/thirdparty/miniz/tests/add_in_place_fuzzer.c +87 -0
  222. package/thirdparty/miniz/tests/catch_amalgamated.cpp +10795 -0
  223. package/thirdparty/miniz/tests/catch_amalgamated.hpp +13143 -0
  224. package/thirdparty/miniz/tests/checksum_fuzzer.c +26 -0
  225. package/thirdparty/miniz/tests/compress_fuzzer.c +91 -0
  226. package/thirdparty/miniz/tests/flush_fuzzer.c +88 -0
  227. package/thirdparty/miniz/tests/fuzz_main.c +55 -0
  228. package/thirdparty/miniz/tests/large_fuzzer.c +133 -0
  229. package/thirdparty/miniz/tests/main.cpp +185 -0
  230. package/thirdparty/miniz/tests/miniz_tdefl_fuzzer.cc +115 -0
  231. package/thirdparty/miniz/tests/miniz_tester.cpp +1881 -0
  232. package/thirdparty/miniz/tests/miniz_zip_validate_fuzzer.cc +71 -0
  233. package/thirdparty/miniz/tests/miniz_zip_writer_fuzzer.cc +96 -0
  234. package/thirdparty/miniz/tests/ossfuzz.sh +48 -0
  235. package/thirdparty/miniz/tests/small_fuzzer.c +126 -0
  236. package/thirdparty/miniz/tests/timer.cpp +152 -0
  237. package/thirdparty/miniz/tests/timer.h +40 -0
  238. package/thirdparty/miniz/tests/uncompress2_fuzzer.c +21 -0
  239. package/thirdparty/miniz/tests/uncompress_fuzzer.c +30 -0
  240. package/thirdparty/miniz/tests/zip.dict +9 -0
  241. package/thirdparty/miniz/tests/zip_fuzzer.c +63 -0
  242. package/thirdparty/pugixml/.codecov.yml +7 -0
  243. package/thirdparty/pugixml/.gitattributes +1 -0
  244. package/thirdparty/pugixml/CMakeLists.txt +330 -0
  245. package/thirdparty/pugixml/LICENSE.md +24 -0
  246. package/thirdparty/pugixml/Makefile +98 -0
  247. package/thirdparty/pugixml/README.md +81 -0
  248. package/thirdparty/pugixml/SECURITY.md +9 -0
  249. package/thirdparty/pugixml/appveyor.yml +50 -0
  250. package/thirdparty/pugixml/docs/config.adoc +7 -0
  251. package/thirdparty/pugixml/docs/images/dom_tree.png +0 -0
  252. package/thirdparty/pugixml/docs/images/vs2005_link1.png +0 -0
  253. package/thirdparty/pugixml/docs/images/vs2005_link2.png +0 -0
  254. package/thirdparty/pugixml/docs/images/vs2005_pch1.png +0 -0
  255. package/thirdparty/pugixml/docs/images/vs2005_pch2.png +0 -0
  256. package/thirdparty/pugixml/docs/images/vs2005_pch3.png +0 -0
  257. package/thirdparty/pugixml/docs/images/vs2005_pch4.png +0 -0
  258. package/thirdparty/pugixml/docs/images/vs2010_link1.png +0 -0
  259. package/thirdparty/pugixml/docs/images/vs2010_link2.png +0 -0
  260. package/thirdparty/pugixml/docs/manual.adoc +3326 -0
  261. package/thirdparty/pugixml/docs/manual.html +6395 -0
  262. package/thirdparty/pugixml/docs/quickstart.adoc +287 -0
  263. package/thirdparty/pugixml/docs/quickstart.html +1107 -0
  264. package/thirdparty/pugixml/docs/samples/character.xml +8 -0
  265. package/thirdparty/pugixml/docs/samples/custom_memory_management.cpp +27 -0
  266. package/thirdparty/pugixml/docs/samples/include.cpp +64 -0
  267. package/thirdparty/pugixml/docs/samples/load_error_handling.cpp +33 -0
  268. package/thirdparty/pugixml/docs/samples/load_file.cpp +16 -0
  269. package/thirdparty/pugixml/docs/samples/load_memory.cpp +66 -0
  270. package/thirdparty/pugixml/docs/samples/load_options.cpp +30 -0
  271. package/thirdparty/pugixml/docs/samples/load_stream.cpp +97 -0
  272. package/thirdparty/pugixml/docs/samples/modify_add.cpp +29 -0
  273. package/thirdparty/pugixml/docs/samples/modify_base.cpp +43 -0
  274. package/thirdparty/pugixml/docs/samples/modify_remove.cpp +27 -0
  275. package/thirdparty/pugixml/docs/samples/save_custom_writer.cpp +116 -0
  276. package/thirdparty/pugixml/docs/samples/save_declaration.cpp +27 -0
  277. package/thirdparty/pugixml/docs/samples/save_file.cpp +17 -0
  278. package/thirdparty/pugixml/docs/samples/save_options.cpp +48 -0
  279. package/thirdparty/pugixml/docs/samples/save_stream.cpp +18 -0
  280. package/thirdparty/pugixml/docs/samples/save_subtree.cpp +26 -0
  281. package/thirdparty/pugixml/docs/samples/text.cpp +35 -0
  282. package/thirdparty/pugixml/docs/samples/transitions.xml +7 -0
  283. package/thirdparty/pugixml/docs/samples/traverse_base.cpp +51 -0
  284. package/thirdparty/pugixml/docs/samples/traverse_iter.cpp +27 -0
  285. package/thirdparty/pugixml/docs/samples/traverse_predicate.cpp +48 -0
  286. package/thirdparty/pugixml/docs/samples/traverse_rangefor.cpp +32 -0
  287. package/thirdparty/pugixml/docs/samples/traverse_walker.cpp +35 -0
  288. package/thirdparty/pugixml/docs/samples/tree.xml +12 -0
  289. package/thirdparty/pugixml/docs/samples/weekly-shift_jis.xml +78 -0
  290. package/thirdparty/pugixml/docs/samples/weekly-utf-16.xml +0 -0
  291. package/thirdparty/pugixml/docs/samples/weekly-utf-8.xml +78 -0
  292. package/thirdparty/pugixml/docs/samples/xgconsole.xml +12 -0
  293. package/thirdparty/pugixml/docs/samples/xpath_error.cpp +43 -0
  294. package/thirdparty/pugixml/docs/samples/xpath_query.cpp +36 -0
  295. package/thirdparty/pugixml/docs/samples/xpath_select.cpp +28 -0
  296. package/thirdparty/pugixml/docs/samples/xpath_variables.cpp +38 -0
  297. package/thirdparty/pugixml/readme.txt +50 -0
  298. package/thirdparty/pugixml/scripts/archive.py +54 -0
  299. package/thirdparty/pugixml/scripts/cocoapods_push.sh +4 -0
  300. package/thirdparty/pugixml/scripts/natvis/pugixml.natvis +77 -0
  301. package/thirdparty/pugixml/scripts/natvis/pugixml_compact.natvis +506 -0
  302. package/thirdparty/pugixml/scripts/nuget/build/native/pugixml-propertiesui.xml +17 -0
  303. package/thirdparty/pugixml/scripts/nuget/build/native/pugixml.targets +28 -0
  304. package/thirdparty/pugixml/scripts/nuget/pugixml.nuspec +20 -0
  305. package/thirdparty/pugixml/scripts/nuget_build.ps1 +60 -0
  306. package/thirdparty/pugixml/scripts/premake4.lua +92 -0
  307. package/thirdparty/pugixml/scripts/pugixml-config.cmake.in +12 -0
  308. package/thirdparty/pugixml/scripts/pugixml.pc.in +11 -0
  309. package/thirdparty/pugixml/scripts/pugixml.podspec +14 -0
  310. package/thirdparty/pugixml/scripts/pugixml.xcodeproj/project.pbxproj +212 -0
  311. package/thirdparty/pugixml/scripts/pugixml_airplay.mkf +13 -0
  312. package/thirdparty/pugixml/scripts/pugixml_codeblocks.cbp +44 -0
  313. package/thirdparty/pugixml/scripts/pugixml_codelite.project +56 -0
  314. package/thirdparty/pugixml/scripts/pugixml_dll.rc +45 -0
  315. package/thirdparty/pugixml/scripts/pugixml_vs2005.vcproj +343 -0
  316. package/thirdparty/pugixml/scripts/pugixml_vs2005_static.vcproj +343 -0
  317. package/thirdparty/pugixml/scripts/pugixml_vs2008.vcproj +339 -0
  318. package/thirdparty/pugixml/scripts/pugixml_vs2008_static.vcproj +339 -0
  319. package/thirdparty/pugixml/scripts/pugixml_vs2010.vcxproj +191 -0
  320. package/thirdparty/pugixml/scripts/pugixml_vs2010_static.vcxproj +191 -0
  321. package/thirdparty/pugixml/scripts/pugixml_vs2013.vcxproj +199 -0
  322. package/thirdparty/pugixml/scripts/pugixml_vs2013_static.vcxproj +199 -0
  323. package/thirdparty/pugixml/scripts/pugixml_vs2015.vcxproj +172 -0
  324. package/thirdparty/pugixml/scripts/pugixml_vs2015_static.vcxproj +176 -0
  325. package/thirdparty/pugixml/scripts/pugixml_vs2017.vcxproj +172 -0
  326. package/thirdparty/pugixml/scripts/pugixml_vs2017_static.vcxproj +176 -0
  327. package/thirdparty/pugixml/scripts/pugixml_vs2019.vcxproj +176 -0
  328. package/thirdparty/pugixml/scripts/pugixml_vs2019_static.vcxproj +180 -0
  329. package/thirdparty/pugixml/scripts/pugixml_vs2022.vcxproj +176 -0
  330. package/thirdparty/pugixml/scripts/pugixml_vs2022_static.vcxproj +180 -0
  331. package/thirdparty/pugixml/scripts/pugixml_vs2026.vcxproj +176 -0
  332. package/thirdparty/pugixml/scripts/pugixml_vs2026_static.vcxproj +180 -0
  333. package/thirdparty/pugixml/scripts/sbom.cdx.json +47 -0
  334. package/thirdparty/pugixml/src/pugiconfig.hpp +81 -0
  335. package/thirdparty/pugixml/src/pugixml.cpp +13776 -0
  336. package/thirdparty/pugixml/src/pugixml.hpp +1604 -0
  337. package/thirdparty/pugixml/tests/allocator.cpp +175 -0
  338. package/thirdparty/pugixml/tests/allocator.hpp +10 -0
  339. package/thirdparty/pugixml/tests/autotest-appveyor.ps1 +93 -0
  340. package/thirdparty/pugixml/tests/cmake-appveyor.ps1 +57 -0
  341. package/thirdparty/pugixml/tests/data/empty.xml +0 -0
  342. package/thirdparty/pugixml/tests/data/large.xml +1 -0
  343. package/thirdparty/pugixml/tests/data/latintest_latin1.xml +1 -0
  344. package/thirdparty/pugixml/tests/data/latintest_utf8.xml +1 -0
  345. package/thirdparty/pugixml/tests/data/multiline.xml +3 -0
  346. package/thirdparty/pugixml/tests/data/small.xml +1 -0
  347. package/thirdparty/pugixml/tests/data/truncation.xml +19 -0
  348. package/thirdparty/pugixml/tests/data/utftest_utf16_be.xml +0 -0
  349. package/thirdparty/pugixml/tests/data/utftest_utf16_be_bom.xml +0 -0
  350. package/thirdparty/pugixml/tests/data/utftest_utf16_be_clean.xml +0 -0
  351. package/thirdparty/pugixml/tests/data/utftest_utf16_be_nodecl.xml +0 -0
  352. package/thirdparty/pugixml/tests/data/utftest_utf16_le.xml +0 -0
  353. package/thirdparty/pugixml/tests/data/utftest_utf16_le_bom.xml +0 -0
  354. package/thirdparty/pugixml/tests/data/utftest_utf16_le_clean.xml +0 -0
  355. package/thirdparty/pugixml/tests/data/utftest_utf16_le_nodecl.xml +0 -0
  356. package/thirdparty/pugixml/tests/data/utftest_utf32_be.xml +0 -0
  357. package/thirdparty/pugixml/tests/data/utftest_utf32_be_bom.xml +0 -0
  358. package/thirdparty/pugixml/tests/data/utftest_utf32_be_clean.xml +0 -0
  359. package/thirdparty/pugixml/tests/data/utftest_utf32_be_nodecl.xml +0 -0
  360. package/thirdparty/pugixml/tests/data/utftest_utf32_le.xml +0 -0
  361. package/thirdparty/pugixml/tests/data/utftest_utf32_le_bom.xml +0 -0
  362. package/thirdparty/pugixml/tests/data/utftest_utf32_le_clean.xml +0 -0
  363. package/thirdparty/pugixml/tests/data/utftest_utf32_le_nodecl.xml +0 -0
  364. package/thirdparty/pugixml/tests/data/utftest_utf8.xml +87 -0
  365. package/thirdparty/pugixml/tests/data/utftest_utf8_bom.xml +87 -0
  366. package/thirdparty/pugixml/tests/data/utftest_utf8_clean.xml +84 -0
  367. package/thirdparty/pugixml/tests/data/utftest_utf8_nodecl.xml +86 -0
  368. package/thirdparty/pugixml/tests/data//321/202/320/265/321/201/321/202.xml +1 -0
  369. package/thirdparty/pugixml/tests/data_fuzz_parse/basic.xml +1 -0
  370. package/thirdparty/pugixml/tests/data_fuzz_parse/doctype.xml +1 -0
  371. package/thirdparty/pugixml/tests/data_fuzz_parse/refs.xml +1 -0
  372. package/thirdparty/pugixml/tests/data_fuzz_parse/types.xml +1 -0
  373. package/thirdparty/pugixml/tests/data_fuzz_parse/utf16.xml +0 -0
  374. package/thirdparty/pugixml/tests/data_fuzz_parse/utf32.xml +0 -0
  375. package/thirdparty/pugixml/tests/data_fuzz_xpath/basic.xpath +1 -0
  376. package/thirdparty/pugixml/tests/data_fuzz_xpath/functions.xpath +1 -0
  377. package/thirdparty/pugixml/tests/data_fuzz_xpath/math.xpath +1 -0
  378. package/thirdparty/pugixml/tests/data_fuzz_xpath/path.xpath +1 -0
  379. package/thirdparty/pugixml/tests/data_fuzz_xpath/predicate.xpath +1 -0
  380. package/thirdparty/pugixml/tests/fuzz_parse.cpp +14 -0
  381. package/thirdparty/pugixml/tests/fuzz_parse.dict +72 -0
  382. package/thirdparty/pugixml/tests/fuzz_setup.sh +11 -0
  383. package/thirdparty/pugixml/tests/fuzz_xpath.cpp +46 -0
  384. package/thirdparty/pugixml/tests/fuzz_xpath.dict +72 -0
  385. package/thirdparty/pugixml/tests/helpers.hpp +114 -0
  386. package/thirdparty/pugixml/tests/main.cpp +218 -0
  387. package/thirdparty/pugixml/tests/test.cpp +220 -0
  388. package/thirdparty/pugixml/tests/test.hpp +175 -0
  389. package/thirdparty/pugixml/tests/test_compact.cpp +150 -0
  390. package/thirdparty/pugixml/tests/test_deprecated.cpp +25 -0
  391. package/thirdparty/pugixml/tests/test_document.cpp +1910 -0
  392. package/thirdparty/pugixml/tests/test_dom_modify.cpp +2122 -0
  393. package/thirdparty/pugixml/tests/test_dom_text.cpp +601 -0
  394. package/thirdparty/pugixml/tests/test_dom_traverse.cpp +1481 -0
  395. package/thirdparty/pugixml/tests/test_header_guard.cpp +3 -0
  396. package/thirdparty/pugixml/tests/test_header_iosfwd_1.cpp +3 -0
  397. package/thirdparty/pugixml/tests/test_header_iosfwd_2.cpp +3 -0
  398. package/thirdparty/pugixml/tests/test_header_iostream_1.cpp +3 -0
  399. package/thirdparty/pugixml/tests/test_header_iostream_2.cpp +3 -0
  400. package/thirdparty/pugixml/tests/test_header_only_1.cpp +21 -0
  401. package/thirdparty/pugixml/tests/test_header_only_2.cpp +21 -0
  402. package/thirdparty/pugixml/tests/test_header_string_1.cpp +3 -0
  403. package/thirdparty/pugixml/tests/test_header_string_2.cpp +3 -0
  404. package/thirdparty/pugixml/tests/test_header_string_iostream.cpp +5 -0
  405. package/thirdparty/pugixml/tests/test_memory.cpp +303 -0
  406. package/thirdparty/pugixml/tests/test_parse.cpp +1463 -0
  407. package/thirdparty/pugixml/tests/test_parse_doctype.cpp +366 -0
  408. package/thirdparty/pugixml/tests/test_unicode.cpp +152 -0
  409. package/thirdparty/pugixml/tests/test_version.cpp +5 -0
  410. package/thirdparty/pugixml/tests/test_write.cpp +757 -0
  411. package/thirdparty/pugixml/tests/test_xpath.cpp +833 -0
  412. package/thirdparty/pugixml/tests/test_xpath_api.cpp +646 -0
  413. package/thirdparty/pugixml/tests/test_xpath_functions.cpp +844 -0
  414. package/thirdparty/pugixml/tests/test_xpath_operators.cpp +566 -0
  415. package/thirdparty/pugixml/tests/test_xpath_parse.cpp +428 -0
  416. package/thirdparty/pugixml/tests/test_xpath_paths.cpp +787 -0
  417. package/thirdparty/pugixml/tests/test_xpath_paths_abbrev_w3c.cpp +219 -0
  418. package/thirdparty/pugixml/tests/test_xpath_paths_w3c.cpp +312 -0
  419. package/thirdparty/pugixml/tests/test_xpath_variables.cpp +683 -0
  420. package/thirdparty/pugixml/tests/test_xpath_xalan_1.cpp +411 -0
  421. package/thirdparty/pugixml/tests/test_xpath_xalan_2.cpp +417 -0
  422. package/thirdparty/pugixml/tests/test_xpath_xalan_3.cpp +321 -0
  423. package/thirdparty/pugixml/tests/test_xpath_xalan_4.cpp +300 -0
  424. package/thirdparty/pugixml/tests/test_xpath_xalan_5.cpp +295 -0
  425. package/thirdparty/pugixml/tests/writer_string.cpp +79 -0
  426. package/thirdparty/pugixml/tests/writer_string.hpp +27 -0
  427. package/ios/dummy.swift +0 -2
  428. package/scripts/prepare-openxlsx.js +0 -109
@@ -0,0 +1,52 @@
1
+ # Function: recursive_library_type_test
2
+ # Purpose: test what library types a target is linking to, recurse into subtargets for INTERFACE_LIBRARY types
3
+ # Parameters:
4
+ # TARGET_NAME test this library target
5
+ # Returns:
6
+ # ${TARGET_NAME}_HAS_STATIC (PARENT_SCOPE): TRUE if at least one static library is linked
7
+ # ${TARGET_NAME}_HAS_SHARED (PARENT_SCOPE): TRUE if at least one shared library is linked
8
+ # Author: Lars Uffmann (coding23@uffmann.name)
9
+ function(recursive_library_type_test TARGET_NAME PREFIX)
10
+ set(_has_static FALSE)
11
+ set(_has_shared FALSE)
12
+
13
+ message( VERBOSE " recursive_library_type_test:${PREFIX} TARGET ${TARGET_NAME}" )
14
+
15
+ get_target_property(_type ${TARGET_NAME} TYPE)
16
+ if("${_type}" STREQUAL "STATIC_LIBRARY")
17
+ set(_has_static TRUE)
18
+ message( DEBUG " recursive_library_type_test:${PREFIX} ${TARGET_NAME} is STATIC_LIBRARY" )
19
+ elseif("${_type}" STREQUAL "SHARED_LIBRARY")
20
+ set(_has_shared TRUE)
21
+ message( DEBUG " recursive_library_type_test:${PREFIX} ${TARGET_NAME} is SHARED_LIBRARY" )
22
+ elseif("${_type}" STREQUAL "INTERFACE_LIBRARY")
23
+ get_target_property(_links ${TARGET_NAME} INTERFACE_LINK_LIBRARIES)
24
+ message( DEBUG " recursive_library_type_test:${PREFIX} ${TARGET_NAME} is INTERFACE_LIBRARY, INTERFACE_LINK_LIBRARIES is ${_links}" )
25
+ foreach(_link IN LISTS _links)
26
+ if(TARGET ${_link})
27
+ recursive_library_type_test( ${_link} " ${PREFIX}" ) # recurse
28
+ if(${_link}_HAS_STATIC)
29
+ set(_has_static TRUE)
30
+ message( DEBUG " recursive_library_type_test:${PREFIX} recursion found a static lib in ${_link}" )
31
+ endif()
32
+ if(${_link}_HAS_SHARED)
33
+ set(_has_shared TRUE)
34
+ message( DEBUG " recursive_library_type_test:${PREFIX} recursion found a shared lib in ${_link}" )
35
+ endif()
36
+ # message( DEBUG " ${_link}_HAS_STATIC is ${${_link}_HAS_STATIC}, ${_link}_HAS_SHARED is ${${_link}_HAS_SHARED}" )
37
+ elseif(IS_ABSOLUTE "${_link}")
38
+ # _link is a path: check extension (.a/.lib => static; .so/.dylib/.dll => shared)
39
+ message( FATAL_ERROR "recursive_library_type_test:${PREFIX} absolute: ${_link} - still need to address this" )
40
+ else()
41
+ # _link might be a linker name (-lfoo) or generator expression; handle below
42
+ message( FATAL_ERROR "recursive_library_type_test:${PREFIX} linker name? ${_link} - still need to address this" )
43
+ endif()
44
+ endforeach()
45
+ else()
46
+ endif()
47
+
48
+ message( VERBOSE " recursive_library_type_test:${PREFIX} TARGET ${TARGET_NAME} _has_static is ${_has_static}, _has_shared is ${_has_shared}" )
49
+ set(${TARGET_NAME}_HAS_STATIC ${_has_static} PARENT_SCOPE)
50
+ set(${TARGET_NAME}_HAS_SHARED ${_has_shared} PARENT_SCOPE)
51
+ endfunction()
52
+ # End of Function: recursive_library_type_test
@@ -0,0 +1,42 @@
1
+
2
+ #ifndef OPENXLSX_EXPORT_H
3
+ #define OPENXLSX_EXPORT_H
4
+
5
+ #ifdef OPENXLSX_STATIC_DEFINE
6
+ # define OPENXLSX_EXPORT
7
+ # define OPENXLSX_HIDDEN
8
+ #else
9
+ # ifndef OPENXLSX_EXPORT
10
+ # ifdef OpenXLSX_EXPORTS
11
+ /* We are building this library */
12
+ # define OPENXLSX_EXPORT __attribute__((visibility("default")))
13
+ # else
14
+ /* We are using this library */
15
+ # define OPENXLSX_EXPORT __attribute__((visibility("default")))
16
+ # endif
17
+ # endif
18
+
19
+ # ifndef OPENXLSX_HIDDEN
20
+ # define OPENXLSX_HIDDEN __attribute__((visibility("hidden")))
21
+ # endif
22
+ #endif
23
+
24
+ #ifndef OPENXLSX_DEPRECATED
25
+ # define OPENXLSX_DEPRECATED __attribute__ ((__deprecated__))
26
+ #endif
27
+
28
+ #ifndef OPENXLSX_DEPRECATED_EXPORT
29
+ # define OPENXLSX_DEPRECATED_EXPORT OPENXLSX_EXPORT OPENXLSX_DEPRECATED
30
+ #endif
31
+
32
+ #ifndef OPENXLSX_DEPRECATED_NO_EXPORT
33
+ # define OPENXLSX_DEPRECATED_NO_EXPORT OPENXLSX_HIDDEN OPENXLSX_DEPRECATED
34
+ #endif
35
+
36
+ #if 0 /* DEFINE_NO_DEPRECATED */
37
+ # ifndef OPENXLSX_NO_DEPRECATED
38
+ # define OPENXLSX_NO_DEPRECATED
39
+ # endif
40
+ #endif
41
+
42
+ #endif /* OPENXLSX_EXPORT_H */
@@ -0,0 +1,42 @@
1
+
2
+ #ifndef OPENXLSX_EXPORT_H
3
+ #define OPENXLSX_EXPORT_H
4
+
5
+ #ifdef OPENXLSX_STATIC_DEFINE
6
+ # define OPENXLSX_EXPORT
7
+ # define OPENXLSX_HIDDEN
8
+ #else
9
+ # ifndef OPENXLSX_EXPORT
10
+ # ifdef OpenXLSX_EXPORTS
11
+ /* We are building this library */
12
+ # define OPENXLSX_EXPORT
13
+ # else
14
+ /* We are using this library */
15
+ # define OPENXLSX_EXPORT
16
+ # endif
17
+ # endif
18
+
19
+ # ifndef OPENXLSX_HIDDEN
20
+ # define OPENXLSX_HIDDEN
21
+ # endif
22
+ #endif
23
+
24
+ #ifndef OPENXLSX_DEPRECATED
25
+ # define OPENXLSX_DEPRECATED __attribute__ ((__deprecated__))
26
+ #endif
27
+
28
+ #ifndef OPENXLSX_DEPRECATED_EXPORT
29
+ # define OPENXLSX_DEPRECATED_EXPORT OPENXLSX_EXPORT OPENXLSX_DEPRECATED
30
+ #endif
31
+
32
+ #ifndef OPENXLSX_DEPRECATED_NO_EXPORT
33
+ # define OPENXLSX_DEPRECATED_NO_EXPORT OPENXLSX_HIDDEN OPENXLSX_DEPRECATED
34
+ #endif
35
+
36
+ #if 0 /* DEFINE_NO_DEPRECATED */
37
+ # ifndef OPENXLSX_NO_DEPRECATED
38
+ # define OPENXLSX_NO_DEPRECATED
39
+ # endif
40
+ #endif
41
+
42
+ #endif /* OPENXLSX_EXPORT_H */
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
3
+ "name": "openxlsx",
4
+ "version": "0.5.1",
5
+ "description": "OpenXLSX is a C++ library for reading, writing, creating and modifying Microsoft Excel® files, with the .xlsx format.",
6
+ "homepage": "https://github.com/troldal/OpenXLSX",
7
+ "license": "BSD-3-Clause",
8
+ "dependencies": [
9
+ {
10
+ "name": "boost-nowide",
11
+ "platform": "windows"
12
+ },
13
+ "miniz",
14
+ "pugixml",
15
+ {
16
+ "name": "vcpkg-cmake",
17
+ "host": true
18
+ },
19
+ {
20
+ "name": "vcpkg-cmake-config",
21
+ "host": true
22
+ }
23
+ ]
24
+ }
@@ -0,0 +1,42 @@
1
+ # Third-party sources
2
+
3
+ These sources are **vendored** (committed) instead of being cloned at build
4
+ time. Nothing here is downloaded during `pod install`, `npm install` or an
5
+ Android CMake configure — the build simply compiles what is in this directory.
6
+
7
+ | Directory | Upstream | Version / tag |
8
+ |-----------|----------|---------------|
9
+ | `OpenXLSX/` | https://github.com/troldal/OpenXLSX | `v0.5.1` |
10
+ | `pugixml/` | https://github.com/zeux/pugixml | `v1.16` (OpenXLSX dependency) |
11
+ | `miniz/` | https://github.com/richgel999/miniz | `3.1.2` (OpenXLSX dependency) |
12
+
13
+ All upstream repositories are copied verbatim (`git archive` equivalent, no
14
+ `.git`/`.github` metadata); only the files below are local additions:
15
+
16
+ - `OpenXLSX/OpenXLSX/headers/OpenXLSX-Exports.hpp` — export macros, normally
17
+ generated by OpenXLSX's CMake install step.
18
+ - `OpenXLSX/OpenXLSX/headers/OpenXLSX -> .` — symlink so that
19
+ `#include <OpenXLSX/XLWorkbook.hpp>` resolves with `headers/` on the
20
+ include path.
21
+ - `miniz/miniz_export.h` — export header, normally generated by miniz's CMake.
22
+
23
+ ## How the builds consume these
24
+
25
+ - **CocoaPods** (`NitroXlsx.podspec`) compiles the C++ sources directly; the
26
+ header search paths point at `thirdparty/OpenXLSX`, `thirdparty/pugixml/src`
27
+ and `thirdparty/miniz`.
28
+ - **Android** (`android/CMakeLists.txt`) runs `add_subdirectory(thirdparty/OpenXLSX)`.
29
+ OpenXLSX's own `manage_dependency()` would normally clone pugixml and miniz;
30
+ it is redirected to the vendored copies via
31
+ `FETCHCONTENT_SOURCE_DIR_PUGIXML_FETCH` / `FETCHCONTENT_SOURCE_DIR_MINIZ_FETCH`
32
+ (plus `FORCE_FETCH_ALL=ON`, which makes the lookup deterministic instead of
33
+ picking up a system-installed pugixml).
34
+ - **C++ tests** (`cpp/tests/CMakeLists.txt`) use the same FetchContent
35
+ redirection, with `OPENXLSX_PATH` defaulting to `thirdparty/OpenXLSX`.
36
+
37
+ ## Updating a dependency
38
+
39
+ 1. Check out the new tag in a scratch directory.
40
+ 2. Replace the matching folder here, keeping the local additions listed above.
41
+ 3. Update the version in this README, in `NOTICE`, and re-run
42
+ `yarn test:cpp`.
@@ -0,0 +1,47 @@
1
+ #
2
+ # http://clang.llvm.org/docs/ClangFormatStyleOptions.html
3
+ #
4
+ AccessModifierOffset: -4
5
+ ConstructorInitializerIndentWidth: 4
6
+ AlignEscapedNewlinesLeft: false
7
+ AlignTrailingComments: true
8
+ AllowAllParametersOfDeclarationOnNextLine: true
9
+ AllowShortIfStatementsOnASingleLine: false
10
+ AllowShortLoopsOnASingleLine: false
11
+ AlwaysBreakTemplateDeclarations: false
12
+ AlwaysBreakBeforeMultilineStrings: false
13
+ BreakBeforeBinaryOperators: false
14
+ BreakBeforeTernaryOperators: true
15
+ BreakConstructorInitializersBeforeComma: false
16
+ BinPackParameters: true
17
+ ColumnLimit: 0
18
+ ConstructorInitializerAllOnOneLineOrOnePerLine: false
19
+ DerivePointerBinding: false
20
+ ExperimentalAutoDetectBinPacking: false
21
+ IndentCaseLabels: true
22
+ MaxEmptyLinesToKeep: 1
23
+ NamespaceIndentation: All
24
+ ObjCSpaceBeforeProtocolList: true
25
+ PenaltyBreakBeforeFirstCallParameter: 19
26
+ PenaltyBreakComment: 60
27
+ PenaltyBreakString: 1000
28
+ PenaltyBreakFirstLessLess: 120
29
+ PenaltyExcessCharacter: 1000000
30
+ PenaltyReturnTypeOnItsOwnLine: 60
31
+ PointerBindsToType: false
32
+ SpacesBeforeTrailingComments: 1
33
+ Cpp11BracedListStyle: false
34
+ Standard: Cpp03
35
+ IndentWidth: 4
36
+ TabWidth: 4
37
+ UseTab: Never
38
+ BreakBeforeBraces: Allman
39
+ IndentFunctionDeclarationAfterType: false
40
+ SpacesInParentheses: false
41
+ SpacesInAngles: false
42
+ SpaceInEmptyParentheses: false
43
+ SpacesInCStyleCastParentheses: false
44
+ SpaceAfterControlStatementKeyword: true
45
+ SpaceBeforeAssignmentOperators: true
46
+ ContinuationIndentWidth: 4
47
+ SortIncludes: false
@@ -0,0 +1,2 @@
1
+ language: c
2
+ script: bash amalgamate.sh
@@ -0,0 +1,333 @@
1
+ cmake_minimum_required(VERSION 3.5)
2
+
3
+ # determine whether this is a standalone project or included by other projects
4
+ set (MINIZ_STANDALONE_PROJECT ON)
5
+ if(DEFINED PROJECT_NAME)
6
+ set(MINIZ_STANDALONE_PROJECT OFF)
7
+ endif()
8
+
9
+
10
+ if(CMAKE_VERSION VERSION_LESS "3.12")
11
+ project(miniz C)
12
+ # see issue https://gitlab.kitware.com/cmake/cmake/merge_requests/1799
13
+ else()
14
+ project(miniz C)
15
+ set(CMAKE_C_STANDARD 90)
16
+ set(CMAKE_VERBOSE_MAKEFILE ON)
17
+ # set(CMAKE_C_VISIBILITY_PRESET hidden)
18
+ # set(CMAKE_VISIBILITY_INLINES_HIDDEN YES)
19
+
20
+ if (MSVC)
21
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3 /Zi /permissive-")
22
+ else ()
23
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow -Wformat=2 -Wall -Wno-overlength-strings -pedantic")
24
+ endif ()
25
+ endif()
26
+
27
+ set(MINIZ_API_VERSION 3)
28
+ set(MINIZ_MINOR_VERSION 1)
29
+ set(MINIZ_PATCH_VERSION 2)
30
+ set(MINIZ_VERSION
31
+ ${MINIZ_API_VERSION}.${MINIZ_MINOR_VERSION}.${MINIZ_PATCH_VERSION})
32
+
33
+ if(CMAKE_BUILD_TYPE STREQUAL "")
34
+ # CMake defaults to leaving CMAKE_BUILD_TYPE empty. This screws up
35
+ # differentiation between debug and release builds.
36
+ set(CMAKE_BUILD_TYPE "Release" CACHE STRING
37
+ "Choose the type of build, options are: None (CMAKE_CXX_FLAGS or \
38
+ CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
39
+ endif ()
40
+
41
+ option(BUILD_EXAMPLES "Build examples" ${MINIZ_STANDALONE_PROJECT})
42
+ option(BUILD_FUZZERS "Build fuzz targets" OFF)
43
+ option(AMALGAMATE_SOURCES "Amalgamate sources into miniz.h/c" OFF)
44
+ option(BUILD_HEADER_ONLY "Build a header-only version" OFF)
45
+ option(BUILD_SHARED_LIBS "Build shared library instead of static" OFF)
46
+ option(BUILD_NO_STDIO" Build a without stdio version" OFF)
47
+ option(BUILD_TESTS "Build tests" ${MINIZ_STANDALONE_PROJECT})
48
+ option(INSTALL_PROJECT "Install project" ${MINIZ_STANDALONE_PROJECT})
49
+
50
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
51
+
52
+ if(INSTALL_PROJECT)
53
+ include(GNUInstallDirs)
54
+ endif()
55
+
56
+ if(BUILD_HEADER_ONLY)
57
+ set(AMALGAMATE_SOURCES ON CACHE BOOL "Build a header-only version" FORCE)
58
+ endif(BUILD_HEADER_ONLY)
59
+
60
+ if(AMALGAMATE_SOURCES)
61
+ # Amalgamate
62
+ file(COPY miniz.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/)
63
+ file(READ miniz.h MINIZ_H)
64
+ file(READ miniz_common.h MINIZ_COMMON_H)
65
+ file(READ miniz_tdef.h MINIZ_TDEF_H)
66
+ file(READ miniz_tinfl.h MINIZ_TINFL_H)
67
+ file(READ miniz_zip.h MINIZ_ZIP_H)
68
+ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h
69
+ "${MINIZ_COMMON_H} ${MINIZ_TDEF_H} ${MINIZ_TINFL_H} ${MINIZ_ZIP_H}")
70
+
71
+ file(COPY miniz.c DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/)
72
+ file(READ miniz_tdef.c MINIZ_TDEF_C)
73
+ file(READ miniz_tinfl.c MINIZ_TINFL_C)
74
+ file(READ miniz_zip.c MINIZ_ZIP_C)
75
+ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c
76
+ "${MINIZ_TDEF_C} ${MINIZ_TINFL_C} ${MINIZ_ZIP_C}")
77
+
78
+ file(READ ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h AMAL_MINIZ_H)
79
+ file(READ ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c AMAL_MINIZ_C)
80
+ foreach(REPLACE_STRING miniz;miniz_common;miniz_tdef;miniz_tinfl;miniz_zip;miniz_export)
81
+ string(REPLACE "#include \"${REPLACE_STRING}.h\"" "" AMAL_MINIZ_H "${AMAL_MINIZ_H}")
82
+ string(REPLACE "#include \"${REPLACE_STRING}.h\"" "" AMAL_MINIZ_C "${AMAL_MINIZ_C}")
83
+ endforeach()
84
+ string(CONCAT AMAL_MINIZ_H "#ifndef MINIZ_EXPORT\n#define MINIZ_EXPORT\n#endif\n" "${AMAL_MINIZ_H}")
85
+ if(BUILD_HEADER_ONLY)
86
+ string(CONCAT AMAL_MINIZ_H "${AMAL_MINIZ_H}" "\n#ifndef MINIZ_HEADER_FILE_ONLY\n"
87
+ "${AMAL_MINIZ_C}" "\n#endif // MINIZ_HEADER_FILE_ONLY\n")
88
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h "${AMAL_MINIZ_H}")
89
+ add_library(${PROJECT_NAME} INTERFACE)
90
+
91
+ # Might not be a good idea to force this on the library user
92
+ # as it could bloat the global namespace
93
+ # https://github.com/libevent/libevent/issues/460
94
+ # target_compile_definitions(${PROJECT_NAME}
95
+ # INTERFACE $<$<C_COMPILER_ID:GNU>:_GNU_SOURCE>)
96
+
97
+ set_property(TARGET ${PROJECT_NAME} APPEND
98
+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES
99
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/amalgamation>
100
+ $<INSTALL_INTERFACE:include>
101
+ )
102
+ else(BUILD_HEADER_ONLY)
103
+ string(CONCAT AMAL_MINIZ_C "#include \"miniz.h\"\n" "${AMAL_MINIZ_C}")
104
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h "${AMAL_MINIZ_H}")
105
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c "${AMAL_MINIZ_C}")
106
+ set(miniz_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h
107
+ ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.c)
108
+ add_library(${PROJECT_NAME} STATIC ${miniz_SOURCE})
109
+ target_include_directories(${PROJECT_NAME} PUBLIC
110
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/amalgamation>
111
+ $<INSTALL_INTERFACE:include>
112
+ )
113
+ endif(BUILD_HEADER_ONLY)
114
+
115
+ set(INSTALL_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/miniz.h)
116
+
117
+ file(GLOB_RECURSE ZIP_FILES RELATIVE "${CMAKE_CURRENT_BINARY_DIR}/amalgamation" "${CMAKE_CURRENT_BINARY_DIR}/amalgamation/*")
118
+ file(GLOB_RECURSE ZIP_FILES2 RELATIVE "${CMAKE_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}/examples/*")
119
+ list(APPEND ZIP_FILES ${ZIP_FILES2})
120
+ list(APPEND ZIP_FILES "ChangeLog.md")
121
+ list(APPEND ZIP_FILES "readme.md")
122
+ list(APPEND ZIP_FILES "LICENSE")
123
+ set(ZIP_OUT_FN "${CMAKE_CURRENT_BINARY_DIR}/miniz-${MINIZ_VERSION}.zip")
124
+ message(STATUS "Zip files: ${ZIP_FILES}")
125
+ add_custom_command(
126
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/examples ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/examples
127
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/ChangeLog.md ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/ChangeLog.md
128
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/readme.md ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/readme.md
129
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_BINARY_DIR}/amalgamation/LICENSE
130
+ COMMAND ${CMAKE_COMMAND} -E tar "cf" "${ZIP_OUT_FN}" --format=zip -- ${ZIP_FILES}
131
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/amalgamation"
132
+ OUTPUT "${ZIP_OUT_FN}"
133
+ DEPENDS ${ZIP_FILES}
134
+ COMMENT "Zipping to ${CMAKE_CURRENT_BINARY_DIR}/miniz.zip."
135
+ )
136
+
137
+ add_custom_target(
138
+ create_zip ALL
139
+ DEPENDS "${ZIP_OUT_FN}"
140
+ )
141
+ else(AMALGAMATE_SOURCES)
142
+ include(GenerateExportHeader)
143
+ set(miniz_SOURCE miniz.c miniz_zip.c miniz_tinfl.c miniz_tdef.c)
144
+ add_library(${PROJECT_NAME} ${miniz_SOURCE})
145
+ generate_export_header(${PROJECT_NAME})
146
+
147
+ if(NOT BUILD_SHARED_LIBS)
148
+ string(TOUPPER ${PROJECT_NAME} PROJECT_UPPER)
149
+ set_target_properties(${PROJECT_NAME}
150
+ PROPERTIES INTERFACE_COMPILE_DEFINITIONS ${PROJECT_UPPER}_STATIC_DEFINE)
151
+ else()
152
+ set_property(TARGET ${PROJECT_NAME} PROPERTY C_VISIBILITY_PRESET hidden)
153
+ endif()
154
+
155
+ set_property(TARGET ${PROJECT_NAME} PROPERTY VERSION ${MINIZ_VERSION})
156
+ set_property(TARGET ${PROJECT_NAME} PROPERTY SOVERSION ${MINIZ_API_VERSION})
157
+
158
+ target_include_directories(${PROJECT_NAME} PUBLIC
159
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
160
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
161
+ $<INSTALL_INTERFACE:include>
162
+ )
163
+
164
+ file(GLOB INSTALL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
165
+ list(APPEND
166
+ INSTALL_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h)
167
+ endif(AMALGAMATE_SOURCES)
168
+
169
+ if(NOT BUILD_HEADER_ONLY)
170
+ target_compile_definitions(${PROJECT_NAME}
171
+ PRIVATE $<$<C_COMPILER_ID:GNU>:_GNU_SOURCE>)
172
+
173
+ # pkg-config file
174
+ configure_file(miniz.pc.in ${CMAKE_CURRENT_BINARY_DIR}/miniz.pc @ONLY)
175
+
176
+ if(INSTALL_PROJECT)
177
+ install(FILES
178
+ ${CMAKE_CURRENT_BINARY_DIR}/miniz.pc
179
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
180
+ endif()
181
+ endif()
182
+
183
+ if(BUILD_NO_STDIO)
184
+ target_compile_definitions(${PROJECT_NAME} PRIVATE MINIZ_NO_STDIO)
185
+ endif()
186
+
187
+ set_property(TARGET ${PROJECT_NAME} PROPERTY
188
+ INTERFACE_${PROJECT_NAME}_MAJOR_VERSION ${MINIZ_API_VERSION})
189
+ set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY
190
+ COMPATIBLE_INTERFACE_STRING ${PROJECT_NAME}_MAJOR_VERSION
191
+ )
192
+
193
+ if(INSTALL_PROJECT)
194
+ install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets
195
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
196
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
197
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
198
+ # users can use <miniz.h> or <miniz/miniz.h>
199
+ INCLUDES DESTINATION include ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}
200
+ )
201
+
202
+ include(CMakePackageConfigHelpers)
203
+ write_basic_package_version_file(
204
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
205
+ VERSION ${MINIZ_VERSION}
206
+ COMPATIBILITY AnyNewerVersion
207
+ )
208
+
209
+ export(EXPORT ${PROJECT_NAME}Targets
210
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Targets.cmake"
211
+ NAMESPACE ${PROJECT_NAME}::
212
+ )
213
+ configure_file(Config.cmake.in
214
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake"
215
+ @ONLY
216
+ )
217
+
218
+ set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
219
+ install(EXPORT ${PROJECT_NAME}Targets
220
+ FILE
221
+ ${PROJECT_NAME}Targets.cmake
222
+ NAMESPACE
223
+ ${PROJECT_NAME}::
224
+ DESTINATION
225
+ ${ConfigPackageLocation}
226
+ )
227
+ install(
228
+ FILES
229
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake"
230
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake"
231
+ DESTINATION
232
+ ${ConfigPackageLocation}
233
+ COMPONENT
234
+ Devel
235
+ )
236
+ endif()
237
+
238
+ if(BUILD_EXAMPLES)
239
+ set(EXAMPLE1_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example1.c")
240
+ set(EXAMPLE2_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example2.c")
241
+ set(EXAMPLE3_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example3.c")
242
+ set(EXAMPLE4_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example4.c")
243
+ set(EXAMPLE5_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example5.c")
244
+ set(EXAMPLE6_SRC_LIST "${CMAKE_CURRENT_SOURCE_DIR}/examples/example6.c")
245
+ set(MINIZ_TESTER_SRC_LIST
246
+ "${CMAKE_CURRENT_SOURCE_DIR}/tests/miniz_tester.cpp"
247
+ "${CMAKE_CURRENT_SOURCE_DIR}/tests/timer.cpp")
248
+
249
+ add_executable(example1 ${EXAMPLE1_SRC_LIST})
250
+ target_link_libraries(example1 miniz)
251
+ if(NOT BUILD_NO_STDIO)
252
+ add_executable(example2 ${EXAMPLE2_SRC_LIST})
253
+ target_link_libraries(example2 miniz)
254
+ endif()
255
+ add_executable(example3 ${EXAMPLE3_SRC_LIST})
256
+ target_link_libraries(example3 miniz)
257
+ add_executable(example4 ${EXAMPLE4_SRC_LIST})
258
+ target_link_libraries(example4 miniz)
259
+ add_executable(example5 ${EXAMPLE5_SRC_LIST})
260
+ target_link_libraries(example5 miniz)
261
+ add_executable(example6 ${EXAMPLE6_SRC_LIST})
262
+ target_link_libraries(example6 miniz)
263
+ if(${UNIX})
264
+ target_link_libraries(example6 m)
265
+ endif()
266
+
267
+ # add_executable(miniz_tester ${MINIZ_TESTER_SRC_LIST})
268
+ # target_link_libraries(miniz_tester miniz)
269
+ endif(BUILD_EXAMPLES)
270
+
271
+ if(BUILD_FUZZERS)
272
+ set(FUZZ_MAIN_SRC "${CMAKE_CURRENT_SOURCE_DIR}/tests/fuzz_main.c")
273
+
274
+ set(CHECKSUM_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/checksum_fuzzer.c")
275
+ set(FLUSH_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/flush_fuzzer.c")
276
+ set(UNCOMPRESS_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/uncompress_fuzzer.c")
277
+ set(UNCOMPRESS2_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/uncompress2_fuzzer.c")
278
+ set(COMPRESS_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/compress_fuzzer.c")
279
+ set(SMALL_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/small_fuzzer.c")
280
+ set(LARGE_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/large_fuzzer.c")
281
+ set(ZIP_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/zip_fuzzer.c")
282
+ set(ADD_IN_PLACE_FUZZER_SRC_LIST "${FUZZ_MAIN_SRC}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/add_in_place_fuzzer.c")
283
+
284
+ add_executable(checksum_fuzzer ${CHECKSUM_FUZZER_SRC_LIST})
285
+ target_link_libraries(checksum_fuzzer miniz)
286
+
287
+ add_executable(flush_fuzzer ${FLUSH_FUZZER_SRC_LIST})
288
+ target_link_libraries(flush_fuzzer miniz)
289
+
290
+ add_executable(uncompress_fuzzer ${UNCOMPRESS_FUZZER_SRC_LIST})
291
+ target_link_libraries(uncompress_fuzzer miniz)
292
+
293
+ add_executable(uncompress2_fuzzer ${UNCOMPRESS2_FUZZER_SRC_LIST})
294
+ target_link_libraries(uncompress2_fuzzer miniz)
295
+
296
+ add_executable(compress_fuzzer ${COMPRESS_FUZZER_SRC_LIST})
297
+ target_link_libraries(compress_fuzzer miniz)
298
+
299
+ add_executable(small_fuzzer ${SMALL_FUZZER_SRC_LIST})
300
+ target_link_libraries(small_fuzzer miniz)
301
+
302
+ add_executable(large_fuzzer ${LARGE_FUZZER_SRC_LIST})
303
+ target_link_libraries(large_fuzzer miniz)
304
+
305
+ add_executable(zip_fuzzer ${ZIP_FUZZER_SRC_LIST})
306
+ target_link_libraries(zip_fuzzer miniz)
307
+
308
+ add_executable(add_in_place_fuzzer ${ADD_IN_PLACE_FUZZER_SRC_LIST})
309
+ target_link_libraries(add_in_place_fuzzer miniz)
310
+ endif()
311
+
312
+ if(BUILD_TESTS)
313
+ enable_language(CXX)
314
+ set(CMAKE_CXX_STANDARD 20)
315
+ set(CMAKE_CXX_STANDARD_REQUIRED YES)
316
+
317
+ add_executable(catch_tests tests/main.cpp tests/catch_amalgamated.cpp)
318
+ if(BUILD_NO_STDIO)
319
+ target_compile_definitions(catch_tests PRIVATE -DMINIZ_NO_STDIO)
320
+ endif()
321
+ target_link_libraries(catch_tests miniz)
322
+
323
+ enable_testing()
324
+
325
+ add_test(NAME catch_tests COMMAND $<TARGET_FILE:catch_tests>)
326
+ endif()
327
+
328
+ set(INCLUDE_INSTALL_DIR "include")
329
+
330
+ if(INSTALL_PROJECT)
331
+ install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME})
332
+ endif()
333
+
@@ -0,0 +1,31 @@
1
+ {
2
+ "version": 6,
3
+ "cmakeMinimumRequired": {
4
+ "major": 3,
5
+ "minor": 5,
6
+ "patch": 0
7
+ },
8
+ "configurePresets": [
9
+ {
10
+ "name": "gcc",
11
+ "displayName": "GCC",
12
+ "description": "Default build options for GCC",
13
+ "generator": "Unix Makefiles",
14
+ "binaryDir": "${sourceDir}/build"
15
+ }
16
+ ],
17
+ "buildPresets": [
18
+ {
19
+ "name": "gcc",
20
+ "configurePreset": "gcc"
21
+ }
22
+ ],
23
+ "testPresets": [
24
+ {
25
+ "name": "gcc",
26
+ "configurePreset": "gcc",
27
+ "output": {"outputOnFailure": true},
28
+ "execution": {"noTestsAction": "error", "stopOnFailure": true}
29
+ }
30
+ ]
31
+ }