xmp_toolkit_ruby 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. checksums.yaml +7 -0
  2. data/.idea/.gitignore +8 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +88 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/AGENTS.md +72 -0
  8. data/CHANGELOG.md +45 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +287 -0
  11. data/Rakefile +25 -0
  12. data/cliff.toml +138 -0
  13. data/docker/Dockerfile +87 -0
  14. data/docker/ProductConfig.cmake.patch +11 -0
  15. data/docker/ToolchainGCC.cmake.patch +11 -0
  16. data/exe/xmp_toolkit_ruby +8 -0
  17. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/LICENSE +31 -0
  18. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/build/XMP_BuildInfo.h +17 -0
  19. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPFiles.hpp +853 -0
  20. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPIterator.hpp +234 -0
  21. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPMeta.hpp +1753 -0
  22. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/TXMPUtils.hpp +967 -0
  23. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP.hpp +98 -0
  24. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP.incl_cpp +69 -0
  25. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/IConfigurable.h +225 -0
  26. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/ISharedObject.h +71 -0
  27. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/IThreadSafe.h +76 -0
  28. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/BaseInterfaces/IVersionable.h +71 -0
  29. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IConfigurationManager.h +167 -0
  30. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IError.h +377 -0
  31. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IErrorNotifier.h +52 -0
  32. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IMemoryAllocator.h +65 -0
  33. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IObjectFactory.h +90 -0
  34. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Interfaces/IUTF8String.h +504 -0
  35. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Utilities/TWrapperFunctions.h +252 -0
  36. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/Utilities/TWrapperFunctions2.h +564 -0
  37. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonDefines.h +194 -0
  38. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonErrorCodes.h +114 -0
  39. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonFwdDeclarations.h +158 -0
  40. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/XMPCommonLatestInterfaceVersions.h +51 -0
  41. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IConfigurable.cpp +204 -0
  42. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IConfigurationManager.cpp +92 -0
  43. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IError.cpp +207 -0
  44. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IErrorNotifier.cpp +26 -0
  45. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCommon/source/IUTF8String.cpp +299 -0
  46. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IArrayNode.h +303 -0
  47. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IClientDOMParser.h +88 -0
  48. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IClientDOMSerializer.h +94 -0
  49. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ICompositeNode.h +331 -0
  50. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ICoreConfigurationManager.h +107 -0
  51. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ICoreObjectFactory.h +279 -0
  52. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IDOMImplementationRegistry.h +150 -0
  53. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IDOMParser.h +181 -0
  54. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IDOMSerializer.h +120 -0
  55. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IMetadata.h +145 -0
  56. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IMetadataConverterUtils.h +116 -0
  57. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/INameSpacePrefixMap.h +236 -0
  58. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/INode.h +582 -0
  59. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/INodeIterator.h +193 -0
  60. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IPath.h +212 -0
  61. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IPathSegment.h +225 -0
  62. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/ISimpleNode.h +150 -0
  63. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/Interfaces/IStructureNode.h +306 -0
  64. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreDefines.h +94 -0
  65. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreErrorCodes.h +116 -0
  66. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreFwdDeclarations.h +325 -0
  67. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/XMPCoreLatestInterfaceVersions.h +97 -0
  68. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IArrayNode.cpp +163 -0
  69. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IClientDOMParser.cpp +76 -0
  70. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IClientDOMSerializer.cpp +73 -0
  71. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ICompositeNode.cpp +121 -0
  72. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ICoreConfigurationManager.cpp +88 -0
  73. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ICoreObjectFactory.cpp +83 -0
  74. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IDOMImplementationRegistry.cpp +122 -0
  75. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IDOMParser.cpp +116 -0
  76. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IDOMSerializer.cpp +109 -0
  77. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IMetadata.cpp +113 -0
  78. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IMetadataConverterUtils.cpp +92 -0
  79. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/INameSpacePrefixMap.cpp +187 -0
  80. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/INode.cpp +377 -0
  81. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/INodeIterator.cpp +105 -0
  82. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IPath.cpp +157 -0
  83. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IPathSegment.cpp +146 -0
  84. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/ISimpleNode.cpp +111 -0
  85. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMPCore/source/IStructureNode.cpp +104 -0
  86. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_Const.h +1590 -0
  87. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_Environment.h +223 -0
  88. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_IO.hpp +169 -0
  89. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/XMP_Version.h +52 -0
  90. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPFiles.incl_cpp +484 -0
  91. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPIterator.incl_cpp +223 -0
  92. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPMeta.incl_cpp +917 -0
  93. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/TXMPUtils.incl_cpp +445 -0
  94. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPFiles.hpp +281 -0
  95. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPIterator.hpp +74 -0
  96. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPMeta.hpp +635 -0
  97. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMPUtils.hpp +314 -0
  98. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/include/client-glue/WXMP_Common.hpp +132 -0
  99. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPCore.so +0 -0
  100. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPCoreStatic.a +0 -0
  101. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPFiles.so +0 -0
  102. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug/libXMPFilesStatic.a +0 -0
  103. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/macintosh/universal/Debug/libXMPCoreStatic.a +0 -0
  104. data/ext/xmp_toolkit_ruby/XMP-Toolkit-SDK/public/libraries/macintosh/universal/Debug/libXMPFilesStatic.a +0 -0
  105. data/ext/xmp_toolkit_ruby/extconf.rb +101 -0
  106. data/ext/xmp_toolkit_ruby/xmp_toolkit.cpp +321 -0
  107. data/ext/xmp_toolkit_ruby/xmp_toolkit.hpp +69 -0
  108. data/ext/xmp_toolkit_ruby/xmp_toolkit_ruby.cpp +44 -0
  109. data/lib/xmp_toolkit_ruby/cli.rb +95 -0
  110. data/lib/xmp_toolkit_ruby/namespaces.rb +77 -0
  111. data/lib/xmp_toolkit_ruby/plugins/LICENSE +31 -0
  112. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/MODULE_IDENTIFIER.txt +1 -0
  113. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.resources/XMPPLUGINUIDS.txt +31 -0
  114. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/PDF_Handler.xpi +0 -0
  115. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux/libMiniPDFL.so +0 -0
  116. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/MODULE_IDENTIFIER.txt +1 -0
  117. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.resources/XMPPLUGINUIDS.txt +31 -0
  118. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/PDF_Handler.xpi +0 -0
  119. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/i80386linux/i80386linux_x64/libMiniPDFL.so +0 -0
  120. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/PDF_Handler +0 -0
  121. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/Info.plist +52 -0
  122. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MODULE_IDENTIFIER.txt +1 -0
  123. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/MiniPDFL +0 -0
  124. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Resources/English.lproj/InfoPlist.strings +0 -0
  125. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Resources/Info.plist +35 -0
  126. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/MiniPDFL +0 -0
  127. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings +0 -0
  128. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist +35 -0
  129. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources +146 -0
  130. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL +0 -0
  131. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings +0 -0
  132. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist +35 -0
  133. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources +146 -0
  134. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Resources/XMPPLUGINUIDS.txt +31 -0
  135. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/PDF_Handler +0 -0
  136. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/Info.plist +52 -0
  137. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MODULE_IDENTIFIER.txt +1 -0
  138. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/MiniPDFL +0 -0
  139. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources/English.lproj/InfoPlist.strings +0 -0
  140. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Resources/Info.plist +35 -0
  141. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/MiniPDFL +0 -0
  142. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings +0 -0
  143. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist +35 -0
  144. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources +146 -0
  145. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL +0 -0
  146. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings +0 -0
  147. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist +35 -0
  148. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources +146 -0
  149. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/Resources/XMPPLUGINUIDS.txt +31 -0
  150. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/A/_CodeSignature/CodeResources +216 -0
  151. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/PDF_Handler +0 -0
  152. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/Info.plist +52 -0
  153. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MODULE_IDENTIFIER.txt +1 -0
  154. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/MiniPDFL +0 -0
  155. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Resources/English.lproj/InfoPlist.strings +0 -0
  156. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Resources/Info.plist +35 -0
  157. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/MiniPDFL +0 -0
  158. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/Resources/English.lproj/InfoPlist.strings +0 -0
  159. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/Resources/Info.plist +35 -0
  160. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/A/_CodeSignature/CodeResources +146 -0
  161. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/MiniPDFL +0 -0
  162. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings +0 -0
  163. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/Resources/Info.plist +35 -0
  164. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/MiniPDFL.framework/Versions/Current/_CodeSignature/CodeResources +146 -0
  165. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/Resources/XMPPLUGINUIDS.txt +31 -0
  166. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/macintosh/universal/PDF_Handler.xpi/Versions/Current/_CodeSignature/CodeResources +216 -0
  167. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/linux/PDF_Handler.exp +11 -0
  168. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/mac/PDF_Handler.exp +2 -0
  169. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/mac/PDF_Handler.plist +28 -0
  170. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/mac/PDF_HandlerPList.h +12 -0
  171. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/CopyPDFL.bat +14 -0
  172. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/PDF_Handler-32.rc +8 -0
  173. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/PDF_Handler-64.rc +8 -0
  174. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/resource/win/PDF_Handler.def +9 -0
  175. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/windows/windows_x64/MiniPDFL.dll +0 -0
  176. data/lib/xmp_toolkit_ruby/plugins/PDF_Handler/windows/windows_x64/PDF_Handler.xpi +0 -0
  177. data/lib/xmp_toolkit_ruby/version.rb +5 -0
  178. data/lib/xmp_toolkit_ruby/xmp_file_format.rb +87 -0
  179. data/lib/xmp_toolkit_ruby/xmp_file_handler_flags.rb +49 -0
  180. data/lib/xmp_toolkit_ruby.rb +237 -0
  181. data/sig/xmp_toolkit_ruby.rbs +4 -0
  182. data/tasks/changelog.rake +29 -0
  183. metadata +357 -0
