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.
- package/NitroXlsx.podspec +27 -27
- package/Package.swift +35 -10
- package/README.md +220 -58
- package/android/CMakeLists.txt +24 -27
- package/android/cpp-adapter.cpp +12 -0
- package/android/src/main/java/com/margelo/nitro/xlsx/NitroXlsxPackage.kt +9 -0
- package/cpp/HybridNitroXlsx.cpp +25 -179
- package/cpp/HybridNitroXlsx.hpp +2 -2
- package/cpp/HybridXlsxConditionalFormat.cpp +252 -0
- package/cpp/HybridXlsxConditionalFormat.hpp +62 -0
- package/cpp/HybridXlsxConditionalFormats.cpp +46 -0
- package/cpp/HybridXlsxConditionalFormats.hpp +28 -0
- package/cpp/HybridXlsxWorkbook.cpp +159 -196
- package/cpp/HybridXlsxWorkbook.hpp +7 -2
- package/cpp/HybridXlsxWorksheet.cpp +433 -62
- package/cpp/HybridXlsxWorksheet.hpp +73 -26
- package/cpp/XlsxCacheDir.cpp +76 -0
- package/cpp/XlsxCacheDir.hpp +27 -0
- package/cpp/XlsxError.hpp +68 -0
- package/cpp/XlsxJson.cpp +185 -0
- package/cpp/XlsxJson.hpp +36 -0
- package/ios/XlsxCacheDir.mm +60 -0
- package/nitrogen/generated/android/NitroXlsx+autolinking.cmake +2 -0
- package/nitrogen/generated/shared/c++/HybridNitroXlsxSpec.hpp +5 -3
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatSpec.cpp +54 -0
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatSpec.hpp +95 -0
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatsSpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridXlsxConditionalFormatsSpec.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridXlsxWorkbookSpec.cpp +3 -0
- package/nitrogen/generated/shared/c++/HybridXlsxWorkbookSpec.hpp +6 -1
- package/nitrogen/generated/shared/c++/HybridXlsxWorksheetSpec.cpp +47 -19
- package/nitrogen/generated/shared/c++/HybridXlsxWorksheetSpec.hpp +52 -20
- package/package.json +3 -3
- package/scripts/run-cpp-tests.sh +14 -0
- package/src/__mocks__/react-native-nitro-modules.ts +1 -0
- package/src/__tests__/index.test.ts +76 -7
- package/src/index.ts +107 -18
- package/src/specs/NitroXlsx.nitro.ts +141 -44
- 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/ios/dummy.swift +0 -2
- package/scripts/prepare-openxlsx.js +0 -109
|
@@ -0,0 +1,530 @@
|
|
|
1
|
+
# GNU Makefile for OpenXLSX modules & demos
|
|
2
|
+
# Version: 2025-08-26 15:15 CEST
|
|
3
|
+
# $(error 2025-08-16 15:30 CEST: With recent changes to the project configuration, the GNU Makefile is currently non-functional)
|
|
4
|
+
|
|
5
|
+
$(info 2025-08-26 Temporary override of options (only supported configuration is with libpugixml and libzip preinstalled on the build system))
|
|
6
|
+
$(info ___________It remains TBD whether it will be possible (or is even desired) to pull in dependencies from the GNU Makefile)
|
|
7
|
+
OPENXLSX_ENABLE_LIBPUGIXML=ON
|
|
8
|
+
OPENXLSX_ENABLE_LIBZIP=ON
|
|
9
|
+
OPENXLSX_ENABLE_LIBBOOST_NOWIDE=ON
|
|
10
|
+
OPENXLSX_SHARED_LIBRARY=OFF
|
|
11
|
+
$(info OPENXLSX_ENABLE_LIBPUGIXML $(OPENXLSX_ENABLE_LIBPUGIXML))
|
|
12
|
+
$(info OPENXLSX_ENABLE_LIBZIP $(OPENXLSX_ENABLE_LIBZIP))
|
|
13
|
+
$(info OPENXLSX_ENABLE_LIBBOOST_NOWIDE $(OPENXLSX_ENABLE_LIBBOOST_NOWIDE))
|
|
14
|
+
$(info OPENXLSX_SHARED_LIBRARY $(OPENXLSX_SHARED_LIBRARY))
|
|
15
|
+
|
|
16
|
+
# Makefile option OPENXLSX_ENABLE_LIBPUGIXML: Scripts/make-gnu.sh OPENXLSX_ENABLE_LIBPUGIXML=ON
|
|
17
|
+
ifeq ("$(OPENXLSX_ENABLE_LIBPUGIXML)", "ON")
|
|
18
|
+
# use libpugixml
|
|
19
|
+
USE_LIBPUGIXML=yes
|
|
20
|
+
else
|
|
21
|
+
# use pugixml in header-only version shipped with OpenXLSX
|
|
22
|
+
OPENXLSX_ENABLE_LIBPUGIXML=OFF
|
|
23
|
+
USE_LIBPUGIXML=no
|
|
24
|
+
endif
|
|
25
|
+
|
|
26
|
+
# Makefile option OPENXLSX_ENABLE_LIBZIP: Scripts/make-gnu.sh OPENXLSX_ENABLE_LIBZIP=ON (default)
|
|
27
|
+
ifeq ("$(OPENXLSX_ENABLE_LIBZIP)", "OFF")
|
|
28
|
+
# use zippy
|
|
29
|
+
USE_LIBZIP=no
|
|
30
|
+
else
|
|
31
|
+
# use libzip
|
|
32
|
+
OPENXLSX_ENABLE_LIBZIP=ON
|
|
33
|
+
USE_LIBZIP=yes
|
|
34
|
+
endif
|
|
35
|
+
|
|
36
|
+
# Makefile option OPENXLSX_FORCE_NOWIDE: Scripts/make-gnu.sh OPENXLSX_FORCE_NOWIDE=ON
|
|
37
|
+
ifeq ("$(OPENXLSX_FORCE_NOWIDE)", "ON")
|
|
38
|
+
USE_NOWIDE_DEFAULT=yes
|
|
39
|
+
else
|
|
40
|
+
OPENXLSX_FORCE_NOWIDE=OFF
|
|
41
|
+
USE_NOWIDE_DEFAULT=no
|
|
42
|
+
endif
|
|
43
|
+
|
|
44
|
+
# Makefile option OPENXLSX_ENABLE_LIBBOOST_NOWIDE: Scripts/make-gnu.sh OPENXLSX_ENABLE_LIBBOOST_NOWIDE=ON
|
|
45
|
+
ifeq ("$(OPENXLSX_ENABLE_LIBBOOST_NOWIDE)", "ON")
|
|
46
|
+
# use libpugixml
|
|
47
|
+
USE_LIBBOOST_NOWIDE=yes
|
|
48
|
+
else
|
|
49
|
+
# use pugixml in header-only version shipped with OpenXLSX
|
|
50
|
+
OPENXLSX_ENABLE_LIBBOOST_NOWIDE=OFF
|
|
51
|
+
USE_LIBBOOST_NOWIDE=no
|
|
52
|
+
endif
|
|
53
|
+
|
|
54
|
+
# Makefile option OPENXLSX_SHARED_LIBRARY: Scripts/make-gnu.sh OPENXLSX_SHARED_LIBRARY=ON
|
|
55
|
+
ifeq ("$(OPENXLSX_SHARED_LIBRARY)", "ON")
|
|
56
|
+
# NOTE: Currently unsupported in GNU Makefile:
|
|
57
|
+
# build shared library
|
|
58
|
+
USE_SHARED_LIBRARY=yes
|
|
59
|
+
else
|
|
60
|
+
# build static library (default & only supported option in GNU Makefile)
|
|
61
|
+
OPENXLSX_SHARED_LIBRARY=OFF
|
|
62
|
+
USE_SHARED_LIBRARY=no
|
|
63
|
+
endif
|
|
64
|
+
|
|
65
|
+
# version tags
|
|
66
|
+
OPENXLSX_MAJOR_VERSION=0
|
|
67
|
+
OPENXLSX_MINOR_VERSION=4
|
|
68
|
+
OPENXLSX_MICRO_VERSION=2
|
|
69
|
+
|
|
70
|
+
# NOTE: lib and library are available as aliases for OpenXLSX, to build the static library file
|
|
71
|
+
TARGETS=OpenXLSX Demo1 Demo2 Demo3 Demo4 Demo5 Demo6 Demo7 Demo8 Demo9 Demo10
|
|
72
|
+
ADDITIONAL_TARGETS=Demo1A
|
|
73
|
+
|
|
74
|
+
DEMOS_SRC_DIR=Examples
|
|
75
|
+
BIN_DIR=output
|
|
76
|
+
|
|
77
|
+
CC=gcc
|
|
78
|
+
CXX=g++
|
|
79
|
+
|
|
80
|
+
# /usr/bin/ar: create archive without symbol table
|
|
81
|
+
AR=ar
|
|
82
|
+
# /usr/bin/ranlib: add symbol table to archive created with ar
|
|
83
|
+
RANLIB=ranlib
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
OPTIMIZATION_FLAGS=
|
|
87
|
+
#OPTIMIZATION_FLAGS=-O3
|
|
88
|
+
|
|
89
|
+
# === BEGIN: Detect OS platform based on gcc compiler defines ===
|
|
90
|
+
# Actual detection command:
|
|
91
|
+
DETECT_CMD="echo | $(CC) -dM -E -"
|
|
92
|
+
|
|
93
|
+
# Test commands to "simulate" a platform
|
|
94
|
+
# DETECT_CMD="echo \"\#define WIN32 1\""
|
|
95
|
+
# DETECT_CMD="echo \"\#define _WIN32 1\""
|
|
96
|
+
# DETECT_CMD="echo \"\#define __WIN32__ 1\""
|
|
97
|
+
# DETECT_CMD="echo \"\#define _WIN64 1\""
|
|
98
|
+
# DETECT_CMD="printf '\#define WIN32 1\n\#define _WIN32 1\n\#define __WIN32__ 1\n\#define _WIN64 1'" # test all defines together with line breaks
|
|
99
|
+
# DETECT_CMD="echo \"\#define __linux__ 1\""
|
|
100
|
+
# DETECT_CMD="echo \"\#define __CYGWIN__ 1\""
|
|
101
|
+
|
|
102
|
+
__linux__ := $(shell "$(DETECT_CMD)" | grep "\b__linux__\b")
|
|
103
|
+
ifdef __linux__
|
|
104
|
+
Linux=yes
|
|
105
|
+
else
|
|
106
|
+
Linux=no
|
|
107
|
+
endif
|
|
108
|
+
|
|
109
|
+
WIN32 := $(shell "$(DETECT_CMD)" | grep "\bWIN32\b")
|
|
110
|
+
_WIN32 := $(shell "$(DETECT_CMD)" | grep "\b_WIN32\b")
|
|
111
|
+
__WIN32__ := $(shell "$(DETECT_CMD)" | grep "\b__WIN32__\b")
|
|
112
|
+
_WIN64 := $(shell "$(DETECT_CMD)" | grep "\b_WIN64\b")
|
|
113
|
+
ifdef WIN32
|
|
114
|
+
Windows=yes
|
|
115
|
+
else ifdef _WIN32
|
|
116
|
+
Windows=yes
|
|
117
|
+
else ifdef __WIN32__
|
|
118
|
+
Windows=yes
|
|
119
|
+
else ifdef _WIN64
|
|
120
|
+
Windows=yes
|
|
121
|
+
else
|
|
122
|
+
Windows=no
|
|
123
|
+
endif
|
|
124
|
+
|
|
125
|
+
__CYGWIN__ := $(shell "$(DETECT_CMD)" | grep "\b__CYGWIN__\b")
|
|
126
|
+
ifdef __CYGWIN__
|
|
127
|
+
Cygwin=yes
|
|
128
|
+
else
|
|
129
|
+
Cygwin=no
|
|
130
|
+
endif
|
|
131
|
+
# === END: detect OS platform based on gcc compiler defines ===
|
|
132
|
+
|
|
133
|
+
OPENXLSX_DIR=OpenXLSX
|
|
134
|
+
SRC_DIR=sources
|
|
135
|
+
INCLUDE_DIR=headers
|
|
136
|
+
OBJ_DIR=obj
|
|
137
|
+
STATIC_LIBRARY=libOpenXLSX.a
|
|
138
|
+
|
|
139
|
+
USE_NOWIDE=$(USE_NOWIDE_DEFAULT)
|
|
140
|
+
ifeq ("$(Windows)", "yes")
|
|
141
|
+
# enable nowide on windows. CAUTION: do not append this comment to the variable assignment, it will break the ifeq check below
|
|
142
|
+
USE_NOWIDE=yes
|
|
143
|
+
endif
|
|
144
|
+
|
|
145
|
+
# SHARED_SUBDIR=shared
|
|
146
|
+
EXTERNAL_SUBDIR=external
|
|
147
|
+
NOWIDE_SUBDIR=$(EXTERNAL_SUBDIR)/nowide
|
|
148
|
+
PUGIXML_SUBDIR=$(EXTERNAL_SUBDIR)/pugixml
|
|
149
|
+
ZIPPY_SUBDIR=$(EXTERNAL_SUBDIR)/zippy
|
|
150
|
+
|
|
151
|
+
# library / utility objects
|
|
152
|
+
# OBJS_LICENSE=license.o
|
|
153
|
+
# OBJS_SHARED=$(OBJS_LICENSE)
|
|
154
|
+
OBJS_PUGIXML= # used as header-only module OR as system library (if USE_LIBPUGIXML=yes)
|
|
155
|
+
OBJS_ZIPPY= # header-only module
|
|
156
|
+
OBJS_OPENXLSX=XLCell.o XLCellIterator.o XLCellRange.o XLCellReference.o XLCellValue.o XLColor.o XLColumn.o XLComments.o XLContentTypes.o XLDateTime.o XLDocument.o XLDrawing.o XLFormula.o XLMergeCells.o XLProperties.o XLRelationships.o XLRow.o XLRowData.o XLSharedStrings.o XLSheet.o XLStyles.o XLTables.o XLWorkbook.o XLXmlData.o XLXmlFile.o XLXmlParser.o XLZipArchive.o
|
|
157
|
+
|
|
158
|
+
# create a version of OBJS_OPENXLSX that already has the correct prefix so that it can be used for linking without further modification
|
|
159
|
+
OBJS_OPENXLSX_PREFIXED=$(addprefix $(OBJ_DIR)/$(OPENXLSX_DIR)/,$(OBJS_OPENXLSX))
|
|
160
|
+
|
|
161
|
+
# OBJS_DEMOS=$(OBJS_OPENXLSX_PREFIXED) # no longer needed - using static library instead
|
|
162
|
+
OBJS_DEMOS=$(BIN_DIR)/$(STATIC_LIBRARY) # use static library for linking demos
|
|
163
|
+
|
|
164
|
+
ifeq ("$(USE_LIBPUGIXML)", "yes")
|
|
165
|
+
LDLIBS_PUGIXML=-lpugixml
|
|
166
|
+
ENABLE_LIBPUGIXML=-DUSE_LIBPUGIXML
|
|
167
|
+
INCLUDE_DIR_PUGIXML= # do not identify OpenXLSX-shipped pugixml path
|
|
168
|
+
else
|
|
169
|
+
INCLUDE_DIR_PUGIXML= -I$(OPENXLSX_DIR)/$(PUGIXML_SUBDIR)
|
|
170
|
+
endif
|
|
171
|
+
ifeq ("$(USE_LIBZIP)", "yes")
|
|
172
|
+
ENABLE_LIBZIP=-DUSE_LIBZIP
|
|
173
|
+
LDLIBS_LIBZIP=-lzip
|
|
174
|
+
endif
|
|
175
|
+
ifeq ("$(USE_NOWIDE)", "yes")
|
|
176
|
+
ifeq ("$(USE_LIBBOOST_NOWIDE)", "yes")
|
|
177
|
+
ENABLE_NOWIDE=-DENABLE_NOWIDE -DENABLE_LIBBOOST_NOWIDE
|
|
178
|
+
else
|
|
179
|
+
ENABLE_NOWIDE=-DENABLE_NOWIDE
|
|
180
|
+
endif
|
|
181
|
+
endif
|
|
182
|
+
PROJECT_FLAGS=$(ENABLE_LIBPUGIXML) $(ENABLE_LIBZIP) $(ENABLE_NOWIDE)
|
|
183
|
+
|
|
184
|
+
# additional include directories for 1) OPENXLSX project headers and 2) external nowide (parent) folder
|
|
185
|
+
ADDITIONAL_INCLUDE_FLAGS=-I$(OPENXLSX_DIR) -I$(OPENXLSX_DIR)/$(EXTERNAL_SUBDIR)
|
|
186
|
+
|
|
187
|
+
# application objects
|
|
188
|
+
|
|
189
|
+
# Demo0 is a placeholder for test programs - if used, has to be explicitly provided as build target (not included in defaults)
|
|
190
|
+
OBJS_DEMO0=Demo0.o
|
|
191
|
+
OBJS_OPENXLSX_DEMO0=$(OBJS_DEMOS)
|
|
192
|
+
LDLIBS_DEMO0=
|
|
193
|
+
|
|
194
|
+
OBJS_DEMO1=Demo1.o
|
|
195
|
+
OBJS_OPENXLSX_DEMO1=$(OBJS_DEMOS)
|
|
196
|
+
LDLIBS_DEMO1=
|
|
197
|
+
|
|
198
|
+
OBJS_DEMO1A=Demo1A.o
|
|
199
|
+
OBJS_OPENXLSX_DEMO1A=$(OBJS_DEMOS)
|
|
200
|
+
LDLIBS_DEMO1A=
|
|
201
|
+
|
|
202
|
+
OBJS_DEMO2=Demo2.o
|
|
203
|
+
OBJS_OPENXLSX_DEMO2=$(OBJS_DEMOS)
|
|
204
|
+
LDLIBS_DEMO2=
|
|
205
|
+
|
|
206
|
+
OBJS_DEMO3=Demo3.o
|
|
207
|
+
OBJS_OPENXLSX_DEMO3=$(OBJS_DEMOS)
|
|
208
|
+
LDLIBS_DEMO3=
|
|
209
|
+
|
|
210
|
+
OBJS_DEMO4=Demo4.o
|
|
211
|
+
OBJS_OPENXLSX_DEMO4=$(OBJS_DEMOS)
|
|
212
|
+
LDLIBS_DEMO4=
|
|
213
|
+
|
|
214
|
+
OBJS_DEMO5=Demo5.o
|
|
215
|
+
OBJS_OPENXLSX_DEMO5=$(OBJS_DEMOS)
|
|
216
|
+
LDLIBS_DEMO5=
|
|
217
|
+
|
|
218
|
+
OBJS_DEMO6=Demo6.o
|
|
219
|
+
OBJS_OPENXLSX_DEMO6=$(OBJS_DEMOS)
|
|
220
|
+
LDLIBS_DEMO6=
|
|
221
|
+
|
|
222
|
+
OBJS_DEMO7=Demo7.o
|
|
223
|
+
OBJS_OPENXLSX_DEMO7=$(OBJS_DEMOS)
|
|
224
|
+
LDLIBS_DEMO7=
|
|
225
|
+
|
|
226
|
+
OBJS_DEMO8=Demo8.o
|
|
227
|
+
OBJS_OPENXLSX_DEMO8=$(OBJS_DEMOS)
|
|
228
|
+
LDLIBS_DEMO8=
|
|
229
|
+
|
|
230
|
+
OBJS_DEMO9=Demo9.o
|
|
231
|
+
OBJS_OPENXLSX_DEMO9=$(OBJS_DEMOS)
|
|
232
|
+
LDLIBS_DEMO9=
|
|
233
|
+
|
|
234
|
+
OBJS_DEMO10=Demo10.o
|
|
235
|
+
OBJS_OPENXLSX_DEMO10=$(OBJS_DEMOS)
|
|
236
|
+
LDLIBS_DEMO10=
|
|
237
|
+
|
|
238
|
+
SANITIZE_FLAGS=
|
|
239
|
+
# SANITIZE_FLAGS=-fsanitize=address
|
|
240
|
+
# SANITIZE_FLAGS=-fsanitize=address -fsanitize=leak
|
|
241
|
+
SANITIZE_LIBS=
|
|
242
|
+
# SANITIZE_LIBS=-llsan
|
|
243
|
+
|
|
244
|
+
# 2024-08-18 warning state:
|
|
245
|
+
# misleading-indentation: 0 warnings
|
|
246
|
+
# sign-compare: 0 warnings
|
|
247
|
+
# unknown-pragmas: 0 (disabled warning about previous 144 lines upsetting gcc/g++ by pragma)
|
|
248
|
+
# unused-function: 3 (disabled by pragma)
|
|
249
|
+
# OpenXLSX/sources/XLProperties.cpp: std::vector<std::string> headingPairsCategoriesStrings(XMLNode docNode)
|
|
250
|
+
# OpenXLSX/sources/XLDocument.cpp: bool fileExists(const std::string& fileName)
|
|
251
|
+
# bool isDirectory(const std::string& fileName)
|
|
252
|
+
ENABLED_WARNING_FLAGS=-Wformat -Wformat-signedness -Wall -Wpedantic -Wextra
|
|
253
|
+
DISABLED_WARNING_FLAGS=
|
|
254
|
+
|
|
255
|
+
GENERIC_FLAGS=$(ADDITIONAL_INCLUDE_FLAGS) $(PROJECT_FLAGS) -fno-common $(SANITIZE_FLAGS) $(OPTIMIZATION_FLAGS) $(ENABLED_WARNING_FLAGS) $(DISABLED_WARNING_FLAGS)
|
|
256
|
+
|
|
257
|
+
CPPFLAGS=$(GENERIC_FLAGS) -std=c++17
|
|
258
|
+
# CPPFLAGS=$(GENERIC_FLAGS) -std=c++17 -D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700
|
|
259
|
+
|
|
260
|
+
LDFLAGS=$(SANITIZE_FLAGS)
|
|
261
|
+
# LDFLAGS=-fno-common
|
|
262
|
+
|
|
263
|
+
# TEST: truncate binary to actually used code (https://gcc.gnu.org/onlinedocs/gnat_ugn/Compilation-options.html)
|
|
264
|
+
# GENERIC_FLAGS+= -ffunction-sections -fdata-sections
|
|
265
|
+
# LDFLAGS+= -Wl,--gc-sections
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
# precompiled libs go here
|
|
269
|
+
LDLIBS=$(SANITIZE_LIBS) $(LDLIBS_PUGIXML) $(LDLIBS_LIBZIP)
|
|
270
|
+
# LDLIBS=-lrt -pthread -lboost_program_options $(SANITIZE_LIBS) # example to add libraries if needed
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
## additional tools for text substitution:
|
|
274
|
+
# call tools like so:
|
|
275
|
+
# VAR = MixedCaseText
|
|
276
|
+
# LOWER_VAR = $(call lc,$(VAR))
|
|
277
|
+
# create all lowercase variable:
|
|
278
|
+
# lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
|
|
279
|
+
# create all uppercase variable:
|
|
280
|
+
uc = $(subst a,A,$(subst b,B,$(subst c,C,$(subst d,D,$(subst e,E,$(subst f,F,$(subst g,G,$(subst h,H,$(subst i,I,$(subst j,J,$(subst k,K,$(subst l,L,$(subst m,M,$(subst n,N,$(subst o,O,$(subst p,P,$(subst q,Q,$(subst r,R,$(subst s,S,$(subst t,T,$(subst u,U,$(subst v,V,$(subst w,W,$(subst x,X,$(subst y,Y,$(subst z,Z,$1))))))))))))))))))))))))))
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
## gnu make override to define the default make directive, only takes a single target
|
|
284
|
+
.DEFAULT_GOAL := default
|
|
285
|
+
default: $(TARGETS)
|
|
286
|
+
|
|
287
|
+
all: $(TARGETS) $(ADDITIONAL_TARGETS)
|
|
288
|
+
|
|
289
|
+
# the $(NOOP) rules are only needed for the dependency / forward to $(BIN_DIR)
|
|
290
|
+
Demo0: $(BIN_DIR)/Demo0
|
|
291
|
+
$(NOOP)
|
|
292
|
+
Demo1: $(BIN_DIR)/Demo1
|
|
293
|
+
$(NOOP)
|
|
294
|
+
Demo1A: $(BIN_DIR)/Demo1A
|
|
295
|
+
$(NOOP)
|
|
296
|
+
Demo2: $(BIN_DIR)/Demo2
|
|
297
|
+
$(NOOP)
|
|
298
|
+
Demo3: $(BIN_DIR)/Demo3
|
|
299
|
+
$(NOOP)
|
|
300
|
+
Demo4: $(BIN_DIR)/Demo4
|
|
301
|
+
$(NOOP)
|
|
302
|
+
Demo5: $(BIN_DIR)/Demo5
|
|
303
|
+
$(NOOP)
|
|
304
|
+
Demo6: $(BIN_DIR)/Demo6
|
|
305
|
+
$(NOOP)
|
|
306
|
+
Demo7: $(BIN_DIR)/Demo7
|
|
307
|
+
$(NOOP)
|
|
308
|
+
Demo8: $(BIN_DIR)/Demo8
|
|
309
|
+
$(NOOP)
|
|
310
|
+
Demo9: $(BIN_DIR)/Demo9
|
|
311
|
+
$(NOOP)
|
|
312
|
+
Demo10: $(BIN_DIR)/Demo10
|
|
313
|
+
$(NOOP)
|
|
314
|
+
|
|
315
|
+
# re-direct from aliases
|
|
316
|
+
lib: OpenXLSX
|
|
317
|
+
library: OpenXLSX
|
|
318
|
+
|
|
319
|
+
# static library target
|
|
320
|
+
OpenXLSX: $(BIN_DIR)/$(STATIC_LIBRARY)
|
|
321
|
+
|
|
322
|
+
# delete existing file, create static library archive file & add symbol table to archive
|
|
323
|
+
# NOTE: if existing library file is not explicitly deleted, ar will fail to update a modified object file
|
|
324
|
+
$(BIN_DIR)/$(STATIC_LIBRARY): $(OBJS_OPENXLSX_PREFIXED) | $(BIN_DIR)
|
|
325
|
+
rm -f $@ # explicitly delete existing library file
|
|
326
|
+
$(AR) qc $@ $(addprefix $(OBJ_DIR)/$(OPENXLSX_DIR)/,$(OBJS_OPENXLSX))
|
|
327
|
+
$(RANLIB) $@
|
|
328
|
+
|
|
329
|
+
# complex rule for BIN_DIR targets: include objects from OBJS_<target> and libraries from LDLIBS_<target>
|
|
330
|
+
.SECONDEXPANSION:
|
|
331
|
+
$(BIN_DIR)/%: $$(addprefix $(OBJ_DIR)/,$$(OBJS_$$(call uc,$$*))) $$(OBJS_OPENXLSX_$$(call uc,$$*)) | $(BIN_DIR)
|
|
332
|
+
$(CXX) $(LDFLAGS) $^ $(LDLIBS) $(LDLIBS_$(call uc,$*)) -o $@
|
|
333
|
+
|
|
334
|
+
# rule for .cpp files in DEMOS_SRC_DIR
|
|
335
|
+
$(OBJ_DIR)/%.o: $(addprefix $(DEMOS_SRC_DIR)/,%.cpp) | $(OBJ_DIR) $(OPENXLSX_DIR)/OpenXLSX-Exports.hpp
|
|
336
|
+
$(CXX) $(CPPFLAGS) -I$(OPENXLSX_DIR)/$(INCLUDE_DIR) -I$(OPENXLSX_DIR)/$(NOWIDE_SUBDIR) -c $< -o $@
|
|
337
|
+
|
|
338
|
+
# rule for OpenXLSX .cpp files
|
|
339
|
+
$(OBJ_DIR)/$(OPENXLSX_DIR)/%.o: $(OPENXLSX_DIR)/$(SRC_DIR)/%.cpp | $(OBJ_DIR) $(OBJ_DIR)/$(OPENXLSX_DIR)/ $(OPENXLSX_DIR)/OpenXLSX-Exports.hpp
|
|
340
|
+
$(CXX) $(CPPFLAGS) -I$(OPENXLSX_DIR)/$(INCLUDE_DIR) -I$(OPENXLSX_DIR)/$(NOWIDE_SUBDIR) $(INCLUDE_DIR_PUGIXML) -I$(OPENXLSX_DIR)/$(ZIPPY_SUBDIR) -c $< -o $@
|
|
341
|
+
|
|
342
|
+
# rule for nowide .cpp files: N/A, as nowide is header-only
|
|
343
|
+
|
|
344
|
+
# rule for pugixml .cpp files: N/A, as pugixml is used as header only
|
|
345
|
+
$(OBJ_DIR)/$(PUGIXML_SUBDIR)/%.o: $(OPENXLSX_DIR)/$(PUGIXML_SUBDIR)/%.cpp | $(OBJ_DIR) $(OBJ_DIR)/$(PUGIXML_SUBDIR)/
|
|
346
|
+
$(CXX) $(CPPFLAGS) $(INCLUDE_DIR_PUGIXML) -c $< -o $@
|
|
347
|
+
|
|
348
|
+
# rule for zippy .cpp files: N/A, as zippy is header only
|
|
349
|
+
|
|
350
|
+
$(OPENXLSX_DIR)/OpenXLSX-Exports.hpp:
|
|
351
|
+
ifeq ("$(USE_SHARED_LIBRARY)", "yes")
|
|
352
|
+
cp gnu-make-crutch/OpenXLSX-Exports-shared.hpp $@
|
|
353
|
+
else
|
|
354
|
+
cp gnu-make-crutch/OpenXLSX-Exports-static.hpp $@
|
|
355
|
+
endif
|
|
356
|
+
|
|
357
|
+
# # rule for shared .cpp files
|
|
358
|
+
# $(OBJ_DIR)/$(SHARED_SUBDIR)/%.o: $(OPENXLSX_DIR)/$(SRC_DIR)/$(SHARED_SUBDIR)/%.cpp | $(OBJ_DIR) $(OBJ_DIR)/$(SHARED_SUBDIR)/
|
|
359
|
+
# $(CXX) $(CPPFLAGS) -I$(INCLUDE_DIR)/$(SHARED_SUBDIR) -c $< -o $@
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
# create BIN_DIR if not existing
|
|
363
|
+
$(BIN_DIR):
|
|
364
|
+
mkdir $@
|
|
365
|
+
|
|
366
|
+
# create OBJ_DIR if not existing
|
|
367
|
+
$(OBJ_DIR):
|
|
368
|
+
mkdir $@
|
|
369
|
+
|
|
370
|
+
# $(OBJ_DIR)/$(SHARED_SUBDIR)/:
|
|
371
|
+
# mkdir $@
|
|
372
|
+
|
|
373
|
+
$(OBJ_DIR)/$(OPENXLSX_DIR)/:
|
|
374
|
+
mkdir $@
|
|
375
|
+
|
|
376
|
+
$(OBJ_DIR)/$(PUGIXML_SUBDIR)/:
|
|
377
|
+
mkdir $@
|
|
378
|
+
|
|
379
|
+
$(OBJ_DIR)/$(ZIPPY_SUBDIR)/:
|
|
380
|
+
mkdir $@
|
|
381
|
+
|
|
382
|
+
# .SECONDARY with no prerequisites causes all targets to be treated
|
|
383
|
+
# as secondary (i.e., no target is removed because it is considered
|
|
384
|
+
# intermediate).
|
|
385
|
+
.SECONDARY:
|
|
386
|
+
|
|
387
|
+
# indicate all rules without target output
|
|
388
|
+
.PHONY: default all clean cleanObjects cleanTargets cleanCrutch echo lib library OpenXLSX
|
|
389
|
+
|
|
390
|
+
clean: cleanObjects cleanTargets cleanCrutch
|
|
391
|
+
|
|
392
|
+
cleanObjects:
|
|
393
|
+
rm -f $(addprefix $(OBJ_DIR)/,$(OBJS_DEMO0) $(OBJS_DEMO1) $(OBJS_DEMO2) $(OBJS_DEMO3) $(OBJS_DEMO4) $(OBJS_DEMO5) $(OBJS_DEMO6) $(OBJS_DEMO7) $(OBJS_DEMO8) $(OBJS_DEMO9) $(OBJS_DEMO10)) \
|
|
394
|
+
$(BIN_DIR)/$(STATIC_LIBRARY) \
|
|
395
|
+
$(OBJS_OPENXLSX_PREFIXED) \
|
|
396
|
+
$(addprefix $(OBJ_DIR)/$(PUGIXML_SUBDIR)/,$(OBJS_PUGIXML)) \
|
|
397
|
+
$(addprefix $(OBJ_DIR)/$(ZIPPY_SUBDIR)/,$(OBJS_ZIPPY))
|
|
398
|
+
# $(addprefix $(OBJ_DIR)/$(SHARED_SUBDIR)/,$(OBJS_SHARED))
|
|
399
|
+
|
|
400
|
+
cleanTargets:
|
|
401
|
+
rm -f $(addprefix $(BIN_DIR)/,Demo0) $(addprefix $(BIN_DIR)/,$(TARGETS)) $(addprefix $(BIN_DIR)/,$(ADDITIONAL_TARGETS))
|
|
402
|
+
|
|
403
|
+
cleanCrutch:
|
|
404
|
+
rm $(OPENXLSX_DIR)/OpenXLSX-Exports.hpp 2>/dev/null
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
# have a look at the established configuration
|
|
408
|
+
echo:
|
|
409
|
+
@echo "OpenXLSX Makefile"
|
|
410
|
+
@echo "----------------------------------------------"
|
|
411
|
+
@echo "OpenXLSX library version: $(OPENXLSX_MAJOR_VERSION).$(OPENXLSX_MINOR_VERSION).$(OPENXLSX_MICRO_VERSION)"
|
|
412
|
+
@echo
|
|
413
|
+
@echo "Make options:"
|
|
414
|
+
@echo " OPENXLSX_ENABLE_LIBPUGIXML: $(OPENXLSX_ENABLE_LIBPUGIXML)"
|
|
415
|
+
@echo " OPENXLSX_ENABLE_LIBZIP: $(OPENXLSX_ENABLE_LIBZIP)"
|
|
416
|
+
@echo " OPENXLSX_FORCE_NOWIDE: $(OPENXLSX_FORCE_NOWIDE)"
|
|
417
|
+
@echo " OPENXLSX_ENABLE_LIBBOOST_NOWIDE: $(OPENXLSX_ENABLE_LIBBOOST_NOWIDE)"
|
|
418
|
+
@echo " OPENXLSX_SHARED_LIBRARY: $(OPENXLSX_SHARED_LIBRARY)"
|
|
419
|
+
@echo "Resulting Makefile flags:"
|
|
420
|
+
@echo " USE_LIBPUGIXML: $(USE_LIBPUGIXML)"
|
|
421
|
+
@echo " USE_LIBZIP: $(USE_LIBZIP)"
|
|
422
|
+
@echo " USE_NOWIDE_DEFAULT: $(USE_NOWIDE_DEFAULT)"
|
|
423
|
+
@echo " USE_LIBBOOST_NOWIDE: $(USE_LIBBOOST_NOWIDE)"
|
|
424
|
+
@echo " USE_SHARED_LIBRARY: $(USE_SHARED_LIBRARY) (currently unsupported, GNU Makefile will always build static library)"
|
|
425
|
+
@echo
|
|
426
|
+
@echo "TARGETS: $(TARGETS)"
|
|
427
|
+
@echo "ADDITIONAL_TARGETS: $(ADDITIONAL_TARGETS)"
|
|
428
|
+
@echo "DEMOS_SRC_DIR: $(DEMOS_SRC_DIR)"
|
|
429
|
+
@echo "BIN_DIR: $(BIN_DIR)"
|
|
430
|
+
@echo
|
|
431
|
+
@echo "CC : $(CC)"
|
|
432
|
+
@echo "CXX : $(CXX)"
|
|
433
|
+
@echo "AR : $(AR)"
|
|
434
|
+
@echo "RANLIB: $(RANLIB)"
|
|
435
|
+
@echo
|
|
436
|
+
@echo "OPTIMIZATION_FLAGS: $(OPTIMIZATION_FLAGS)"
|
|
437
|
+
@echo
|
|
438
|
+
@echo "Platform detection variables:"
|
|
439
|
+
@echo "-----------------------------"
|
|
440
|
+
@echo 'DETECT_CMD: $(DETECT_CMD)'
|
|
441
|
+
@echo
|
|
442
|
+
@echo "__linux__ : $(__linux__)"
|
|
443
|
+
@echo "WIN32 : $(WIN32)"
|
|
444
|
+
@echo "_WIN32 : $(_WIN32)"
|
|
445
|
+
@echo "__WIN32__ : $(__WIN32__)"
|
|
446
|
+
@echo "_WIN64 : $(_WIN64)"
|
|
447
|
+
@echo "__CYGWIN__: $(__CYGWIN__)"
|
|
448
|
+
@echo
|
|
449
|
+
@echo "Platform detection results:"
|
|
450
|
+
@echo "---------------------------"
|
|
451
|
+
@echo "Linux : $(Linux)"
|
|
452
|
+
@echo "Windows: $(Windows)"
|
|
453
|
+
@echo "Cygwin : $(Cygwin)"
|
|
454
|
+
@echo
|
|
455
|
+
@echo "OpenXLSX project configuration:"
|
|
456
|
+
@echo "-------------------------------"
|
|
457
|
+
@echo "USE_NOWIDE: $(USE_NOWIDE) (derived from Windows: $(Windows) and OPENXLSX_FORCE_NOWIDE: $(OPENXLSX_FORCE_NOWIDE))"
|
|
458
|
+
@echo
|
|
459
|
+
@echo "OPENXLSX_DIR: $(OPENXLSX_DIR)"
|
|
460
|
+
@echo "SRC_DIR: $(SRC_DIR)"
|
|
461
|
+
@echo "INCLUDE_DIR: $(INCLUDE_DIR)"
|
|
462
|
+
@echo "OBJ_DIR: $(OBJ_DIR)"
|
|
463
|
+
@echo "STATIC_LIBRARY: $(STATIC_LIBRARY)"
|
|
464
|
+
@echo
|
|
465
|
+
@echo "ENABLE_LIBPUGIXML: $(ENABLE_LIBPUGIXML)"
|
|
466
|
+
@echo "ENABLE_LIBZIP: $(ENABLE_LIBZIP)"
|
|
467
|
+
@echo "ENABLE_NOWIDE: $(ENABLE_NOWIDE)"
|
|
468
|
+
@echo
|
|
469
|
+
# @echo "SHARED_SUBDIR: $(SHARED_SUBDIR)"
|
|
470
|
+
@echo "EXTERNAL_SUBDIR: $(EXTERNAL_SUBDIR)"
|
|
471
|
+
@echo "PUGIXML_SUBDIR: $(PUGIXML_SUBDIR)"
|
|
472
|
+
@echo "ZIPPY_SUBDIR: $(ZIPPY_SUBDIR)"
|
|
473
|
+
@echo
|
|
474
|
+
# @echo "OBJS_LICENSE: $(OBJS_LICENSE)"
|
|
475
|
+
# @echo "OBJS_SHARED: $(OBJS_SHARED)"
|
|
476
|
+
@echo "OBJS_PUGIXML: $(OBJS_PUGIXML)"
|
|
477
|
+
@echo "OBJS_ZIPPY: $(OBJS_ZIPPY)"
|
|
478
|
+
@echo "OBJS_OPENXLSX: $(OBJS_OPENXLSX)"
|
|
479
|
+
@echo "OBJS_OPENXLSX_PREFIXED: $(OBJS_OPENXLSX_PREFIXED)"
|
|
480
|
+
@echo "OBJS_DEMOS: $(OBJS_DEMOS)"
|
|
481
|
+
@echo
|
|
482
|
+
@echo "PROJECT_FLAGS: $(PROJECT_FLAGS)"
|
|
483
|
+
@echo "ADDITIONAL_INCLUDE_FLAGS: $(ADDITIONAL_INCLUDE_FLAGS)"
|
|
484
|
+
@echo
|
|
485
|
+
@echo "OBJS_DEMO0: $(OBJS_DEMO0)"
|
|
486
|
+
@echo "OBJS_OPENXLSX_DEMO0: $(OBJS_OPENXLSX_DEMO0)"
|
|
487
|
+
@echo "LDLIBS_DEMO0: $(LDLIBS_DEMO0)"
|
|
488
|
+
@echo "OBJS_DEMO1: $(OBJS_DEMO1)"
|
|
489
|
+
@echo "OBJS_OPENXLSX_DEMO1: $(OBJS_OPENXLSX_DEMO1)"
|
|
490
|
+
@echo "LDLIBS_DEMO1: $(LDLIBS_DEMO1)"
|
|
491
|
+
@echo "OBJS_DEMO2: $(OBJS_DEMO2)"
|
|
492
|
+
@echo "OBJS_OPENXLSX_DEMO2: $(OBJS_OPENXLSX_DEMO2)"
|
|
493
|
+
@echo "LDLIBS_DEMO2: $(LDLIBS_DEMO2)"
|
|
494
|
+
@echo "OBJS_DEMO3: $(OBJS_DEMO3)"
|
|
495
|
+
@echo "OBJS_OPENXLSX_DEMO3: $(OBJS_OPENXLSX_DEMO3)"
|
|
496
|
+
@echo "LDLIBS_DEMO3: $(LDLIBS_DEMO3)"
|
|
497
|
+
@echo "OBJS_DEMO4: $(OBJS_DEMO4)"
|
|
498
|
+
@echo "OBJS_OPENXLSX_DEMO4: $(OBJS_OPENXLSX_DEMO4)"
|
|
499
|
+
@echo "LDLIBS_DEMO4: $(LDLIBS_DEMO4)"
|
|
500
|
+
@echo "OBJS_DEMO5: $(OBJS_DEMO5)"
|
|
501
|
+
@echo "OBJS_OPENXLSX_DEMO5: $(OBJS_OPENXLSX_DEMO5)"
|
|
502
|
+
@echo "LDLIBS_DEMO5: $(LDLIBS_DEMO5)"
|
|
503
|
+
@echo "OBJS_DEMO6: $(OBJS_DEMO6)"
|
|
504
|
+
@echo "OBJS_OPENXLSX_DEMO6: $(OBJS_OPENXLSX_DEMO6)"
|
|
505
|
+
@echo "LDLIBS_DEMO6: $(LDLIBS_DEMO6)"
|
|
506
|
+
@echo "OBJS_DEMO7: $(OBJS_DEMO7)"
|
|
507
|
+
@echo "OBJS_OPENXLSX_DEMO7: $(OBJS_OPENXLSX_DEMO7)"
|
|
508
|
+
@echo "LDLIBS_DEMO7: $(LDLIBS_DEMO7)"
|
|
509
|
+
@echo "OBJS_DEMO8: $(OBJS_DEMO8)"
|
|
510
|
+
@echo "OBJS_OPENXLSX_DEMO8: $(OBJS_OPENXLSX_DEMO8)"
|
|
511
|
+
@echo "LDLIBS_DEMO8: $(LDLIBS_DEMO8)"
|
|
512
|
+
@echo "OBJS_DEMO9: $(OBJS_DEMO9)"
|
|
513
|
+
@echo "OBJS_OPENXLSX_DEMO9: $(OBJS_OPENXLSX_DEMO9)"
|
|
514
|
+
@echo "LDLIBS_DEMO9: $(LDLIBS_DEMO9)"
|
|
515
|
+
@echo "OBJS_DEMO10: $(OBJS_DEMO10)"
|
|
516
|
+
@echo "OBJS_OPENXLSX_DEMO10: $(OBJS_OPENXLSX_DEMO10)"
|
|
517
|
+
@echo "LDLIBS_DEMO10: $(LDLIBS_DEMO10)"
|
|
518
|
+
@echo
|
|
519
|
+
@echo "SANITIZE_FLAGS: $(SANITIZE_FLAGS)"
|
|
520
|
+
@echo "SANITIZE_LIBS: $(SANITIZE_LIBS)"
|
|
521
|
+
@echo "DISABLED_WARNING_FLAGS: $(DISABLED_WARNING_FLAGS)"
|
|
522
|
+
@echo "GENERIC_FLAGS: $(GENERIC_FLAGS)"
|
|
523
|
+
@echo "CPPFLAGS: $(CPPFLAGS)"
|
|
524
|
+
@echo
|
|
525
|
+
@echo "INCLUDE_DIR_PUGIXML: $(INCLUDE_DIR_PUGIXML)"
|
|
526
|
+
@echo
|
|
527
|
+
@echo "LDFLAGS: $(LDFLAGS)"
|
|
528
|
+
@echo "LDLIBS: $(LDLIBS)"
|
|
529
|
+
@echo "LDLIBS_PUGIXML: $(LDLIBS_PUGIXML)"
|
|
530
|
+
@echo "LDLIBS_LIBZIP: $(LDLIBS_LIBZIP)"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
TBD:
|
|
2
|
+
----
|
|
3
|
+
* in XLWorkbook::setSheetIndex: What does this section do: // ===== Updated defined names with worksheet scopes. ???
|
|
4
|
+
* in XLWorkbook::updateSheetReferences: What does this function actually do (TBD to verify definedNames logic)???
|
|
5
|
+
* how to invoke non-const XMLDocument* getXmlDocument()? Had to use a const_cast because the compiler insisted on
|
|
6
|
+
using the const version for the assignment to a non-const XMLDocument pointer
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
TBC:
|
|
10
|
+
----
|
|
11
|
+
* Does zippy.hpp line 10614 have bug in the return statement of the lambda to erase files from the result:
|
|
12
|
+
return (subFolderDepth == rootDepth && filename.back() != '/') || (subFolderDepth > rootDepth);
|
|
13
|
+
?
|
|
14
|
+
If I don't misread this, the condition filename.back() != '/' would delete all filenames from the result that are not directories, which would be in contradiction to the function description
|
|
15
|
+
* @brief Get a list of the entries in a specific directory of the archive. Depending on the input parameters,
|
|
16
|
+
* the list will include directories, files or both.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
CONFIRMED:
|
|
2
|
+
* XLCellReference constructor shall throw exception on empty string
|
|
3
|
+
* node.empty() works on empty nodes, e.g.: XLMNode node() // --> node.empty() evaluates to true
|
|
4
|
+
* Does an XLSX column type t default to "n" numeric? Because OpenXLSX does not add the t field for numbers:
|
|
5
|
+
-> no type == generic value (for any application reading)
|
|
6
|
+
|
|
7
|
+
* Pull request #191: can AmigaOS support ""/file-in-local-folder.xlsx, using "" as local folder?
|
|
8
|
+
-> No, AmigaOS does NOT support an explicit identifier for the local folder
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<styleSheet>
|
|
3
|
+
<tableStyles count="0" defaultTableStyle="TableStyleMedium2" defaultPivotStyle="PivotStyleLight16"/>
|
|
4
|
+
<extLst>
|
|
5
|
+
<ext xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main" uri="{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}">
|
|
6
|
+
<x14:slicerStyles defaultSlicerStyle="SlicerStyleLight1"/>
|
|
7
|
+
</ext>
|
|
8
|
+
<ext xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main" uri="{9260A510-F301-46a8-8635-F512D64BE5F5}">
|
|
9
|
+
<x15:timelineStyles defaultTimelineStyle="TimeSlicerStyleLight1"/>
|
|
10
|
+
</ext>
|
|
11
|
+
</extLst>
|
|
12
|
+
</styleSheet>
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
How to find TBDs in the source code:
|
|
2
|
+
====================================
|
|
3
|
+
$ grep -rni "todo\|tbd\|caution"
|
|
4
|
+
|
|
5
|
+
Planned features:
|
|
6
|
+
=================
|
|
7
|
+
* comments support: each xl/comments##.xml file refers to the corresponding xl/worksheets/sheets##.xml file with comments structured like so:
|
|
8
|
+
<x:commentList>
|
|
9
|
+
<x:comment ref="M5" authorId="0">
|
|
10
|
+
<x:text>
|
|
11
|
+
<x:t>Enabling this option will reduce memory usage by
|
|
12
|
+
saving some intermediate data from memory onto the
|
|
13
|
+
computer's hard disk.</x:t>
|
|
14
|
+
</x:text>
|
|
15
|
+
</x:comment>
|
|
16
|
+
</x:commentList>
|
|
17
|
+
|
|
18
|
+
NOTE: each comments file should be listed in [Content_Types].xml:
|
|
19
|
+
* Types::Override node: <Override PartName="/xl/comments1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml"/>
|
|
20
|
+
* support for worksheet specific relationships (comments, drawings)
|
|
21
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
22
|
+
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
23
|
+
<Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments" Target="/xl/comments10.xml" Id="Rd57c507abdc84ad0"/>
|
|
24
|
+
<Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing" Target="/xl/drawings/vmldrawing10.vml" Id="Re5068d6e0dbe4bec"/>
|
|
25
|
+
</Relationships>
|
|
26
|
+
|
|
27
|
+
TBD features (low priority):
|
|
28
|
+
============================
|
|
29
|
+
* support for rich-text cell contents (see idea for an implementation of rich-text cell contents at end of file)
|
|
30
|
+
* replace leap year logic per XLDateTime.cpp with c++ built-in date functions
|
|
31
|
+
* related to random 64bit identifiers: check [Content_Types].xml "support" (in that saving the file does not break anything):
|
|
32
|
+
---------------------------------------------------------------------------------------------------------------------------
|
|
33
|
+
* Types::Default node: <Default Extension="xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>
|
|
34
|
+
(alternative entry to ContentType="application/xml")
|
|
35
|
+
* Types::Default node: <Default Extension="vml" ContentType="application/vnd.openxmlformats-officedocument.vmlDrawing"/>
|
|
36
|
+
* Types::Default node: <Default Extension="dat" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"/>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
Notes on status of random 64bit ID support in hex format for worksheet r:id values
|
|
41
|
+
==================================================================================
|
|
42
|
+
DONE:
|
|
43
|
+
* XLRelationships: void UseRandomIDs() and void UseSequentialIDs() to switch between one and the other IDs implementation
|
|
44
|
+
* [DONE] _rels/.rels <Relationship <!-- other attributes --> Id="R1089e9da7ec94cca"/>
|
|
45
|
+
--> used for relevant xml targets in the workbook
|
|
46
|
+
* [DONE] xl/workbook##.xml sheets::sheet node: <x:sheet name="Workspace" sheetId="1" r:id="R4b78b06d10804515"/>
|
|
47
|
+
--> regular sheet Ids
|
|
48
|
+
* xl/_rels/workbook##.xml.rels: <Relationship <!-- other attributes --> Id="Rca50407821924816"/>
|
|
49
|
+
workbook relationships: xl/sharedStrings.xml, xl/styles.xml, xl/theme/theme##.xml, and all worksheets
|
|
50
|
+
[DONE] --> regular sheet Ids for worksheets
|
|
51
|
+
TODO --> for the other xml files, it appears the IDs here are not used elsewhere
|
|
52
|
+
* [NOT TOUCHED BY OpenXLSX] xl/worksheets/_rels/sheet##.xml.rels <Relationship <!-- other attributes --> Id="Rc3c7515c124f4337"/>
|
|
53
|
+
each sheet needs a relationship entry for
|
|
54
|
+
- Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"
|
|
55
|
+
--> it appears the ID here is not used elsewhere
|
|
56
|
+
- Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing"
|
|
57
|
+
--> the target for a vmlDrawing is referenced by this ID in the worksheet (see below)
|
|
58
|
+
* [NOT TOUCHED BY OpenXLSX] xl/worksheets/sheet##.xml worksheet node "<x:legacyDrawing r:id="Rc3c7515c124f4337"/>"
|
|
59
|
+
--> refers to the ID defined in the worksheet relationships (above) no support needed atm
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
Idea for an implementation of rich-text cell contents:
|
|
64
|
+
======================================================
|
|
65
|
+
based on: formatted text is rich-text in XML, so one element node per unique style
|
|
66
|
+
- user gets to "get style" for a given position in text (character):
|
|
67
|
+
XLRichText.rows() / .row(index i) -> allows to extract text rows by index, removing the ambiguity of how to count a line break index
|
|
68
|
+
XLRichText.row( i ) returns XLRichTextRow
|
|
69
|
+
XLRichTextRow exposes:
|
|
70
|
+
- std::string functionality for text manipulation, and on top of that:
|
|
71
|
+
- .formatAt( size_t index ) which returns an XLStyle object that contains the style applicable to that character
|
|
72
|
+
XLRichText::insertText( XLRichTextRow row, XLRichText text ) // insert before row with given style
|
|
73
|
+
XLRichText::insertText( XLRichTextRow row, std::string text, XLStyle style == __next__ )
|
|
74
|
+
- when a row is inserted, it inherits the format as specified:
|
|
75
|
+
__previous__: use style of the previous row
|
|
76
|
+
__next__: use style of row
|
|
77
|
+
(custom XLStyle): use custom style (can be default, e.g. XLStyle{})
|
|
78
|
+
XLRichText::insertText( XLRichTextRow row, int index, XLStyle style == __next__ )
|
|
79
|
+
__previous__: use style of the previous character
|
|
80
|
+
__next__: use style of the next character
|
|
81
|
+
(custom XLStyle): use custom style (can be default)
|
|
82
|
+
|
|
83
|
+
XLRichText::prependText( XLRichTextRow row, std::string text, XLStyle style == __next__ )
|
|
84
|
+
- equivalent to XLRichText::insertText( XLRichText.row( 0 ), text, style ) // NOTE: style == __previous__ is not allowed here
|
|
85
|
+
XLRichText::appendText( XLRichTextRow row, std::string text, XLStyle style == __previous__ )
|
|
86
|
+
- equivalent to XLRichText::insertText( XLRichText.row( XLRichText.rows().count() - 1 ), text, style ) // NOTE: style == __next__ is not allowed here
|
|
87
|
+
|
|
88
|
+
XLRichText::format( int fromRow, int fromIndex, int toRow, int toIndex, XLStyle style )
|
|
89
|
+
- applies the given style to the indicated range -> if it overlaps with other styles, this will split rich text sections as needed, e.g.:
|
|
90
|
+
* assume simplified XLRichTextPos pos_i( row_i, index_i )
|
|
91
|
+
* existing style_a from pos_i to pos_j
|
|
92
|
+
* new style_b applied to pos_k to pos_l with pos_k > pos_i and pos_l < pos_j
|
|
93
|
+
* resulting style sections:
|
|
94
|
+
[pos_i;pos_k[ style_a
|
|
95
|
+
[pos_k;pos_l] style_b
|
|
96
|
+
]pos_l;pos_j] style_a
|
|
97
|
+
|
|
98
|
+
NOTE: for all inserts, text can have line breaks & will be inserted into the XLRichText accordingly
|
|
99
|
+
The underlying cell string value is updated accordingly (with the access logic to shared strings)
|
|
100
|
+
|
|
101
|
+
For such manipulations, the user has to create an XLRichText by accessing a cell intentionally as rich text, which will load the cell contents into the above structure and allow according manipulations on the underlying XML. For repeated access, it would be recommended to *not* work on temporary objects, but keep the XLRichText alive until operations on the cell are complete.
|
|
102
|
+
|
|
103
|
+
A bunch of helper functions could then be added one after another, e.g.:
|
|
104
|
+
* introduce XLRichTextCharacter with iterator traits (and a parent property that points to the row)
|
|
105
|
+
* auto-select format ranges based on an XLRichTextRow or XLRichTextCharacters
|
|
106
|
+
--> XLRichText::format( XLRichTextRow row ), XLRichText::format( XLRichTextRow fromRow, toRow ), XLRichText::format( XLRichTextCharacter fromChar, XLRichTextCharacter toChar )
|
|
107
|
+
|
|
108
|
+
TBD: how to decide on duplication / deduplication of XLStyles in the styles table
|