From 93edcc11b3816c05e3f015dd37a1fe7d12de0aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= Date: Fri, 18 May 2018 09:55:31 +0200 Subject: [PATCH] Doc: Add documentation about how to use the external XMP SDK with conan & cmake --- WORK-IN-PROGRESS | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/WORK-IN-PROGRESS b/WORK-IN-PROGRESS index 86e06e82..bda37ea3 100644 --- a/WORK-IN-PROGRESS +++ b/WORK-IN-PROGRESS @@ -34,6 +34,8 @@ T A B L E o f C O N T E N T S 5.5 How do the MakerNotes get decoded? 5.6 How do the encoders work? +6 Using external XMP SDK via Conan + ========================================================================== 1 Building XMPsdk and Samples in Terminal with the ./Generate_XXX_mac.sh scripts @@ -811,5 +813,44 @@ Modified: 2017-09-24 I understand writeMetadata() and will document that soon. I still have to study how the TiffVisitor writes metadata. -# That's all Folks! -========================================================================== + +6 Using external XMP SDK via Conan + +Section 1 describes how to compile the newer versions of XMP SDK with a bash script. This +approach had few limitations: + + 1) We had to include sources from other projects into the Exiv2 repository: Check the folder + xmpsdk/third-party. + 2) Different scripts for compiling XMP SDK on Linux, Mac OSX and Windows. + 3) Lot of configuration/compilation issues depending on the system configuration. + +Taking into account that during the last months we have done a big effort in migrating the +manipulation of 3rd party dependencies to Conan, we have decided to do the same here. A conan recipe +has been written for XmpSdk at: + +https://github.com/piponazo/conan-xmpsdk + +And the recipe and package binaries can be found in the piponazo's bintray repository: + +https://bintray.com/piponazo/piponazo + +This conan recipe provides a custom CMake finder that will be used by our CMake code to properly +find XMP SDK in the conan cache and then be able to use the CMake variables: ${XMPSDK_LIBRARY} and +${XMPSDK_INCLUDE_DIR}. + +These are the steps you will need to follow to configure the project with the external XMP support: + + # Add the conan-piponazo remote to your conan configuration (only once) + conan remote add conan-piponazo https://api.bintray.com/conan/piponazo/piponazo + + mkdir build && cd build + + # Run conan to bring the dependencies. Note that the XMPSDK is not enabled by default and you will + # need to enable the xmp option to bring it. + conan install .. --options xmp=True + + # Configure the project with support for the external XMP version. Disable the normal XMP version + cmake -DCMAKE_BUILD_TYPE=Release -DEXIV2_ENABLE_XMP=OFF -DEXIV2_ENABLE_EXTERNAL_XMP=ON -DBUILD_SHARED_LIBS=ON .. + +Note that the usage of the newer versions of XMP is experimental and it was included in Exiv2 +because few users has requested it.