From 573b2cfcd277d9f65e5b7605eedffced28546937 Mon Sep 17 00:00:00 2001 From: clanmills Date: Tue, 22 Aug 2017 14:34:01 +0100 Subject: [PATCH] XMPsdk fixes. 2013 and 2016 build and (mostly) pass the test suite. --- Makefile | 3 ++- config/Makefile.in | 3 ++- config/config.mk.in | 1 + config/configure.ac | 18 +++++++++++------- config/exiv2.pc.in | 4 ++-- samples/Makefile | 16 +++------------- src/Makefile | 2 +- src/convert.cpp | 6 +++--- src/utils.hpp | 1 - 9 files changed, 25 insertions(+), 29 deletions(-) diff --git a/Makefile b/Makefile index 0e3fc235..ce9a1e9c 100644 --- a/Makefile +++ b/Makefile @@ -135,7 +135,7 @@ config: xmpsdk: config/config.mk if test "x$(ENABLE_XMP)" = "x1"; then cd xmpsdk/src && $(MAKE) $@; fi; - if test "x$(ENABLE_XMP)" = "x2016" -o "x$(ENABLE_XMP)" = "x2014" -o "x$(ENABLE_XMP)" = "x2014"; then xmpsdk/buildXMPsdk.sh $(ENABLE_XMP) $(MAKECMDGOALS); fi; + if test "x$(ENABLE_XMP)" = "x2016" -o "x$(ENABLE_XMP)" = "x2014" -o "x$(ENABLE_XMP)" = "x2013"; then xmpsdk/buildXMPsdk.sh $(ENABLE_XMP) $(MAKECMDGOALS); fi; mostlyclean clean: config/config.mk cd src && $(MAKE) $(MAKECMDGOALS) @@ -156,6 +156,7 @@ distclean: clean rm -f *~ *.bak if [ -e bin ]; then rm -rf bin ; fi if [ -e xmpsdk/Adobe ]; then rm -rf xmpsdk/Adobe ; fi + if [ -e /usr/local/include/exiv2 ]; then rm -rf /usr/local/include/exiv2 ; fi # This removes almost everything, including the configure script! maintainer-clean: distclean diff --git a/config/Makefile.in b/config/Makefile.in index 8b09e372..bf0326a2 100644 --- a/config/Makefile.in +++ b/config/Makefile.in @@ -135,7 +135,7 @@ config: xmpsdk: config/config.mk if test "x$(ENABLE_XMP)" = "x1"; then cd xmpsdk/src && $(MAKE) $@; fi; - if test "x$(ENABLE_XMP)" = "x2016" -o "x$(ENABLE_XMP)" = "x2014" -o "x$(ENABLE_XMP)" = "x2014"; then xmpsdk/buildXMPsdk.sh $(ENABLE_XMP) $(MAKECMDGOALS); fi; + if test "x$(ENABLE_XMP)" = "x2016" -o "x$(ENABLE_XMP)" = "x2014" -o "x$(ENABLE_XMP)" = "x2013"; then xmpsdk/buildXMPsdk.sh $(ENABLE_XMP) $(MAKECMDGOALS); fi; mostlyclean clean: config/config.mk cd src && $(MAKE) $(MAKECMDGOALS) @@ -156,6 +156,7 @@ distclean: clean rm -f *~ *.bak if [ -e bin ]; then rm -rf bin ; fi if [ -e xmpsdk/Adobe ]; then rm -rf xmpsdk/Adobe ; fi + if [ -e /usr/local/include/exiv2 ]; then rm -rf /usr/local/include/exiv2 ; fi # This removes almost everything, including the configure script! maintainer-clean: distclean diff --git a/config/config.mk.in b/config/config.mk.in index afea6a3f..055c7595 100644 --- a/config/config.mk.in +++ b/config/config.mk.in @@ -54,6 +54,7 @@ LIBTOOL_DEPS = $(top_srcdir)/@LIBTOOL_DEPS@ # C++ Compiler and precompiler CXX = @CXX@ GXX = @GXX@ +PREFIX = @PREFIX@ # Common compiler flags (warnings, symbols [-ggdb], optimization [-O2], etc) CXXFLAGS = @CXXFLAGS@ diff --git a/config/configure.ac b/config/configure.ac index 62179d7e..3972f4d1 100644 --- a/config/configure.ac +++ b/config/configure.ac @@ -173,6 +173,8 @@ if test "$enable_webready" = "yes"; then AC_DEFINE(ENABLE_WEBREADY) fi +echo "CPPFLAGS = $CPPFLAGS" + if test "$enable_webready" = "yes"; then # libcurl option might change flags, so we save them initially _cppflags="${CPPFLAGS}" @@ -388,22 +390,24 @@ else fi AC_ARG_WITH(adobe, - [ --with-adobe[[=OPT]] use --with-adobe for Adobe XMPsdk. OPT: 2016|2014 default/--without-adobe is xmpsdk/src], + [ --with-adobe[[=OPT]] use --with-adobe for Adobe XMPsdk. OPT: 2016|2014|2013 default/--without-adobe is xmpsdk/src], ADOBE=$withval, ADOBE=xmpsdk/src) if test "$ADOBE" == "yes"; then ADOBE=2016; fi -if test "$ADOBE" = "2016" -o "$ADOBE" = "2014" ; then +if test "$ADOBE" = "2016" -o "$ADOBE" = "2014" -o "$ADOBE" = "2013" ; then ADOBE_SDK=XMP-Toolkit-SDK-CC201607 if test "$ADOBE" == "2014" ; then ADOBE_SDK=XMP-Toolkit-SDK-CC201412; fi + if test "$ADOBE" == "2013" ; then ADOBE_SDK=XMP-Toolkit-SDK-CC201306; fi ENABLE_XMP=$ADOBE XMPSDK_CPPFLAGS="-Ixmpsdk/Adobe/$ADOBE_SDK/public/include" XMPSDK_LDFLAGS="-Lxmpsdk/Adobe/$ADOBE_SDK" case "$host_os" in *arwin*) - CPPFLAGS="${CPPFLAGS} -stdlib=libstdc++ -Wno-deprecated -fvisibility=hidden -fvisibility-inlines-hidden" - LDFLAGS="${LDFLAGS} -stdlib=libstdc++ -Wno-deprecated" - EXV_LIB_STATIC="-stdlib=libstdc++ -Wno-deprecated" + EXV_DARWIN_FLAGS="-stdlib=libstdc++ -Wno-deprecated" + CPPFLAGS="${CPPFLAGS} -fvisibility=hidden -fvisibility-inlines-hidden ${EXV_DARWIN_FLAGS} " + LDFLAGS="${LDFLAGS} ${EXV_DARWIN_FLAGS}" + AC_SUBST(EXV_DARWIN_FLAGS) ;; esac fi @@ -509,8 +513,8 @@ esac fi echo "CPPFLAGS =" "$CPPFLAGS $SSH_CPPFLAGS $CURL_CPPFLAGS $XMPSDK_CPPFLAGS" -echo "LDFLAGS =" "$LDFLAGS $SSH_LDFLAGS $CURL_LDFLAGS $EXPAT_LDFLAGS $XMPSDK_LDFLAGS" -echo "LIBS =" "$LIBS $SSH_LIBS $CURL_LIBS $EXPAT_LIBS $XMPSDK_LIBS" +echo "LDFLAGS =" "$LDFLAGS $SSH_LDFLAGS $CURL_LDFLAGS $XMPSDK_LDFLAGS" +echo "LIBS =" "$LIBS $SSH_LIBS $CURL_LIBS $XMPSDK_LIBS" echo "CXX =" "$CXX" echo "------------------------------------------------------------------" echo "" diff --git a/config/exiv2.pc.in b/config/exiv2.pc.in index e74b18b0..707b1189 100644 --- a/config/exiv2.pc.in +++ b/config/exiv2.pc.in @@ -6,6 +6,6 @@ includedir=@includedir@ Name: exiv2 Description: Image metadata library and tools Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lexiv2 @EXV_LIB_STATIC@ +Libs: -L${libdir} -lexiv2 @EXV_LIB_STATIC@ @EXV_DARWIN_FLAGS@ Libs.private: @EXPAT_LDFLAGS@ @SSH_LDFLAGS@ @CURL_LDFLAGS@ @LTLIBINTL@ @LTLIBICONV@ @LIBS@ @EXPAT_LIBS@ @SSH_LIBS@ @CURL_LIBS@ -Cflags: -I${includedir} +Cflags: -I${includedir} @EXV_DARWIN_FLAGS@ diff --git a/samples/Makefile b/samples/Makefile index e4d846a0..637ac107 100644 --- a/samples/Makefile +++ b/samples/Makefile @@ -36,8 +36,8 @@ # History: 08-Oct-07, ahu: created # # Description: -# Simple Makefile to build sample programs. Requires installed exiv2 library -# and headers. Adapted from the main Exiv2 src/Makefile. +# Makefile to build sample programs. +# Requires installed exiv2 library # # Restrictions: # Requires GNU make. @@ -46,10 +46,6 @@ # Default make target all: samples -# Include system configuration -top_srcdir = .. -include $(top_srcdir)/config/config.mk - # ****************************************************************************** # Source files @@ -120,12 +116,6 @@ endif PREFIX = /usr/local/lib LINK.cc += -rpath $(PREFIX) -L$(PREFIX) -# TODO: This should really not be here. We should use the installed headers -# to build the samples. Some errors only show up in this scenario, e.g., errors -# due to missing headers which are not installed (depending on compile-time -# settings) but may be wrongly included from other headers. -COMPILE.cc += -I$(top_srcdir)/include -I$(top_srcdir)/include/exiv2 # -std=gnu++98 - # ****************************************************************************** # Rules samples: $(BINARY) $(OTHERBIN) @@ -167,7 +157,7 @@ geotag: %: %.cpp @$(POSTDEPEND) $(LIBTOOL) --mode=link $(LINK.cc) -lexpat $@.o -o ../bin/$@ -# link applications which require utils.cpp support +# link applications which require src/utils.cpp support metacopy path-test toexv: %: %.cpp ../src/utils.o $(COMPILE.cc) -I../src -o $@.o $< @$(MAKEDEPEND) diff --git a/src/Makefile b/src/Makefile index 1b955140..96f15060 100644 --- a/src/Makefile +++ b/src/Makefile @@ -62,7 +62,7 @@ include $(top_srcdir)/config/config.mk CCHDR = exiv2.hpp \ config.h \ exv_conf.h \ - exv_msvc.h \ + xmp_exiv2.hpp \ version.hpp # Add library C++ source files to this list diff --git a/src/convert.cpp b/src/convert.cpp index 4a893d88..0665b2bb 100644 --- a/src/convert.cpp +++ b/src/convert.cpp @@ -64,10 +64,10 @@ EXIV2_RCSID("@(#) $Id$") // Adobe XMP Toolkit #ifdef EXV_HAVE_XMP_TOOLKIT # define TXMP_STRING_TYPE std::string -# if EXV_ADOBE_XMPSDK == 2016 || EXV_ADOBE_XMPSDK == 2013 -# include +# ifdef EXV_ADOBE_XMPSDK +# include # else -# include +# include # endif # include #endif // EXV_HAVE_XMP_TOOLKIT diff --git a/src/utils.hpp b/src/utils.hpp index 873cc970..b9e3c786 100644 --- a/src/utils.hpp +++ b/src/utils.hpp @@ -31,7 +31,6 @@ // ********************************************************************* // included header files -#include "futils.hpp" // + standard includes #include