exiv2
exiv2 copied to clipboard
Investigate removing xmpsdk from code base
Exiv2 has been shipping with a copy of the Adobe XMPsdk for a very long time. We don't include the code of any other dependency (expat, libz, libiconv and others). I think the reason is because the early versions of exiv2 had no CMake support and XMPsdk has always exclusively used CMake.
Luis added support to build and link more modern versions of XMPsdk to v0.27 for several reasons:
- Several users requested that we use XMPsdk as an external library because they wanted to use it in their applications. Our 2008 edition of XMPsdk was giving them link problems.
- We're stuck in a time-warp with this elderly version of XMPsdk.
I'm adding the INI parser to this list of things to remove which is currently also just dropped into the exiv2 source tree
I've opened a new issue concerning src/ini.cpp #1811.
I think we should restore the title of this issue to Investigate removing xmpsdk from code base because those issues are different.
I noticed that the XMPsdk is on GitHub now: https://github.com/adobe/XMP-Toolkit-SDK So maybe we can include it as a sub-module.
We should recheck #1821 once we move to an external xmpsdk and if the error persists maybe even report it upstream
I've thought of a way to remove class Exiv2::INIReader from the library.
https://github.com/Exiv2/exiv2/issues/1811#issuecomment-994822280
I'm going to restore the top of this issue to only focus on XMPsdk. This is a major part of Exiv2 and it's a substantial project to consider how to change the integration of XMPsdk.
I'm restoring this issue to focus on XMPsdk which is 25,000 lines of code. The code concerning INIReader is 500 lines and is discussed in #1811.
897 rmills@rmillsm1:~/gnu/github/exiv2/0.27-maintenance $ find . -name "ini*pp" | xargs wc -l
225 ./include/exiv2/ini.hpp
63 ./samples/ini-test.cpp
297 ./src/ini.cpp
585 total
898 rmills@rmillsm1:~/gnu/github/exiv2/0.27-maintenance $ find xmpsdk -name "ini*pp" | xargs wc -l
899 rmills@rmillsm1:~/gnu/github/exiv2/0.27-maintenance $ find xmpsdk -name "*pp" | xargs wc -l
965 xmpsdk/include/TXMPUtils.hpp
123 xmpsdk/include/client-glue/WXMP_Common.hpp
226 xmpsdk/include/client-glue/TXMPIterator.incl_cpp
622 xmpsdk/include/client-glue/WXMPMeta.hpp
322 xmpsdk/include/client-glue/WXMPUtils.hpp
935 xmpsdk/include/client-glue/TXMPMeta.incl_cpp
167 xmpsdk/include/client-glue/WXMPFiles.hpp
493 xmpsdk/include/client-glue/TXMPUtils.incl_cpp
83 xmpsdk/include/client-glue/WXMPIterator.hpp
89 xmpsdk/include/XMPSDK.hpp
235 xmpsdk/include/TXMPIterator.hpp
1803 xmpsdk/include/TXMPMeta.hpp
63 xmpsdk/include/XMP.incl_cpp
418 xmpsdk/src/XMPMeta.hpp
235 xmpsdk/src/MD5.cpp
1342 xmpsdk/src/XMPMeta-Serialize.cpp
188 xmpsdk/src/WXMPIterator.cpp
221 xmpsdk/src/XMPUtils.hpp
1306 xmpsdk/src/XMPMeta-Parse.cpp
507 xmpsdk/src/ExpatAdapter.cpp
534 xmpsdk/src/XMPCore_Impl.hpp
1665 xmpsdk/src/UnicodeConversions.cpp
1212 xmpsdk/src/XMPMeta-GetSet.cpp
148 xmpsdk/src/XMPIterator.hpp
129 xmpsdk/src/UnicodeInlines.incl_cpp
463 xmpsdk/src/XML_Node.cpp
1310 xmpsdk/src/WXMPMeta.cpp
626 xmpsdk/src/WXMPUtils.cpp
140 xmpsdk/src/XMLParserAdapter.hpp
1346 xmpsdk/src/XMPUtils-FileInfo.cpp
1653 xmpsdk/src/XMPMeta.cpp
1296 xmpsdk/src/ParseRDF.cpp
2157 xmpsdk/src/XMPUtils.cpp
50 xmpsdk/src/ExpatAdapter.hpp
1468 xmpsdk/src/XMPCore_Impl.cpp
121 xmpsdk/src/UnicodeConversions.hpp
736 xmpsdk/src/XMPIterator.cpp
25397 total
900 rmills@rmillsm1:~/gnu/github/exiv2/0.27-maintenance $