Improved, simplified convenience library and moved README and license files around.

This commit is contained in:
Andreas Huggel 2007-10-08 14:15:02 +00:00
parent 89182ad01b
commit 96523122b3
8 changed files with 68 additions and 145 deletions

View File

@ -64,17 +64,20 @@ uninstall: config/config.mk
cd src && $(MAKE) $(MAKECMDGOALS)
cd po && $(MAKE) $(MAKECMDGOALS)
doc: config/config.mk
doc: config/config.mk taglist
cd doc && $(MAKE) $(MAKECMDGOALS)
samples: config/config.mk
cd samples && $(MAKE) $(MAKECMDGOALS)
taglist: config/config.mk
cd samples && $(MAKE) $@
config:
cd config && $(MAKE) -f config.make $(MAKECMDGOALS)
xmpsdk: config/config.mk
if test "x$(ENABLE_XMP)" = "x1"; then cd xmpsdk/src && $(MAKE) $(MAKECMDGOALS); fi;
if test "x$(ENABLE_XMP)" = "x1"; then cd xmpsdk/src && $(MAKE) $@; fi;
mostlyclean clean: config/config.mk
cd src && $(MAKE) $(MAKECMDGOALS)

View File

@ -1,40 +1,61 @@
XMP support
***********
XMP support is controlled with the --enable-xmp and
--disable-xmp options of the configure script. Building Exiv2
with XMP support requires the Expat XML parser library, which
is widely available. The --with-expat configure option can
be used if it is installed in a non-standard directory.
XMP support is controlled with the --enable-xmp and --disable-xmp
options to the configure script. Building Exiv2 with XMP support
requires the Expat XML parser library (http://expat.sourceforge.net/).
The --with-expat configure option can be used if it is installed in a
non-standard directory.
Top-level Exiv2 classes to access XMP metadata are XmpData,
Xmpdatum and XmpKey. They work similar to the corresponding
Exif and IPTC classes. The property-repository is XmpProperties.
In addition to the expected new members, class Image also
has an interface to access the raw XMP packet.
For API documentation of XMP classes and samples, build or install the
documentation and go to doc/html/getting-started.html
All XMP value types are supported: Simple types, structures,
arrays, property qualifiers and language alternatives.
XMP Toolkit
===========
XMP properties are accessed through keys of the form
"Xmp.<Prefix>.<PropertyPath>", where <Prefix> is the preferred
(or rather, registered) prefix for a schema namespace and
<PropertyPath> is the path of the XMP node. In its most basic
form, to address simple properties, <PropertyPath> is the name
of the property. In general, <PropertyPath> can be used to
address any XMP node, including array items, structure fields
qualifiers and deeply nested properties.
Exiv2 uses the XMPCore component of the Adobe XMP Toolkit (XMP SDK) to
parse and serialize XMP packets. Temporarily, it is integrated and
distributed with Exiv2. The xmpsdk/ directory of the Exiv2 distribution
contains the XMP SDK source code. The final solution will eventually
use an external XMP Toolkit.
Any properties in known namespaces are supported and additional
namespaces can be registered.
Building the XMP Toolkit is transparent. Following the installation
steps described in the main README file will ensure that the XMP
Toolkit is compiled if necessary. It is only needed if XMP support is
enabled. Building the XMP Toolkit results in a "convenience library"
in xmpsdk/src/. This library is only used to link the Exiv2 library
with.
The specialized Exiv2 values XmpArrayValue and LangAltValue are
provided to simplify the use of XMP properties.
If you experience problems building this library, please email to the
Exiv2 support forum for help, see http://www.exiv2.org/support.html
and not to Adobe directly.
See xmpsample.cpp for examples of how to set various types of
XMP properties.
Note: Unlike Exif and IPTC tags, XMP properties do not have
a tag number.
Source
======
Todo: Conversion between XMP and Exif/IPTC metadata.
XMP Toolkit 4.1.1 (xmp_v411_sdk.zip) from
http://www.adobe.com/devnet/xmp/sdk/eula.html
The following files were copied from the original XMP SDK
distribution:
public/include/* -> xmpsdk/include
source/common/* -> xmpsdk/src
source/XMPCore/* -> xmpsdk/src
build/XMP_BuildInfo.h -> xmpsdk/src
third-party/MD5/* -> xmpsdk/src
Minor changes were applied to the original XMP SDK, see the SVN for
details:
http://dev.robotbattle.com/~cvsuser/cgi-bin/ns_viewcvs.cgi/exiv2/trunk/xmpsdk/
License
=======
Copyright (c) 1999 - 2007, Adobe Systems Incorporated
Copyright (c) 1991-2, RSA Data Security, Inc.
See the file doc/COPYING-XMPSDK for the XMP Toolkit license agreements.

View File

@ -64,17 +64,20 @@ uninstall: config/config.mk
cd src && $(MAKE) $(MAKECMDGOALS)
cd po && $(MAKE) $(MAKECMDGOALS)
doc: config/config.mk
doc: config/config.mk taglist
cd doc && $(MAKE) $(MAKECMDGOALS)
samples: config/config.mk
cd samples && $(MAKE) $(MAKECMDGOALS)
taglist: config/config.mk
cd samples && $(MAKE) $@
config:
cd config && $(MAKE) -f config.make $(MAKECMDGOALS)
xmpsdk: config/config.mk
if test "x$(ENABLE_XMP)" = "x1"; then cd xmpsdk/src && $(MAKE) $(MAKECMDGOALS); fi;
if test "x$(ENABLE_XMP)" = "x1"; then cd xmpsdk/src && $(MAKE) $@; fi;
mostlyclean clean: config/config.mk
cd src && $(MAKE) $(MAKECMDGOALS)

View File

@ -95,7 +95,7 @@ ifdef ENABLE_XMP
XMPSDK_LIBRARY = xmpsdk
XMPSDK_DIR = $(top_srcdir)/xmpsdk
XMPSDK_CPPFLAGS = -DUNIX_ENV -I$(XMPSDK_DIR)/include
XMPSDK_LDFLAGS = -L$(XMPSDK_DIR)/lib
XMPSDK_LDFLAGS = -L$(XMPSDK_DIR)/src
XMPSDK_LIBS = -l$(XMPSDK_LIBRARY)
else
# Enable additional warnings. XMP Toolkit doesn't compile
@ -152,7 +152,7 @@ COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
# LINK.cc does not need $(LIBS), libtool's dark magic takes care of that
# when linking a binary with a libtool library.
LINK.cc = $(CXX) $(CXXFLAGS) $(LDFLAGS)
LINK.cc = $(CXX) $(LDFLAGS)
# **********************************************************************
# Installation programs

View File

@ -1,52 +0,0 @@
Copyright (c) 2007 Andreas Huggel <ahuggel@gmx.net>
Copyright (c) 1999 - 2007, Adobe Systems Incorporated
The BSD License
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Adobe Systems Incorporated, nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Copyright (C) 1991-2, RSA Data Security, Inc.
License to copy and use this software is granted provided that it is
identified as the "RSA Data Security, Inc. MD5 Message-Digest
Algorithm" in all material mentioning or referencing this software or
this function.
License is also granted to make and use derivative works provided that
such works are identified as "derived from the RSA Data Security,
Inc. MD5 Message-Digest Algorithm" in all material mentioning or
referencing the derived work.
RSA Data Security, Inc. makes no representations concerning either the
merchantability of this software or the suitability of this software
for any particular purpose. It is provided "as is" without express or
implied warranty of any kind.
These notices must be retained in any copies of any part of this
documentation and/or software.

View File

@ -1,46 +0,0 @@
XMP Toolkit
***********
Exiv2 uses the XMPCore component of the Adobe XMP Toolkit (XMP SDK) to
parse and serialize XMP packets. Temporarily, it is integrated and
distributed together with Exiv2. The xmpsdk/ directory of the Exiv2
distribution (this directory) contains the XMP SDK source code. The
final solution will use an external XMP Toolkit.
Building the XMP Toolkit is transparent. Following the installation
steps described in the top-level Exiv2 README file will ensure that
the XMP Toolkit is compiled if necessary. It is only needed if XMP
support is enabled. Building the XMP Toolkit results in a "convenience
library" xmpsdk/lib/libxmpsdk.a. This library is not installed on the
system and is not meant to be used as a standalone library. It is
only used to link with the Exiv2 library.
If you experience problems building this library, please email to the
Exiv2 support forum for help, see http://www.exiv2.org/support.html
and not to Adobe directly.
Source
======
XMP Toolkit 4.1.1 (xmp_v411_sdk.zip) from
http://www.adobe.com/devnet/xmp/sdk/eula.html
The following files were copied from the original XMP SDK
distribution:
public/include/* -> include
source/common/* -> src
source/XMPCore/* -> src
build/XMP_BuildInfo.h -> src
third-party/MD5/* -> src
License
=======
Copyright (c) 2007 Andreas Huggel <ahuggel@gmx.net>
Copyright (c) 1999 - 2007, Adobe Systems Incorporated
Copyright (c) 1991-2, RSA Data Security, Inc.
See the file COPYING in the same directory for license agreements.

View File

@ -45,7 +45,7 @@
#
# Default make target
all: install
all: xmpsdk
# Include system configuration
top_srcdir = ../..
@ -73,7 +73,7 @@ CCSRC = XMPMeta.cpp \
# ******************************************************************************
# Library
LIBRARY := lib$(XMPSDK_LIBRARY).a
LIBRARY := lib$(XMPSDK_LIBRARY).la
# ******************************************************************************
# Initialisations
@ -100,7 +100,7 @@ endif
# ******************************************************************************
# Rules
$(CCOBJ): %.o: %.cpp
@$(LIBTOOL) --mode=compile $(COMPILE.cc) -o $@ $< -static -prefer-non-pic
@$(LIBTOOL) --mode=compile $(COMPILE.cc) -o $@ $<
@$(MAKEDEPEND)
@$(POSTDEPEND)
@ -110,7 +110,7 @@ $(CCOBJ): %.o: %.cpp
# ******************************************************************************
# Targets
.PHONY: all mostlyclean clean distclean maintainer-clean install uninstall
.PHONY: all mostlyclean clean distclean maintainer-clean
ifdef DEP_TRACKING
# Include targets from dependency files
@ -120,24 +120,18 @@ endif
$(LIBTOOL): $(LIBTOOL_DEPS)
$(SHELL) $(top_srcdir)/config.status --recheck
xmpsdk: install
xmpsdk: $(LIBRARY)
$(LIBRARY): $(CCOBJ)
$(LIBTOOL) --mode=link $(LINK.cc) -o $(LIBRARY) $(LOBJ)
install: $(LIBRARY)
$(INSTALL_DATA) $(LIBRARY) ../lib/$(LIBRARY)
uninstall:
$(RM) ../lib/$(LIBRARY)
mostlyclean:
$(RM) core
$(RM) $(CCSRC:.cpp=.ii)
$(RM) $(CCSRC:%.cpp=.libs/%.d)
@$(LIBTOOL) --mode=clean $(RM) $(LOBJ)
clean: uninstall mostlyclean
clean: mostlyclean
@$(LIBTOOL) --mode=clean $(RM) $(LIBRARY)
# Run `make distclean' from the top source directory to also remove