react-native-nitro-xlsx 0.2.5 → 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.
- package/NitroXlsx.podspec +26 -27
- package/Package.swift +31 -10
- package/README.md +1 -1
- package/android/CMakeLists.txt +20 -27
- package/package.json +2 -2
- package/scripts/run-cpp-tests.sh +1 -1
- package/thirdparty/OpenXLSX/.clang-format +118 -0
- package/thirdparty/OpenXLSX/.clang-tidy +28 -0
- package/thirdparty/OpenXLSX/.gitignore +130 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_before_XMLNode_wrappers +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_and_stripping +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_char_support +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespace_support +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-07-29-benchmarks_with_XMLNode_wrappers_and_namespaced_name_disabled +49 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-08-11-benchmarks_post-XLCellIterator-Rework +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-08-14-benchmarks_post-default-row-column-style-support +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-09-02-benchmarks +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-12-19-benchmarks +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2024-12-30-benchmarks-post-XLSharedStrings-by-ref +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-01-09-benchmarks-post-conditionalFormatsAndSheetProtection +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-01-10-benchmarks-post-XLCellValue-bugfix +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-01-31-benchmarks-post-XLComments-implementation +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-02-02-benchmarks-post-XLRowIterator-Rework +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-07-20-benchmarks-after-hiding-pugixml-internals +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/2025-08-29-benchmarks-after-code-review-with-libzip +46 -0
- package/thirdparty/OpenXLSX/Benchmarks/Benchmark.cpp +249 -0
- package/thirdparty/OpenXLSX/Benchmarks/CMakeLists.txt +19 -0
- package/thirdparty/OpenXLSX/CMakeLists.txt +466 -0
- package/thirdparty/OpenXLSX/Documentation/CMakeLists.txt +31 -0
- package/thirdparty/OpenXLSX/Documentation/Doxyfile.in +2471 -0
- package/thirdparty/OpenXLSX/Documentation/DoxygenLayout.xml +194 -0
- package/thirdparty/OpenXLSX/Documentation/customdoxygen.css +1355 -0
- package/thirdparty/OpenXLSX/Examples/CMakeLists.txt +103 -0
- package/thirdparty/OpenXLSX/Examples/Demo1.cpp +279 -0
- package/thirdparty/OpenXLSX/Examples/Demo10.cpp +545 -0
- package/thirdparty/OpenXLSX/Examples/Demo1A.cpp +137 -0
- package/thirdparty/OpenXLSX/Examples/Demo2.cpp +65 -0
- package/thirdparty/OpenXLSX/Examples/Demo3.cpp +89 -0
- package/thirdparty/OpenXLSX/Examples/Demo4.cpp +86 -0
- package/thirdparty/OpenXLSX/Examples/Demo5.cpp +77 -0
- package/thirdparty/OpenXLSX/Examples/Demo6.cpp +103 -0
- package/thirdparty/OpenXLSX/Examples/Demo7.cpp +79 -0
- package/thirdparty/OpenXLSX/Examples/Demo8.cpp +117 -0
- package/thirdparty/OpenXLSX/Examples/Demo9.cpp +363 -0
- package/thirdparty/OpenXLSX/Examples/cmake/FindLIBZIP.cmake +61 -0
- package/thirdparty/OpenXLSX/Examples/external/CustomZip/CustomZip.hpp +256 -0
- package/thirdparty/OpenXLSX/LICENSE.md +29 -0
- package/thirdparty/OpenXLSX/Makefile.GNU +530 -0
- package/thirdparty/OpenXLSX/Notes/TBDs.txt +16 -0
- package/thirdparty/OpenXLSX/Notes/confirmed-TBCs.txt +8 -0
- package/thirdparty/OpenXLSX/Notes/styles-missing-support.xml +12 -0
- package/thirdparty/OpenXLSX/Notes/todo-list.txt +108 -0
- package/thirdparty/OpenXLSX/OpenXLSX/CMakeLists.txt +631 -0
- package/thirdparty/OpenXLSX/OpenXLSX/OpenXLSX.hpp +63 -0
- package/thirdparty/OpenXLSX/OpenXLSX/OpenXLSXConfig.cmake +11 -0
- package/thirdparty/OpenXLSX/OpenXLSX/cmake/bundle_static_library.cmake +198 -0
- package/thirdparty/OpenXLSX/OpenXLSX/cmake/patch_pkg_config.cmake +69 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/IZipArchive.hpp +361 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/OpenXLSX-Exports.hpp +12 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCell.hpp +367 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellIterator.hpp +252 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellRange.hpp +223 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellReference.hpp +317 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCellValue.hpp +793 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLColor.hpp +232 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLColumn.hpp +159 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLCommandQuery.hpp +228 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLComments.hpp +270 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLConstants.hpp +18 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLContentTypes.hpp +264 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDateTime.hpp +175 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDocument.hpp +505 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLDrawing.hpp +452 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLException.hpp +161 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLFormula.hpp +375 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLIterator.hpp +40 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLMergeCells.hpp +216 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLProperties.hpp +348 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRelationships.hpp +348 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRow.hpp +721 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLRowData.hpp +488 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLSharedStrings.hpp +204 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLSheet.hpp +1640 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLStyles.hpp +2390 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLTables.hpp +132 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLWorkbook.hpp +404 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlData.hpp +283 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlFile.hpp +194 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlParser.hpp +282 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLXmlParserForwardDeclarations.hpp +85 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/XLZipArchive.hpp +232 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/LibZip.hpp +447 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/OpenXLSXFileSystemTools.hpp +207 -0
- package/thirdparty/OpenXLSX/OpenXLSX/headers/detail/Zippy.hpp +1375 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCell.cpp +340 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellIterator.cpp +427 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellRange.cpp +221 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellReference.cpp +408 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLCellValue.cpp +519 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLColor.cpp +202 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLColumn.cpp +141 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLComments.cpp +637 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLContentTypes.cpp +329 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDateTime.cpp +269 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDocument.cpp +1678 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLDrawing.cpp +784 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLFormula.cpp +201 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLMergeCells.cpp +357 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLProperties.cpp +810 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRelationships.cpp +529 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRow.cpp +918 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLRowData.cpp +508 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLSharedStrings.cpp +220 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLSheet.cpp +1970 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLStyles.cpp +3014 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLTables.cpp +125 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLWorkbook.cpp +784 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlData.cpp +247 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlFile.cpp +160 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLXmlParser.cpp +261 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/XLZipArchive.cpp +266 -0
- package/thirdparty/OpenXLSX/OpenXLSX/sources/utilities/XLUtilities.hpp +478 -0
- package/thirdparty/OpenXLSX/README.md +1279 -0
- package/thirdparty/OpenXLSX/Scripts/cmake-cleanup.sh +102 -0
- package/thirdparty/OpenXLSX/Scripts/compile.sh +23 -0
- package/thirdparty/OpenXLSX/Scripts/demos-cleanup.sh +25 -0
- package/thirdparty/OpenXLSX/Scripts/demos-run-all.sh +60 -0
- package/thirdparty/OpenXLSX/Scripts/guarded-xml-format.sh +47 -0
- package/thirdparty/OpenXLSX/Scripts/make-gnu.sh +11 -0
- package/thirdparty/OpenXLSX/Scripts/uninstall-manifest.sh +48 -0
- package/thirdparty/OpenXLSX/Scripts/xml-format-all.sh +19 -0
- package/thirdparty/OpenXLSX/Scripts/xml-format.sh +38 -0
- package/thirdparty/OpenXLSX/Tests/CMakeLists.txt +37 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch.hpp +17799 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_automake.hpp +68 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_sonarqube.hpp +182 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_tap.hpp +278 -0
- package/thirdparty/OpenXLSX/Tests/catch/catch_reporter_teamcity.hpp +212 -0
- package/thirdparty/OpenXLSX/Tests/main.cpp +55 -0
- package/thirdparty/OpenXLSX/Tests/testXLCell.cpp +176 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellRange.cpp +180 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellReference.cpp +160 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellValue.cpp +366 -0
- package/thirdparty/OpenXLSX/Tests/testXLCellValueProxy.cpp +255 -0
- package/thirdparty/OpenXLSX/Tests/testXLColor.cpp +75 -0
- package/thirdparty/OpenXLSX/Tests/testXLDateTime.cpp +229 -0
- package/thirdparty/OpenXLSX/Tests/testXLDocument.cpp +197 -0
- package/thirdparty/OpenXLSX/Tests/testXLFormula.cpp +131 -0
- package/thirdparty/OpenXLSX/Tests/testXLRow.cpp +597 -0
- package/thirdparty/OpenXLSX/Tests/testXLSheet.cpp +77 -0
- package/thirdparty/OpenXLSX/Tests/ziptest-with-libs.cpp +88 -0
- package/thirdparty/OpenXLSX/Tests/ziptest.cpp +735 -0
- package/thirdparty/OpenXLSX/cmake/get-git-HEAD-ID.cmake +45 -0
- package/thirdparty/OpenXLSX/cmake/libopenxlsxCPackOptions.cmake.in +20 -0
- package/thirdparty/OpenXLSX/cmake/manage_dependency.cmake +813 -0
- package/thirdparty/OpenXLSX/cmake/recursive_library_type_test.cmake +52 -0
- package/thirdparty/OpenXLSX/gnu-make-crutch/OpenXLSX-Exports-shared.hpp +42 -0
- package/thirdparty/OpenXLSX/gnu-make-crutch/OpenXLSX-Exports-static.hpp +42 -0
- package/thirdparty/OpenXLSX/vcpkg.json +24 -0
- package/thirdparty/README.md +42 -0
- package/thirdparty/miniz/.clang-format +47 -0
- package/thirdparty/miniz/.travis.yml +2 -0
- package/thirdparty/miniz/CMakeLists.txt +333 -0
- package/thirdparty/miniz/CMakePresets.json +31 -0
- package/thirdparty/miniz/ChangeLog.md +272 -0
- package/thirdparty/miniz/Config.cmake.in +1 -0
- package/thirdparty/miniz/LICENSE +22 -0
- package/thirdparty/miniz/amalgamate.sh +57 -0
- package/thirdparty/miniz/examples/example1.c +105 -0
- package/thirdparty/miniz/examples/example2.c +164 -0
- package/thirdparty/miniz/examples/example3.c +269 -0
- package/thirdparty/miniz/examples/example4.c +102 -0
- package/thirdparty/miniz/examples/example5.c +327 -0
- package/thirdparty/miniz/examples/example6.c +189 -0
- package/thirdparty/miniz/meson.build +21 -0
- package/thirdparty/miniz/miniz.c +646 -0
- package/thirdparty/miniz/miniz.h +615 -0
- package/thirdparty/miniz/miniz.pc.in +13 -0
- package/thirdparty/miniz/miniz_common.h +89 -0
- package/thirdparty/miniz/miniz_export.h +20 -0
- package/thirdparty/miniz/miniz_tdef.c +1602 -0
- package/thirdparty/miniz/miniz_tdef.h +199 -0
- package/thirdparty/miniz/miniz_tinfl.c +778 -0
- package/thirdparty/miniz/miniz_tinfl.h +150 -0
- package/thirdparty/miniz/miniz_zip.c +4895 -0
- package/thirdparty/miniz/miniz_zip.h +454 -0
- package/thirdparty/miniz/readme.md +46 -0
- package/thirdparty/miniz/test.sh +36 -0
- package/thirdparty/miniz/tests/add_in_place_fuzzer.c +87 -0
- package/thirdparty/miniz/tests/catch_amalgamated.cpp +10795 -0
- package/thirdparty/miniz/tests/catch_amalgamated.hpp +13143 -0
- package/thirdparty/miniz/tests/checksum_fuzzer.c +26 -0
- package/thirdparty/miniz/tests/compress_fuzzer.c +91 -0
- package/thirdparty/miniz/tests/flush_fuzzer.c +88 -0
- package/thirdparty/miniz/tests/fuzz_main.c +55 -0
- package/thirdparty/miniz/tests/large_fuzzer.c +133 -0
- package/thirdparty/miniz/tests/main.cpp +185 -0
- package/thirdparty/miniz/tests/miniz_tdefl_fuzzer.cc +115 -0
- package/thirdparty/miniz/tests/miniz_tester.cpp +1881 -0
- package/thirdparty/miniz/tests/miniz_zip_validate_fuzzer.cc +71 -0
- package/thirdparty/miniz/tests/miniz_zip_writer_fuzzer.cc +96 -0
- package/thirdparty/miniz/tests/ossfuzz.sh +48 -0
- package/thirdparty/miniz/tests/small_fuzzer.c +126 -0
- package/thirdparty/miniz/tests/timer.cpp +152 -0
- package/thirdparty/miniz/tests/timer.h +40 -0
- package/thirdparty/miniz/tests/uncompress2_fuzzer.c +21 -0
- package/thirdparty/miniz/tests/uncompress_fuzzer.c +30 -0
- package/thirdparty/miniz/tests/zip.dict +9 -0
- package/thirdparty/miniz/tests/zip_fuzzer.c +63 -0
- package/thirdparty/pugixml/.codecov.yml +7 -0
- package/thirdparty/pugixml/.gitattributes +1 -0
- package/thirdparty/pugixml/CMakeLists.txt +330 -0
- package/thirdparty/pugixml/LICENSE.md +24 -0
- package/thirdparty/pugixml/Makefile +98 -0
- package/thirdparty/pugixml/README.md +81 -0
- package/thirdparty/pugixml/SECURITY.md +9 -0
- package/thirdparty/pugixml/appveyor.yml +50 -0
- package/thirdparty/pugixml/docs/config.adoc +7 -0
- package/thirdparty/pugixml/docs/images/dom_tree.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_link1.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_link2.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch1.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch2.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch3.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2005_pch4.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2010_link1.png +0 -0
- package/thirdparty/pugixml/docs/images/vs2010_link2.png +0 -0
- package/thirdparty/pugixml/docs/manual.adoc +3326 -0
- package/thirdparty/pugixml/docs/manual.html +6395 -0
- package/thirdparty/pugixml/docs/quickstart.adoc +287 -0
- package/thirdparty/pugixml/docs/quickstart.html +1107 -0
- package/thirdparty/pugixml/docs/samples/character.xml +8 -0
- package/thirdparty/pugixml/docs/samples/custom_memory_management.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/include.cpp +64 -0
- package/thirdparty/pugixml/docs/samples/load_error_handling.cpp +33 -0
- package/thirdparty/pugixml/docs/samples/load_file.cpp +16 -0
- package/thirdparty/pugixml/docs/samples/load_memory.cpp +66 -0
- package/thirdparty/pugixml/docs/samples/load_options.cpp +30 -0
- package/thirdparty/pugixml/docs/samples/load_stream.cpp +97 -0
- package/thirdparty/pugixml/docs/samples/modify_add.cpp +29 -0
- package/thirdparty/pugixml/docs/samples/modify_base.cpp +43 -0
- package/thirdparty/pugixml/docs/samples/modify_remove.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/save_custom_writer.cpp +116 -0
- package/thirdparty/pugixml/docs/samples/save_declaration.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/save_file.cpp +17 -0
- package/thirdparty/pugixml/docs/samples/save_options.cpp +48 -0
- package/thirdparty/pugixml/docs/samples/save_stream.cpp +18 -0
- package/thirdparty/pugixml/docs/samples/save_subtree.cpp +26 -0
- package/thirdparty/pugixml/docs/samples/text.cpp +35 -0
- package/thirdparty/pugixml/docs/samples/transitions.xml +7 -0
- package/thirdparty/pugixml/docs/samples/traverse_base.cpp +51 -0
- package/thirdparty/pugixml/docs/samples/traverse_iter.cpp +27 -0
- package/thirdparty/pugixml/docs/samples/traverse_predicate.cpp +48 -0
- package/thirdparty/pugixml/docs/samples/traverse_rangefor.cpp +32 -0
- package/thirdparty/pugixml/docs/samples/traverse_walker.cpp +35 -0
- package/thirdparty/pugixml/docs/samples/tree.xml +12 -0
- package/thirdparty/pugixml/docs/samples/weekly-shift_jis.xml +78 -0
- package/thirdparty/pugixml/docs/samples/weekly-utf-16.xml +0 -0
- package/thirdparty/pugixml/docs/samples/weekly-utf-8.xml +78 -0
- package/thirdparty/pugixml/docs/samples/xgconsole.xml +12 -0
- package/thirdparty/pugixml/docs/samples/xpath_error.cpp +43 -0
- package/thirdparty/pugixml/docs/samples/xpath_query.cpp +36 -0
- package/thirdparty/pugixml/docs/samples/xpath_select.cpp +28 -0
- package/thirdparty/pugixml/docs/samples/xpath_variables.cpp +38 -0
- package/thirdparty/pugixml/readme.txt +50 -0
- package/thirdparty/pugixml/scripts/archive.py +54 -0
- package/thirdparty/pugixml/scripts/cocoapods_push.sh +4 -0
- package/thirdparty/pugixml/scripts/natvis/pugixml.natvis +77 -0
- package/thirdparty/pugixml/scripts/natvis/pugixml_compact.natvis +506 -0
- package/thirdparty/pugixml/scripts/nuget/build/native/pugixml-propertiesui.xml +17 -0
- package/thirdparty/pugixml/scripts/nuget/build/native/pugixml.targets +28 -0
- package/thirdparty/pugixml/scripts/nuget/pugixml.nuspec +20 -0
- package/thirdparty/pugixml/scripts/nuget_build.ps1 +60 -0
- package/thirdparty/pugixml/scripts/premake4.lua +92 -0
- package/thirdparty/pugixml/scripts/pugixml-config.cmake.in +12 -0
- package/thirdparty/pugixml/scripts/pugixml.pc.in +11 -0
- package/thirdparty/pugixml/scripts/pugixml.podspec +14 -0
- package/thirdparty/pugixml/scripts/pugixml.xcodeproj/project.pbxproj +212 -0
- package/thirdparty/pugixml/scripts/pugixml_airplay.mkf +13 -0
- package/thirdparty/pugixml/scripts/pugixml_codeblocks.cbp +44 -0
- package/thirdparty/pugixml/scripts/pugixml_codelite.project +56 -0
- package/thirdparty/pugixml/scripts/pugixml_dll.rc +45 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2005.vcproj +343 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2005_static.vcproj +343 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2008.vcproj +339 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2008_static.vcproj +339 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2010.vcxproj +191 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2010_static.vcxproj +191 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2013.vcxproj +199 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2013_static.vcxproj +199 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2015.vcxproj +172 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2015_static.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2017.vcxproj +172 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2017_static.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2019.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2019_static.vcxproj +180 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2022.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2022_static.vcxproj +180 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2026.vcxproj +176 -0
- package/thirdparty/pugixml/scripts/pugixml_vs2026_static.vcxproj +180 -0
- package/thirdparty/pugixml/scripts/sbom.cdx.json +47 -0
- package/thirdparty/pugixml/src/pugiconfig.hpp +81 -0
- package/thirdparty/pugixml/src/pugixml.cpp +13776 -0
- package/thirdparty/pugixml/src/pugixml.hpp +1604 -0
- package/thirdparty/pugixml/tests/allocator.cpp +175 -0
- package/thirdparty/pugixml/tests/allocator.hpp +10 -0
- package/thirdparty/pugixml/tests/autotest-appveyor.ps1 +93 -0
- package/thirdparty/pugixml/tests/cmake-appveyor.ps1 +57 -0
- package/thirdparty/pugixml/tests/data/empty.xml +0 -0
- package/thirdparty/pugixml/tests/data/large.xml +1 -0
- package/thirdparty/pugixml/tests/data/latintest_latin1.xml +1 -0
- package/thirdparty/pugixml/tests/data/latintest_utf8.xml +1 -0
- package/thirdparty/pugixml/tests/data/multiline.xml +3 -0
- package/thirdparty/pugixml/tests/data/small.xml +1 -0
- package/thirdparty/pugixml/tests/data/truncation.xml +19 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_be_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf16_le_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_be_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le_bom.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le_clean.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf32_le_nodecl.xml +0 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8.xml +87 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8_bom.xml +87 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8_clean.xml +84 -0
- package/thirdparty/pugixml/tests/data/utftest_utf8_nodecl.xml +86 -0
- package/thirdparty/pugixml/tests/data//321/202/320/265/321/201/321/202.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/basic.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/doctype.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/refs.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/types.xml +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/utf16.xml +0 -0
- package/thirdparty/pugixml/tests/data_fuzz_parse/utf32.xml +0 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/basic.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/functions.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/math.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/path.xpath +1 -0
- package/thirdparty/pugixml/tests/data_fuzz_xpath/predicate.xpath +1 -0
- package/thirdparty/pugixml/tests/fuzz_parse.cpp +14 -0
- package/thirdparty/pugixml/tests/fuzz_parse.dict +72 -0
- package/thirdparty/pugixml/tests/fuzz_setup.sh +11 -0
- package/thirdparty/pugixml/tests/fuzz_xpath.cpp +46 -0
- package/thirdparty/pugixml/tests/fuzz_xpath.dict +72 -0
- package/thirdparty/pugixml/tests/helpers.hpp +114 -0
- package/thirdparty/pugixml/tests/main.cpp +218 -0
- package/thirdparty/pugixml/tests/test.cpp +220 -0
- package/thirdparty/pugixml/tests/test.hpp +175 -0
- package/thirdparty/pugixml/tests/test_compact.cpp +150 -0
- package/thirdparty/pugixml/tests/test_deprecated.cpp +25 -0
- package/thirdparty/pugixml/tests/test_document.cpp +1910 -0
- package/thirdparty/pugixml/tests/test_dom_modify.cpp +2122 -0
- package/thirdparty/pugixml/tests/test_dom_text.cpp +601 -0
- package/thirdparty/pugixml/tests/test_dom_traverse.cpp +1481 -0
- package/thirdparty/pugixml/tests/test_header_guard.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iosfwd_1.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iosfwd_2.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iostream_1.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_iostream_2.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_only_1.cpp +21 -0
- package/thirdparty/pugixml/tests/test_header_only_2.cpp +21 -0
- package/thirdparty/pugixml/tests/test_header_string_1.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_string_2.cpp +3 -0
- package/thirdparty/pugixml/tests/test_header_string_iostream.cpp +5 -0
- package/thirdparty/pugixml/tests/test_memory.cpp +303 -0
- package/thirdparty/pugixml/tests/test_parse.cpp +1463 -0
- package/thirdparty/pugixml/tests/test_parse_doctype.cpp +366 -0
- package/thirdparty/pugixml/tests/test_unicode.cpp +152 -0
- package/thirdparty/pugixml/tests/test_version.cpp +5 -0
- package/thirdparty/pugixml/tests/test_write.cpp +757 -0
- package/thirdparty/pugixml/tests/test_xpath.cpp +833 -0
- package/thirdparty/pugixml/tests/test_xpath_api.cpp +646 -0
- package/thirdparty/pugixml/tests/test_xpath_functions.cpp +844 -0
- package/thirdparty/pugixml/tests/test_xpath_operators.cpp +566 -0
- package/thirdparty/pugixml/tests/test_xpath_parse.cpp +428 -0
- package/thirdparty/pugixml/tests/test_xpath_paths.cpp +787 -0
- package/thirdparty/pugixml/tests/test_xpath_paths_abbrev_w3c.cpp +219 -0
- package/thirdparty/pugixml/tests/test_xpath_paths_w3c.cpp +312 -0
- package/thirdparty/pugixml/tests/test_xpath_variables.cpp +683 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_1.cpp +411 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_2.cpp +417 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_3.cpp +321 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_4.cpp +300 -0
- package/thirdparty/pugixml/tests/test_xpath_xalan_5.cpp +295 -0
- package/thirdparty/pugixml/tests/writer_string.cpp +79 -0
- package/thirdparty/pugixml/tests/writer_string.hpp +27 -0
- package/scripts/prepare-openxlsx.js +0 -126
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
____ ____ ___ ____ ____ ____ ___
|
|
4
|
+
6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M'
|
|
5
|
+
8P Y8 `MM. d' MM 6M' ` `MM. d'
|
|
6
|
+
6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d'
|
|
7
|
+
MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d'
|
|
8
|
+
MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd
|
|
9
|
+
MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM.
|
|
10
|
+
MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM.
|
|
11
|
+
YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM.
|
|
12
|
+
8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM.
|
|
13
|
+
YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_
|
|
14
|
+
MM
|
|
15
|
+
MM
|
|
16
|
+
_MM_
|
|
17
|
+
|
|
18
|
+
Copyright (c) 2018, Kenneth Troldal Balslev
|
|
19
|
+
|
|
20
|
+
All rights reserved.
|
|
21
|
+
|
|
22
|
+
Redistribution and use in source and binary forms, with or without
|
|
23
|
+
modification, are permitted provided that the following conditions are met:
|
|
24
|
+
- Redistributions of source code must retain the above copyright
|
|
25
|
+
notice, this list of conditions and the following disclaimer.
|
|
26
|
+
- Redistributions in binary form must reproduce the above copyright
|
|
27
|
+
notice, this list of conditions and the following disclaimer in the
|
|
28
|
+
documentation and/or other materials provided with the distribution.
|
|
29
|
+
- Neither the name of the author nor the
|
|
30
|
+
names of any contributors may be used to endorse or promote products
|
|
31
|
+
derived from this software without specific prior written permission.
|
|
32
|
+
|
|
33
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
34
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
35
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
36
|
+
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
|
37
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
38
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
39
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
40
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
41
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
42
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
43
|
+
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
#ifndef OPENXLSX_OPENXLSX_HPP
|
|
47
|
+
#define OPENXLSX_OPENXLSX_HPP
|
|
48
|
+
|
|
49
|
+
#include "headers/XLCell.hpp"
|
|
50
|
+
#include "headers/XLCellRange.hpp"
|
|
51
|
+
#include "headers/XLCellReference.hpp"
|
|
52
|
+
#include "headers/XLCellValue.hpp"
|
|
53
|
+
#include "headers/XLColumn.hpp"
|
|
54
|
+
#include "headers/XLDateTime.hpp"
|
|
55
|
+
#include "headers/XLDocument.hpp"
|
|
56
|
+
#include "headers/XLException.hpp"
|
|
57
|
+
#include "headers/XLFormula.hpp"
|
|
58
|
+
#include "headers/XLRow.hpp"
|
|
59
|
+
#include "headers/XLSheet.hpp"
|
|
60
|
+
#include "headers/XLWorkbook.hpp"
|
|
61
|
+
#include "headers/XLZipArchive.hpp"
|
|
62
|
+
|
|
63
|
+
#endif // OPENXLSX_OPENXLSX_HPP
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
include("${CMAKE_CURRENT_LIST_DIR}/OpenXLSXTargets.cmake")
|
|
2
|
+
# # TBD: the below do not appear to be necessary, nor do they seem to have any effect?
|
|
3
|
+
# if (OPENXLSX_ENABLE_NOWIDE)
|
|
4
|
+
# find_dependency(Boost 1.74 CONFIG)
|
|
5
|
+
# endif()
|
|
6
|
+
# if (OPENXLSX_ENABLE_LIBZIP)
|
|
7
|
+
# find_dependency(LibZip 1.7 CONFIG)
|
|
8
|
+
# endif()
|
|
9
|
+
# if (OPENXLSX_ENABLE_LIBPUGIXML)
|
|
10
|
+
# find_dependency(PugiXML 1.14 CONFIG)
|
|
11
|
+
# endif()
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# MIT License
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2019 Cristian Adam
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
23
|
+
function(bundle_static_library tgt_name bundled_tgt_name)
|
|
24
|
+
list(APPEND static_libs ${tgt_name})
|
|
25
|
+
|
|
26
|
+
function(_recursively_collect_dependencies input_target)
|
|
27
|
+
set(_input_link_libraries LINK_LIBRARIES)
|
|
28
|
+
get_target_property(_input_type ${input_target} TYPE)
|
|
29
|
+
if (${_input_type} STREQUAL "INTERFACE_LIBRARY")
|
|
30
|
+
set(_input_link_libraries INTERFACE_LINK_LIBRARIES)
|
|
31
|
+
endif()
|
|
32
|
+
get_target_property(public_dependencies ${input_target} ${_input_link_libraries})
|
|
33
|
+
foreach(dependency IN LISTS public_dependencies)
|
|
34
|
+
if(TARGET ${dependency})
|
|
35
|
+
get_target_property(alias ${dependency} ALIASED_TARGET)
|
|
36
|
+
if (TARGET ${alias})
|
|
37
|
+
set(dependency ${alias})
|
|
38
|
+
endif()
|
|
39
|
+
get_target_property(_type ${dependency} TYPE)
|
|
40
|
+
if (${_type} STREQUAL "STATIC_LIBRARY")
|
|
41
|
+
list(APPEND static_libs ${dependency})
|
|
42
|
+
endif()
|
|
43
|
+
|
|
44
|
+
get_property(library_already_added
|
|
45
|
+
GLOBAL PROPERTY _${tgt_name}_static_bundle_${dependency})
|
|
46
|
+
if (NOT library_already_added)
|
|
47
|
+
set_property(GLOBAL PROPERTY _${tgt_name}_static_bundle_${dependency} ON)
|
|
48
|
+
_recursively_collect_dependencies(${dependency})
|
|
49
|
+
endif()
|
|
50
|
+
endif()
|
|
51
|
+
endforeach()
|
|
52
|
+
set(static_libs ${static_libs} PARENT_SCOPE)
|
|
53
|
+
endfunction()
|
|
54
|
+
|
|
55
|
+
_recursively_collect_dependencies(${tgt_name})
|
|
56
|
+
|
|
57
|
+
list(REMOVE_DUPLICATES static_libs)
|
|
58
|
+
|
|
59
|
+
set(bundled_tgt_full_name
|
|
60
|
+
${CMAKE_BINARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${bundled_tgt_name}${CMAKE_STATIC_LIBRARY_SUFFIX})
|
|
61
|
+
|
|
62
|
+
if (CMAKE_CXX_COMPILER_ID MATCHES "^(Clang|GNU)$")
|
|
63
|
+
file(WRITE ${CMAKE_BINARY_DIR}/${bundled_tgt_name}.ar.in
|
|
64
|
+
"CREATE ${bundled_tgt_full_name}\n" )
|
|
65
|
+
|
|
66
|
+
foreach(tgt IN LISTS static_libs)
|
|
67
|
+
file(APPEND ${CMAKE_BINARY_DIR}/${bundled_tgt_name}.ar.in
|
|
68
|
+
"ADDLIB $<TARGET_FILE:${tgt}>\n")
|
|
69
|
+
endforeach()
|
|
70
|
+
|
|
71
|
+
file(APPEND ${CMAKE_BINARY_DIR}/${bundled_tgt_name}.ar.in "SAVE\n")
|
|
72
|
+
file(APPEND ${CMAKE_BINARY_DIR}/${bundled_tgt_name}.ar.in "END\n")
|
|
73
|
+
|
|
74
|
+
file(GENERATE
|
|
75
|
+
OUTPUT ${CMAKE_BINARY_DIR}/${bundled_tgt_name}.ar
|
|
76
|
+
INPUT ${CMAKE_BINARY_DIR}/${bundled_tgt_name}.ar.in)
|
|
77
|
+
|
|
78
|
+
set(ar_tool ${CMAKE_AR})
|
|
79
|
+
if (CMAKE_INTERPROCEDURAL_OPTIMIZATION)
|
|
80
|
+
set(ar_tool ${CMAKE_CXX_COMPILER_AR})
|
|
81
|
+
endif()
|
|
82
|
+
|
|
83
|
+
add_custom_command(
|
|
84
|
+
COMMAND ${ar_tool} -M < ${CMAKE_BINARY_DIR}/${bundled_tgt_name}.ar
|
|
85
|
+
OUTPUT ${bundled_tgt_full_name}
|
|
86
|
+
COMMENT "Bundling ${bundled_tgt_name}"
|
|
87
|
+
VERBATIM)
|
|
88
|
+
elseif(MSVC)
|
|
89
|
+
find_program(lib_tool lib)
|
|
90
|
+
|
|
91
|
+
foreach(tgt IN LISTS static_libs)
|
|
92
|
+
list(APPEND static_libs_full_names $<TARGET_FILE:${tgt}>)
|
|
93
|
+
endforeach()
|
|
94
|
+
|
|
95
|
+
add_custom_command(
|
|
96
|
+
COMMAND ${lib_tool} /NOLOGO /OUT:${bundled_tgt_full_name} ${static_libs_full_names}
|
|
97
|
+
OUTPUT ${bundled_tgt_full_name}
|
|
98
|
+
COMMENT "Bundling ${bundled_tgt_name}"
|
|
99
|
+
VERBATIM)
|
|
100
|
+
else()
|
|
101
|
+
message(FATAL_ERROR "Unknown bundle scenario!")
|
|
102
|
+
endif()
|
|
103
|
+
|
|
104
|
+
add_custom_target(bundling_target ALL DEPENDS ${bundled_tgt_full_name})
|
|
105
|
+
add_dependencies(bundling_target ${tgt_name})
|
|
106
|
+
|
|
107
|
+
add_library(${bundled_tgt_name} STATIC IMPORTED)
|
|
108
|
+
set_target_properties(${bundled_tgt_name}
|
|
109
|
+
PROPERTIES
|
|
110
|
+
IMPORTED_LOCATION ${bundled_tgt_full_name}
|
|
111
|
+
INTERFACE_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:${tgt_name},INTERFACE_INCLUDE_DIRECTORIES>)
|
|
112
|
+
add_dependencies(${bundled_tgt_name} bundling_target)
|
|
113
|
+
|
|
114
|
+
endfunction()
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
#=======================================================================================================================
|
|
118
|
+
# BEGIN OF FUNCTION: bundle_static_library_simplified
|
|
119
|
+
# Purpose: replace ${CMAKE_BINARY_DIR} with ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} and process a *known* list of dependencies
|
|
120
|
+
# without the need for the function to _recursively_collect_dependencies
|
|
121
|
+
# Also: better understand the function through learning by doing
|
|
122
|
+
# Status: 2026-03-24 - static_libs_system is no longer in use, static_libs must contain full paths (generator expressions if needed) to static targets
|
|
123
|
+
# Parameters:
|
|
124
|
+
# lib_name original library name for which dependencies shall be statically linked
|
|
125
|
+
# lib_name_combined output library name that includes the dependencies
|
|
126
|
+
# static_libs list of dependencies to link into lib_name_combined
|
|
127
|
+
# static_libs_system list of fully resolved dependencies (of preinstalled libraries) to link into lib_name_combined
|
|
128
|
+
#=======================================================================================================================
|
|
129
|
+
function(bundle_static_library_simplified lib_name lib_name_combined static_libs static_libs_system)
|
|
130
|
+
set(full_lib_name_combined "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_STATIC_LIBRARY_PREFIX}${lib_name_combined}${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
|
131
|
+
|
|
132
|
+
if (CMAKE_CXX_COMPILER_ID MATCHES "^(Clang|GNU)$")
|
|
133
|
+
file(WRITE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${lib_name_combined}.ar.in
|
|
134
|
+
"CREATE ${full_lib_name_combined}\n" )
|
|
135
|
+
|
|
136
|
+
foreach(tgt IN LISTS static_libs)
|
|
137
|
+
message( STATUS "bundle_static_library_simplified: static target is ${tgt}" )
|
|
138
|
+
file(APPEND ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${lib_name_combined}.ar.in
|
|
139
|
+
"ADDLIB ${tgt}\n")
|
|
140
|
+
# "ADDLIB $<TARGET_FILE:${tgt}>\n")
|
|
141
|
+
endforeach()
|
|
142
|
+
foreach(tgt IN LISTS static_libs_system)
|
|
143
|
+
message( STATUS "bundle_static_library_simplified: installed static target is ${tgt}" )
|
|
144
|
+
file(APPEND ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${lib_name_combined}.ar.in
|
|
145
|
+
"ADDLIB ${tgt}>\n")
|
|
146
|
+
endforeach()
|
|
147
|
+
|
|
148
|
+
file(APPEND ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${lib_name_combined}.ar.in "SAVE\n")
|
|
149
|
+
file(APPEND ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${lib_name_combined}.ar.in "END\n")
|
|
150
|
+
|
|
151
|
+
file(GENERATE
|
|
152
|
+
OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${lib_name_combined}.ar
|
|
153
|
+
INPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${lib_name_combined}.ar.in)
|
|
154
|
+
|
|
155
|
+
set(ar_tool ${CMAKE_AR})
|
|
156
|
+
if (CMAKE_INTERPROCEDURAL_OPTIMIZATION)
|
|
157
|
+
set(ar_tool ${CMAKE_CXX_COMPILER_AR})
|
|
158
|
+
endif()
|
|
159
|
+
|
|
160
|
+
add_custom_command(
|
|
161
|
+
COMMAND ${ar_tool} -M < ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${lib_name_combined}.ar
|
|
162
|
+
OUTPUT ${full_lib_name_combined}
|
|
163
|
+
COMMENT "Bundling ${lib_name_combined}"
|
|
164
|
+
VERBATIM)
|
|
165
|
+
elseif(MSVC) # untested, unsupported ATM
|
|
166
|
+
message( FATAL_ERROR "OPENXLSX_BUNDLED_STATIC_LIB is not yet supported for MSVC" )
|
|
167
|
+
|
|
168
|
+
find_program(lib_tool lib)
|
|
169
|
+
|
|
170
|
+
# foreach(tgt IN LISTS static_libs)
|
|
171
|
+
# list(APPEND static_libs_full_names $<TARGET_FILE:${tgt}>)
|
|
172
|
+
# endforeach()
|
|
173
|
+
|
|
174
|
+
add_custom_command(
|
|
175
|
+
# COMMAND ${lib_tool} /NOLOGO /OUT:${full_lib_name_combined} ${static_libs_full_names}
|
|
176
|
+
COMMAND ${lib_tool} /NOLOGO /OUT:${full_lib_name_combined} ${static_libs}
|
|
177
|
+
OUTPUT ${full_lib_name_combined}
|
|
178
|
+
COMMENT "Bundling ${lib_name_combined}"
|
|
179
|
+
VERBATIM)
|
|
180
|
+
else()
|
|
181
|
+
message(FATAL_ERROR "Unknown bundle scenario!")
|
|
182
|
+
endif()
|
|
183
|
+
|
|
184
|
+
add_custom_target(bundling_target ALL DEPENDS ${full_lib_name_combined}) # NOTE: this line is actually the only one required to *just* build the bundled static library
|
|
185
|
+
|
|
186
|
+
# Everything below here might one day be useful to link against the bundled library from CMake configurations, but I currently do not know how to accomplish that
|
|
187
|
+
add_dependencies(bundling_target ${lib_name})
|
|
188
|
+
|
|
189
|
+
add_library(${lib_name_combined} STATIC IMPORTED)
|
|
190
|
+
set_target_properties(${lib_name_combined}
|
|
191
|
+
PROPERTIES
|
|
192
|
+
IMPORTED_LOCATION ${full_lib_name_combined}
|
|
193
|
+
INTERFACE_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:${lib_name},INTERFACE_INCLUDE_DIRECTORIES>)
|
|
194
|
+
add_dependencies(${lib_name_combined} bundling_target)
|
|
195
|
+
endfunction()
|
|
196
|
+
#=======================================================================================================================
|
|
197
|
+
# END OF FUNCTION: bundle_static_library_simplified
|
|
198
|
+
#=======================================================================================================================
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# ============================================================================
|
|
2
|
+
# Author: Lars Uffmann (coding23@uffmann.name)
|
|
3
|
+
# Purpose: Patch an upstream package config (.pc) file Libs property to include an additional subdirectory {exec_prefix}/lib/SUBDIR
|
|
4
|
+
|
|
5
|
+
# Function: pkg_config_add_library_subdir
|
|
6
|
+
# Purpose: patch a package config file IN_PKG_CONFIG to contain an additional library directory LIB_SUBDIR and write the output to OUT_PKG_CONFIG
|
|
7
|
+
# Parameters:
|
|
8
|
+
# IN_PKG_CONFIG
|
|
9
|
+
# OUT_PKG_CONFIG
|
|
10
|
+
# LIB_SUBDIR
|
|
11
|
+
# Returns: Writes the patched output file to the indicated location. Calling process has to verify success by checking existence of OUT_PKG_CONFIG
|
|
12
|
+
#
|
|
13
|
+
function(pkg_config_add_library_subdir IN_PKG_CONFIG OUT_PKG_CONFIG LIB_SUBDIR)
|
|
14
|
+
message( DEBUG "prefixing ${IN_PKG_CONFIG} Libs: setting with '-L{exec_prefix}/lib/${LIB_SUBDIR}' and writing to ${OUT_PKG_CONFIG}" )
|
|
15
|
+
|
|
16
|
+
set(NEW_LIB_DIR "-L\${exec_prefix}/lib/${LIB_SUBDIR}")
|
|
17
|
+
|
|
18
|
+
file(READ "${IN_PKG_CONFIG}" PKG_CONFIG_RAW)
|
|
19
|
+
|
|
20
|
+
# normalize newlines, then join continuation lines, if any
|
|
21
|
+
string(REPLACE "\r\n" "\n" PKG_CONFIG_RAW "${PKG_CONFIG_RAW}")
|
|
22
|
+
string(REPLACE "\r" "\n" PKG_CONFIG_RAW "${PKG_CONFIG_RAW}")
|
|
23
|
+
string(REPLACE "\\\n" " " PKG_CONFIG_RAW "${PKG_CONFIG_RAW}")
|
|
24
|
+
|
|
25
|
+
# optional: collapse multiple whitespaces
|
|
26
|
+
string(REGEX REPLACE "[ \t]+" " " PKG_CONFIG_RAW "${PKG_CONFIG_RAW}")
|
|
27
|
+
|
|
28
|
+
# save and reload file as list of strings:
|
|
29
|
+
file(WRITE "${OUT_PKG_CONFIG}" "${PKG_CONFIG_RAW}")
|
|
30
|
+
file(STRINGS "${OUT_PKG_CONFIG}" PKG_CONFIG_LINES)
|
|
31
|
+
|
|
32
|
+
# initialize text block variables
|
|
33
|
+
set(BEFORE "")
|
|
34
|
+
set(LIBS "")
|
|
35
|
+
set(AFTER "")
|
|
36
|
+
set(found_libs FALSE)
|
|
37
|
+
|
|
38
|
+
# message( STATUS "PKG_CONFIG_LINES is:" )
|
|
39
|
+
foreach(line IN LISTS PKG_CONFIG_LINES)
|
|
40
|
+
# message( STATUS " ${line}" )
|
|
41
|
+
string(STRIP "${line}" line)
|
|
42
|
+
if(line MATCHES "^[Ll]ibs[ \t]*:.*")
|
|
43
|
+
string(REGEX REPLACE "^[Ll]ibs[ \t]*:[ \t]*" "" _Libs_Line "${line}")
|
|
44
|
+
# message( STATUS " This is the Libs line: |${_Libs_Line}|" )
|
|
45
|
+
if(NOT found_libs)
|
|
46
|
+
set(found_libs TRUE)
|
|
47
|
+
set(LIBS "Libs: ${NEW_LIB_DIR}") # begin Libs line with NEW_LIB_DIR
|
|
48
|
+
endif()
|
|
49
|
+
if(NOT "${_Libs_Line}" STREQUAL "") # for non-empty Libs entries
|
|
50
|
+
set(LIBS "${LIBS} ${_Libs_Line}") # append them to the collapsed Libs line
|
|
51
|
+
endif()
|
|
52
|
+
else() # line is not a Libs line
|
|
53
|
+
if(NOT found_libs) # if no Libs line was found so far
|
|
54
|
+
set(BEFORE "${BEFORE}${line}\n") # append line to "BEFORE" block
|
|
55
|
+
else() # else: at least one Libs line was already processed
|
|
56
|
+
set(AFTER "${AFTER}${line}\n") # append line to "AFTER" block
|
|
57
|
+
endif()
|
|
58
|
+
endif()
|
|
59
|
+
endforeach()
|
|
60
|
+
|
|
61
|
+
# if a LIBS line was generated, append a line break
|
|
62
|
+
if(NOT "${LIBS}" STREQUAL "")
|
|
63
|
+
set(LIBS "${LIBS}\n")
|
|
64
|
+
endif()
|
|
65
|
+
|
|
66
|
+
# add header comment explaining the automated patch and write the finalized outfile
|
|
67
|
+
set(HEADER "# Patched by OpenXLSX installer: prepended ${NEW_LIB_DIR} to Libs to accommodate custom library location\n")
|
|
68
|
+
file(WRITE "${OUT_PKG_CONFIG}" "${HEADER}${BEFORE}${LIBS}${AFTER}")
|
|
69
|
+
endfunction()
|