@@ -0,0 +1,314 @@
1
+ #if ! __WXMPUtils_hpp__
2
+ #define __WXMPUtils_hpp__ 1
3
+
4
+ // =================================================================================================
5
+ // Copyright 2002 Adobe
6
+ // All Rights Reserved.
7
+ //
8
+ // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
9
+ // of the Adobe license agreement accompanying it.
10
+ // =================================================================================================
11
+
12
+ #include "client-glue/WXMP_Common.hpp"
13
+ #if __cplusplus
14
+ extern "C" {
15
+ #endif
16
+
17
+ // =================================================================================================
18
+
19
+ #define zXMPUtils_ComposeArrayItemPath_1(schemaNS,arrayName,itemIndex,itemPath,SetClientString) \
20
+ WXMPUtils_ComposeArrayItemPath_1 ( schemaNS, arrayName, itemIndex, itemPath, SetClientString, &wResult );
21
+
22
+ #define zXMPUtils_ComposeStructFieldPath_1(schemaNS,structName,fieldNS,fieldName,fieldPath,SetClientString) \
23
+ WXMPUtils_ComposeStructFieldPath_1 ( schemaNS, structName, fieldNS, fieldName, fieldPath, SetClientString, &wResult );
24
+
25
+ #define zXMPUtils_ComposeQualifierPath_1(schemaNS,propName,qualNS,qualName,qualPath,SetClientString) \
26
+ WXMPUtils_ComposeQualifierPath_1 ( schemaNS, propName, qualNS, qualName, qualPath, SetClientString, &wResult );
27
+
28
+ #define zXMPUtils_ComposeLangSelector_1(schemaNS,arrayName,langName,selPath,SetClientString) \
29
+ WXMPUtils_ComposeLangSelector_1 ( schemaNS, arrayName, langName, selPath, SetClientString, &wResult );
30
+
31
+ #define zXMPUtils_ComposeFieldSelector_1(schemaNS,arrayName,fieldNS,fieldName,fieldValue,selPath,SetClientString) \
32
+ WXMPUtils_ComposeFieldSelector_1 ( schemaNS, arrayName, fieldNS, fieldName, fieldValue, selPath, SetClientString, &wResult );
33
+
34
+ #define zXMPUtils_ConvertFromBool_1(binValue,strValue,SetClientString) \
35
+ WXMPUtils_ConvertFromBool_1 ( binValue, strValue, SetClientString, &wResult );
36
+
37
+ #define zXMPUtils_ConvertFromInt_1(binValue,format,strValue,SetClientString) \
38
+ WXMPUtils_ConvertFromInt_1 ( binValue, format, strValue, SetClientString, &wResult );
39
+
40
+ #define zXMPUtils_ConvertFromInt64_1(binValue,format,strValue,SetClientString) \
41
+ WXMPUtils_ConvertFromInt64_1 ( binValue, format, strValue, SetClientString, &wResult );
42
+
43
+ #define zXMPUtils_ConvertFromFloat_1(binValue,format,strValue,SetClientString) \
44
+ WXMPUtils_ConvertFromFloat_1 ( binValue, format, strValue, SetClientString, &wResult );
45
+
46
+ #define zXMPUtils_ConvertFromDate_1(binValue,strValue,SetClientString) \
47
+ WXMPUtils_ConvertFromDate_1 ( binValue, strValue, SetClientString, &wResult );
48
+
49
+ #define zXMPUtils_ConvertToBool_1(strValue) \
50
+ WXMPUtils_ConvertToBool_1 ( strValue, &wResult );
51
+
52
+ #define zXMPUtils_ConvertToInt_1(strValue) \
53
+ WXMPUtils_ConvertToInt_1 ( strValue, &wResult );
54
+
55
+ #define zXMPUtils_ConvertToInt64_1(strValue) \
56
+ WXMPUtils_ConvertToInt64_1 ( strValue, &wResult );
57
+
58
+ #define zXMPUtils_ConvertToFloat_1(strValue) \
59
+ WXMPUtils_ConvertToFloat_1 ( strValue, &wResult );
60
+
61
+ #define zXMPUtils_ConvertToDate_1(strValue,binValue) \
62
+ WXMPUtils_ConvertToDate_1 ( strValue, binValue, &wResult );
63
+
64
+ #define zXMPUtils_CurrentDateTime_1(time) \
65
+ WXMPUtils_CurrentDateTime_1 ( time, &wResult );
66
+
67
+ #define zXMPUtils_SetTimeZone_1(time) \
68
+ WXMPUtils_SetTimeZone_1 ( time, &wResult );
69
+
70
+ #define zXMPUtils_ConvertToUTCTime_1(time) \
71
+ WXMPUtils_ConvertToUTCTime_1 ( time, &wResult );
72
+
73
+ #define zXMPUtils_ConvertToLocalTime_1(time) \
74
+ WXMPUtils_ConvertToLocalTime_1 ( time, &wResult );
75
+
76
+ #define zXMPUtils_CompareDateTime_1(left,right) \
77
+ WXMPUtils_CompareDateTime_1 ( left, right, &wResult );
78
+
79
+ #define zXMPUtils_EncodeToBase64_1(rawStr,rawLen,encodedStr,SetClientString) \
80
+ WXMPUtils_EncodeToBase64_1 ( rawStr, rawLen, encodedStr, SetClientString, &wResult );
81
+
82
+ #define zXMPUtils_DecodeFromBase64_1(encodedStr,encodedLen,rawStr,SetClientString) \
83
+ WXMPUtils_DecodeFromBase64_1 ( encodedStr, encodedLen, rawStr, SetClientString, &wResult );
84
+
85
+ #define zXMPUtils_PackageForJPEG_1(xmpObj,stdStr,extStr,digestStr,SetClientString) \
86
+ WXMPUtils_PackageForJPEG_1 ( xmpObj, stdStr, extStr, digestStr, SetClientString, &wResult );
87
+
88
+ #define zXMPUtils_MergeFromJPEG_1(fullXMP,extendedXMP) \
89
+ WXMPUtils_MergeFromJPEG_1 ( fullXMP, extendedXMP, &wResult );
90
+
91
+ #define zXMPUtils_CatenateArrayItems_1(xmpObj,schemaNS,arrayName,separator,quotes,options,catedStr,SetClientString) \
92
+ WXMPUtils_CatenateArrayItems_1 ( xmpObj, schemaNS, arrayName, separator, quotes, options, catedStr, SetClientString, &wResult );
93
+
94
+ #define zXMPUtils_SeparateArrayItems_1(xmpObj,schemaNS,arrayName,options,catedStr) \
95
+ WXMPUtils_SeparateArrayItems_1 ( xmpObj, schemaNS, arrayName, options, catedStr, &wResult );
96
+
97
+ #define zXMPUtils_ApplyTemplate_1(workingXMP,templateXMP,actions) \
98
+ WXMPUtils_ApplyTemplate_1 ( workingXMP, templateXMP, actions, &wResult );
99
+
100
+ #define zXMPUtils_RemoveProperties_1(xmpObj,schemaNS,propName,options) \
101
+ WXMPUtils_RemoveProperties_1 ( xmpObj, schemaNS, propName, options, &wResult );
102
+
103
+ #define zXMPUtils_DuplicateSubtree_1(source,dest,sourceNS,sourceRoot,destNS,destRoot,options) \
104
+ WXMPUtils_DuplicateSubtree_1 ( source, dest, sourceNS, sourceRoot, destNS, destRoot, options, &wResult );
105
+
106
+ // =================================================================================================
107
+
108
+ extern void
109
+ XMP_PUBLIC WXMPUtils_ComposeArrayItemPath_1 ( XMP_StringPtr schemaNS,
110
+ XMP_StringPtr arrayName,
111
+ XMP_Index itemIndex,
112
+ void * itemPath,
113
+ SetClientStringProc SetClientString,
114
+ WXMP_Result * wResult );
115
+
116
+ extern void
117
+ XMP_PUBLIC WXMPUtils_ComposeStructFieldPath_1 ( XMP_StringPtr schemaNS,
118
+ XMP_StringPtr structName,
119
+ XMP_StringPtr fieldNS,
120
+ XMP_StringPtr fieldName,
121
+ void * fieldPath,
122
+ SetClientStringProc SetClientString,
123
+ WXMP_Result * wResult );
124
+
125
+ extern void
126
+ XMP_PUBLIC WXMPUtils_ComposeQualifierPath_1 ( XMP_StringPtr schemaNS,
127
+ XMP_StringPtr propName,
128
+ XMP_StringPtr qualNS,
129
+ XMP_StringPtr qualName,
130
+ void * qualPath,
131
+ SetClientStringProc SetClientString,
132
+ WXMP_Result * wResult );
133
+
134
+ extern void
135
+ XMP_PUBLIC WXMPUtils_ComposeLangSelector_1 ( XMP_StringPtr schemaNS,
136
+ XMP_StringPtr arrayName,
137
+ XMP_StringPtr langName,
138
+ void * selPath,
139
+ SetClientStringProc SetClientString,
140
+ WXMP_Result * wResult );
141
+
142
+ extern void
143
+ XMP_PUBLIC WXMPUtils_ComposeFieldSelector_1 ( XMP_StringPtr schemaNS,
144
+ XMP_StringPtr arrayName,
145
+ XMP_StringPtr fieldNS,
146
+ XMP_StringPtr fieldName,
147
+ XMP_StringPtr fieldValue,
148
+ void * selPath,
149
+ SetClientStringProc SetClientString,
150
+ WXMP_Result * wResult );
151
+
152
+ // -------------------------------------------------------------------------------------------------
153
+
154
+ extern void
155
+ XMP_PUBLIC WXMPUtils_ConvertFromBool_1 ( XMP_Bool binValue,
156
+ void * strValue,
157
+ SetClientStringProc SetClientString,
158
+ WXMP_Result * wResult );
159
+
160
+ extern void
161
+ XMP_PUBLIC WXMPUtils_ConvertFromInt_1 ( XMP_Int32 binValue,
162
+ XMP_StringPtr format,
163
+ void * strValue,
164
+ SetClientStringProc SetClientString,
165
+ WXMP_Result * wResult );
166
+
167
+ extern void
168
+ XMP_PUBLIC WXMPUtils_ConvertFromInt64_1 ( XMP_Int64 binValue,
169
+ XMP_StringPtr format,
170
+ void * strValue,
171
+ SetClientStringProc SetClientString,
172
+ WXMP_Result * wResult );
173
+
174
+ extern void
175
+ XMP_PUBLIC WXMPUtils_ConvertFromFloat_1 ( double binValue,
176
+ XMP_StringPtr format,
177
+ void * strValue,
178
+ SetClientStringProc SetClientString,
179
+ WXMP_Result * wResult );
180
+
181
+ extern void
182
+ XMP_PUBLIC WXMPUtils_ConvertFromDate_1 ( const XMP_DateTime & binValue,
183
+ void * strValue,
184
+ SetClientStringProc SetClientString,
185
+ WXMP_Result * wResult );
186
+
187
+ // -------------------------------------------------------------------------------------------------
188
+
189
+ extern void
190
+ XMP_PUBLIC WXMPUtils_ConvertToBool_1 ( XMP_StringPtr strValue,
191
+ WXMP_Result * wResult );
192
+
193
+ extern void
194
+ XMP_PUBLIC WXMPUtils_ConvertToInt_1 ( XMP_StringPtr strValue,
195
+ WXMP_Result * wResult );
196
+
197
+ extern void
198
+ XMP_PUBLIC WXMPUtils_ConvertToInt64_1 ( XMP_StringPtr strValue,
199
+ WXMP_Result * wResult );
200
+
201
+ extern void
202
+ XMP_PUBLIC WXMPUtils_ConvertToFloat_1 ( XMP_StringPtr strValue,
203
+ WXMP_Result * wResult );
204
+
205
+ extern void
206
+ XMP_PUBLIC WXMPUtils_ConvertToDate_1 ( XMP_StringPtr strValue,
207
+ XMP_DateTime * binValue,
208
+ WXMP_Result * wResult );
209
+
210
+ // -------------------------------------------------------------------------------------------------
211
+
212
+ extern void
213
+ XMP_PUBLIC WXMPUtils_CurrentDateTime_1 ( XMP_DateTime * time,
214
+ WXMP_Result * wResult );
215
+
216
+ extern void
217
+ XMP_PUBLIC WXMPUtils_SetTimeZone_1 ( XMP_DateTime * time,
218
+ WXMP_Result * wResult );
219
+
220
+ extern void
221
+ XMP_PUBLIC WXMPUtils_ConvertToUTCTime_1 ( XMP_DateTime * time,
222
+ WXMP_Result * wResult );
223
+
224
+ extern void
225
+ XMP_PUBLIC WXMPUtils_ConvertToLocalTime_1 ( XMP_DateTime * time,
226
+ WXMP_Result * wResult );
227
+
228
+ extern void
229
+ XMP_PUBLIC WXMPUtils_CompareDateTime_1 ( const XMP_DateTime & left,
230
+ const XMP_DateTime & right,
231
+ WXMP_Result * wResult );
232
+
233
+ // -------------------------------------------------------------------------------------------------
234
+
235
+ extern void
236
+ XMP_PUBLIC WXMPUtils_EncodeToBase64_1 ( XMP_StringPtr rawStr,
237
+ XMP_StringLen rawLen,
238
+ void * encodedStr,
239
+ SetClientStringProc SetClientString,
240
+ WXMP_Result * wResult );
241
+
242
+ extern void
243
+ XMP_PUBLIC WXMPUtils_DecodeFromBase64_1 ( XMP_StringPtr encodedStr,
244
+ XMP_StringLen encodedLen,
245
+ void * rawStr,
246
+ SetClientStringProc SetClientString,
247
+ WXMP_Result * wResult );
248
+
249
+ // -------------------------------------------------------------------------------------------------
250
+
251
+ extern void
252
+ XMP_PUBLIC WXMPUtils_PackageForJPEG_1 ( XMPMetaRef xmpObj,
253
+ void * stdStr,
254
+ void * extStr,
255
+ void * digestStr,
256
+ SetClientStringProc SetClientString,
257
+ WXMP_Result * wResult );
258
+
259
+ extern void
260
+ XMP_PUBLIC WXMPUtils_MergeFromJPEG_1 ( XMPMetaRef fullXMP,
261
+ XMPMetaRef extendedXMP,
262
+ WXMP_Result * wResult );
263
+
264
+ // -------------------------------------------------------------------------------------------------
265
+
266
+ extern void
267
+ XMP_PUBLIC WXMPUtils_CatenateArrayItems_1 ( XMPMetaRef xmpObj,
268
+ XMP_StringPtr schemaNS,
269
+ XMP_StringPtr arrayName,
270
+ XMP_StringPtr separator,
271
+ XMP_StringPtr quotes,
272
+ XMP_OptionBits options,
273
+ void * catedStr,
274
+ SetClientStringProc SetClientString,
275
+ WXMP_Result * wResult );
276
+
277
+ extern void
278
+ XMP_PUBLIC WXMPUtils_SeparateArrayItems_1 ( XMPMetaRef xmpObj,
279
+ XMP_StringPtr schemaNS,
280
+ XMP_StringPtr arrayName,
281
+ XMP_OptionBits options,
282
+ XMP_StringPtr catedStr,
283
+ WXMP_Result * wResult );
284
+
285
+ extern void
286
+ XMP_PUBLIC WXMPUtils_ApplyTemplate_1 ( XMPMetaRef workingXMP,
287
+ XMPMetaRef templateXMP,
288
+ XMP_OptionBits options,
289
+ WXMP_Result * wResult );
290
+
291
+ extern void
292
+ XMP_PUBLIC WXMPUtils_RemoveProperties_1 ( XMPMetaRef xmpObj,
293
+ XMP_StringPtr schemaNS,
294
+ XMP_StringPtr propName,
295
+ XMP_OptionBits options,
296
+ WXMP_Result * wResult );
297
+
298
+ extern void
299
+ XMP_PUBLIC WXMPUtils_DuplicateSubtree_1 ( XMPMetaRef source,
300
+ XMPMetaRef dest,
301
+ XMP_StringPtr sourceNS,
302
+ XMP_StringPtr sourceRoot,
303
+ XMP_StringPtr destNS,
304
+ XMP_StringPtr destRoot,
305
+ XMP_OptionBits options,
306
+ WXMP_Result * wResult );
307
+
308
+ // =================================================================================================
309
+
310
+ #if __cplusplus
311
+ } /* extern "C" */
312
+ #endif
313
+
314
+ #endif // __WXMPUtils_hpp__
@@ -0,0 +1,132 @@
1
+ #if ! __WXMP_Common_hpp__
2
+ #define __WXMP_Common_hpp__ 1
3
+
4
+ // =================================================================================================
5
+ // Copyright 2002 Adobe
6
+ // All Rights Reserved.
7
+ //
8
+ // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
9
+ // of the Adobe license agreement accompanying it.
10
+ // =================================================================================================
11
+
12
+ #ifndef XMP_Inline
13
+ #if TXMP_EXPAND_INLINE
14
+ #define XMP_Inline inline
15
+ #else
16
+ #define XMP_Inline /* not inline */
17
+ #endif
18
+ #endif
19
+
20
+ #define XMP_CTorDTorIntro(Class) template <class tStringObj> XMP_Inline Class<tStringObj>
21
+ #define XMP_MethodIntro(Class,ResultType) template <class tStringObj> XMP_Inline ResultType Class<tStringObj>
22
+
23
+ typedef void (* SetClientStringProc) ( void * clientPtr, XMP_StringPtr valuePtr, XMP_StringLen valueLen );
24
+ typedef void (* SetClientStringVectorProc) ( void * clientPtr, XMP_StringPtr * arrayPtr, XMP_Uns32 stringCount );
25
+
26
+ struct WXMP_Result {
27
+ XMP_StringPtr errMessage;
28
+ void * ptrResult;
29
+ double floatResult;
30
+ XMP_Uns64 int64Result;
31
+ XMP_Uns32 int32Result;
32
+ WXMP_Result() : errMessage(0),ptrResult(NULL),floatResult(0),int64Result(0),int32Result(0){};
33
+ };
34
+
35
+ #if __cplusplus
36
+ extern "C" {
37
+ #endif
38
+
39
+ #define PropagateException(res) \
40
+ if ( res.errMessage != 0 ) throw XMP_Error ( res.int32Result, res.errMessage );
41
+
42
+ #ifndef XMP_TraceClientCalls
43
+ #define XMP_TraceClientCalls 0
44
+ #define XMP_TraceClientCallsToFile 0
45
+ #endif
46
+
47
+ #if ! XMP_TraceClientCalls
48
+ #define InvokeCheck(WCallProto) \
49
+ WXMP_Result wResult; \
50
+ WCallProto; \
51
+ PropagateException ( wResult )
52
+ #else
53
+ extern FILE * xmpClientLog;
54
+ #define InvokeCheck(WCallProto) \
55
+ WXMP_Result wResult; \
56
+ fprintf ( xmpClientLog, "WXMP calling: %s\n", #WCallProto ); fflush ( xmpClientLog ); \
57
+ WCallProto; \
58
+ if ( wResult.errMessage == 0 ) { \
59
+ fprintf ( xmpClientLog, "WXMP back, no error\n" ); fflush ( xmpClientLog ); \
60
+ } else { \
61
+ fprintf ( xmpClientLog, "WXMP back, error: %s\n", wResult.errMessage ); fflush ( xmpClientLog ); \
62
+ } \
63
+ PropagateException ( wResult )
64
+ #endif
65
+
66
+ // =================================================================================================
67
+
68
+ #define WrapNoCheckVoid(WCallProto) \
69
+ WCallProto;
70
+
71
+ #define WrapCheckVoid(WCallProto) \
72
+ InvokeCheck(WCallProto);
73
+
74
+ #define WrapCheckMetaRef(result,WCallProto) \
75
+ InvokeCheck(WCallProto); \
76
+ XMPMetaRef result = XMPMetaRef(wResult.ptrResult)
77
+
78
+ #define WrapCheckIterRef(result,WCallProto) \
79
+ InvokeCheck(WCallProto); \
80
+ XMPIteratorRef result = XMPIteratorRef(wResult.ptrResult)
81
+
82
+ #define WrapCheckDocOpsRef(result,WCallProto) \
83
+ InvokeCheck(WCallProto); \
84
+ XMPDocOpsRef result = XMPDocOpsRef(wResult.ptrResult)
85
+
86
+ #define WrapCheckNewMetadata(result,WCallProto) \
87
+ InvokeCheck(WCallProto); \
88
+ void * result = wResult.ptrResult
89
+
90
+ #define WrapCheckBool(result,WCallProto) \
91
+ InvokeCheck(WCallProto); \
92
+ bool result = bool(wResult.int32Result)
93
+
94
+ #define WrapCheckTriState(result,WCallProto) \
95
+ InvokeCheck(WCallProto); \
96
+ XMP_TriState result = XMP_TriState(wResult.int32Result)
97
+
98
+ #define WrapCheckOptions(result,WCallProto) \
99
+ InvokeCheck(WCallProto); \
100
+ XMP_OptionBits result = XMP_OptionBits(wResult.int32Result)
101
+
102
+ #define WrapCheckStatus(result,WCallProto) \
103
+ InvokeCheck(WCallProto); \
104
+ XMP_Status result = XMP_Status(wResult.int32Result)
105
+
106
+ #define WrapCheckIndex(result,WCallProto) \
107
+ InvokeCheck(WCallProto); \
108
+ XMP_Index result = XMP_Index(wResult.int32Result)
109
+
110
+ #define WrapCheckInt32(result,WCallProto) \
111
+ InvokeCheck(WCallProto); \
112
+ XMP_Int32 result = wResult.int32Result
113
+
114
+ #define WrapCheckInt64(result,WCallProto) \
115
+ InvokeCheck(WCallProto); \
116
+ XMP_Int64 result = wResult.int64Result
117
+
118
+ #define WrapCheckFloat(result,WCallProto) \
119
+ InvokeCheck(WCallProto); \
120
+ double result = wResult.floatResult
121
+
122
+ #define WrapCheckFormat(result,WCallProto) \
123
+ InvokeCheck(WCallProto); \
124
+ XMP_FileFormat result = wResult.int32Result
125
+
126
+ // =================================================================================================
127
+
128
+ #if __cplusplus
129
+ } // extern "C"
130
+ #endif
131
+
132
+ #endif // __WXMP_Common_hpp__
@@ -0,0 +1,101 @@
1
+ # frozen_string_literal: true
2
+
3
+ # extconf.rb
4
+ require "mkmf"
5
+
6
+ # Makes all symbols private by default to avoid unintended conflict
7
+ # with other gems. To explicitly export symbols you can use RUBY_FUNC_EXPORTED
8
+ # selectively, or entirely remove this flag.
9
+ append_cflags("-fvisibility=hidden")
10
+
11
+ XML_TOOLKIT_RUBY_HELP_MESSAGE = <<~HELP.freeze
12
+ It's recommended to use the compile Adobe XMP-Toolkit-SDK https://github.com/adobe/XMP-Toolkit-SDK/tree/main first#{" "}
13
+
14
+ USAGE: ruby #{$PROGRAM_NAME} [options]
15
+
16
+ Options:
17
+ --help, -h Show this help message
18
+
19
+ --with-xmp-dir=DIR
20
+ Look for headers and libraries in DIRECTORY form the Adobe XMP-Toolkit-SDK.
21
+
22
+ --with-xmp-lib=DIRECTORY
23
+ Look for libraries in DIRECTORY.
24
+
25
+ --with-xmp-include=DIRECTORY
26
+ Look for headers in DIRECTORY.
27
+ HELP
28
+
29
+ def do_help
30
+ print(XML_TOOLKIT_RUBY_HELP_MESSAGE)
31
+ exit!(0)
32
+ end
33
+
34
+ do_help if arg_config("--help")
35
+
36
+ # Name of the extension (“xmp_toolkit_ruby” → xmp_toolkit_ruby.so/.bundle, etc.)
37
+ extension_name = "xmp_toolkit_ruby/xmp_toolkit_ruby"
38
+
39
+ # If you have any headers in a custom directory, you can do:
40
+ # dir_config('xmp_toolkit_ruby', '/usr/local/include/…', '/usr/local/lib/…')
41
+
42
+ # Since we’re compiling C++ code, tell mkmf to use the C++ compiler:
43
+ # (On some platforms you might need to adjust this—sometimes mkmf picks C by default.)
44
+ # $CXXFLAGS << ' -std=c++11 '
45
+
46
+ if with_config("xmp-dir")
47
+ xmp_include_dir, xmp_lib_dir = dir_config('xmp-dir')
48
+
49
+ # Add the custom directories to search paths
50
+ $INCFLAGS << " -I#{xmp_include_dir}"
51
+ $INCFLAGS << " -I#{xmp_include_dir}/client-glue"
52
+
53
+ xmp_lib_path = xmp_lib_dir
54
+ else
55
+ $INCFLAGS << " -I$(srcdir)/XMP-Toolkit-SDK/public/include"
56
+ $INCFLAGS << " -I$(srcdir)/XMP-Toolkit-SDK/public/include/client-glue"
57
+ $INCFLAGS << " -I$(srcdir)/XMP-Toolkit-SDK/"
58
+
59
+ if (RbConfig::CONFIG["host_os"] =~ /darwin/) && RbConfig::CONFIG["host_cpu"] !~ /arm64/
60
+ xmp_lib_path = "$(srcdir)/XMP-Toolkit-SDK/public/libraries/macintosh/universal/Debug"
61
+ elsif RbConfig::CONFIG["host_os"] =~ /linux/ && RbConfig::CONFIG["host_cpu"] =~ /x86_64|amd64/
62
+ xmp_lib_path = "$(srcdir)/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug"
63
+ else
64
+ abort("ERROR: libXMPCoreStatic and libXMPFilesStatic is required!")
65
+ end
66
+ end
67
+ $CXXFLAGS << " -std=c++17"
68
+
69
+ if RbConfig::CONFIG["host_os"] =~ /darwin/
70
+ $LDFLAGS << " -Wl,-search_paths_first -Wl,-headerpad_max_install_names -Wl,-multiply_defined,suppress"
71
+ $LDFLAGS << " -L#{xmp_lib_path} -lXMPCoreStatic -lXMPFilesStatic"
72
+ $LDFLAGS << " -Wl,-undefined,dynamic_lookup"
73
+ elsif RbConfig::CONFIG["host_os"] =~ /linux/ && RbConfig::CONFIG["host_cpu"] =~ /x86_64|amd64/
74
+ xmp_lib_path = "$(srcdir)/XMP-Toolkit-SDK/public/libraries/i80386linux_x64/debug"
75
+
76
+ $LDFLAGS << " -L#{xmp_lib_path} -lXMPCoreStatic -lXMPFilesStatic"
77
+ end
78
+
79
+ # Define XMP environment based on host OS
80
+ case RbConfig::CONFIG["host_os"]
81
+ when /mac|darwin/
82
+ $defs << "-DMAC_ENV=1"
83
+ when /linux/
84
+ $defs << "-DUNIX_ENV=1"
85
+ when /mswin|mingw|cygwin/
86
+ $defs << "-DWIN_ENV=1"
87
+ else
88
+ # You might want to raise an error or default to UNIX_ENV
89
+ # For now, let's default to UNIX_ENV if unsure, or you can make it an error
90
+ warn "Unsupported OS for XMP environment: #{RbConfig::CONFIG["host_os"]}. Defaulting to UNIX_ENV."
91
+ $defs << "-DUNIX_ENV=1"
92
+ end
93
+
94
+ $defs << "-DXMP_COMPONENT_INT_NAMESPACE=AdobeXMPCore_Int"
95
+ $defs << "-DXMP_StaticBuild=1"
96
+ $defs << "-DXMP_COMPONENTS_VERSION=0x60000000"
97
+ $defs << "-DXMP_PUBLIC_APIS=1"
98
+ $defs << "-DBUILDING_XMPCOMMON=1"
99
+
100
+ # Create the Makefile
101
+ create_makefile(extension_name)