• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..28-Aug-2020-

config/H03-May-2022-26,73622,320

include/exiv2/H28-Aug-2020-13,3433,950

po/H03-May-2022-471,237373,660

src/H03-May-2022-73,34555,658

xmpsdk/H03-May-2022-27,17015,250

AUTHORSH A D28-Aug-202071 21

COPYINGH A D28-Aug-202017.6 KiB341281

COPYING-CMAKE-SCRIPTSH A D28-Aug-20201.3 KiB2320

FindExiv2.cmakeH A D28-Aug-20202.9 KiB8163

READMEH A D28-Aug-20207.4 KiB205151

README-CMAKEH A D28-Aug-20206.4 KiB168120

TODO-CMAKEH A D28-Aug-20207.4 KiB171137

README

1    @@@Marco@@@@@b                   ;mm                       /##Gilles###\
2    j@@@#Robin",                     Brad                     /@@@Thomas@@@@Q
3     @@@#       \                     ##                     @@@b     |@@@b
4     @@@#          .;;;;,     ,;;;, ,;;;;  ,;;;p      .;;;   7@@      ]Alan
5     @@@#           j@@@@,   ]@@#/  '@@@#  j@@@#      ]@@^           ;@@@"
6     @@@Andreas@C     "@@@p @@@"     @@@b   j@@@p     @@b           @@@#/
7     @@@#^7"7%#\       ^@@@@@#~      Benb    1@@@    {@#          s@@@#
8     @@@#                Niels       @@@b     @@@Q  ]@#         ;@@@#/
9     @@@#              ,@@##@@m      @@@b      @@@p @@C        #@@#C
10     @@@#       ,/    s@@#  @@@@     @@@b       Volker       @Tuan@
11    ]@@@Abhinav@@\   /@@@\    \@@@Q  @@@Q       %@@@#      /@@@@Mahesh@@#
12   /@@Raphael@@@@@\ /@@@@@\     C++  Metadata  Library    /@Sridhar@@@v0.26\
13
14Exiv2
15*****
16
17Welcome to Exiv2, a C++ library and a command line utility to read and
18write Exif, IPTC and XMP image metadata. The homepage of Exiv2 is:
19
20    http://www.exiv2.org/
21
22See doc/ChangeLog for a list of recent changes to Exiv2.
23
24Exiv2 API and tag reference documentation is at http://www.exiv2.org/doc
25or you can build it and point your browser to doc/index.html.
26
27For more information on XMP support in Exiv2, see doc/README-XMP.
28
29Building and Installing
30=======================
31
32You can build the libraries in the following ways:
33
341 UNIX-like systems (including GNU/Linux, MacOS-X, Cygwin (32 and 64), MinGW (32 and 64)
35  - general notes follow
36  - FAQ concerning Cygwin/MSYS and Mac OS X:
37    http://dev.exiv2.org/projects/exiv2/wiki/FAQ
38
392 Microsoft Visual C++
40  - see msvc/ReadMe.txt      (32bit and 64bit builds Visual Studio 2005,08,10,12,13,15)
41  - see msvc2003/ReadMe.txt  (32bit build on Visual Studio 2003, 2005, 2008)
42  Caution msvc2003 is deprecated with v0.26 and will be removed.
43
443 CMake (support for cmake on all platforms except MinGW)
45  - see README-CMAKE for more information
46
47To build a commercial version of the Exiv2 library, see also section
48"Commercial version" at the end of this file.
49
50On UNIX-like systems, use the GNU configure script. Run the following
51commands from the top directory (containing this file) to configure,
52build and install the library and utility:
53
54    $ ./configure
55    $ make
56    $ sudo make install  (Cygwin/MinGW $ make install)
57
58Caution:
59    If you downloaded the source code from the subversion repository,
60    you will have to generate the configure script:
61
62    $ make config
63    $ ./configure
64    $ make
65    $ sudo make install  (Cygwin/MinGW $ make install)
66
67To build the sample applications:
68
69    $ make samples
70
71The default install locations are /usr/local/lib for the library,
72/usr/local/bin for the exiv2 utility and /usr/local/include/exiv2 for the
73header files. Use the --prefix=directory option of the configure script to
74change the default. Run './configure --help' to see a list of all options.
75
76To uninstall Exiv2 from a UNIX-like system, run:
77
78    $ sudo make uninstall
79
80Dependencies
81============
82
83The following libexiv2 features are enabled by default and may*)
84require external libraries. They can be controlled through configure
85options. See also './configure --help'.
86
87Feature                     Package   Configure options
88--------------------------  --------  ----------------------------
89PNG image support           zlib      --without-zlib
90                                      --with-zlib=DIR
91Native language support     gettext   --disable-nls
92Characterset conversions    libiconv  --without-libiconv-prefix
93                                      --with-libiconv-prefix[=DIR]
94XMP support                 expat     --disable-xmp
95                                      --with-expat=DIR
96
97zlib         http://zlib.net/
98gettext  *)  http://www.gnu.org/software/gettext/
99libiconv *)  http://www.gnu.org/software/libiconv/
100expat        http://expat.sourceforge.net/
101
102*) Some systems have gettext and iconv in libc. The configure script
103should detect this.
104
105On Linux, it is usually best to install the dependencies through the
106package management system of the distribution together with the
107corresponding development packages (for the header files and static
108libraries).
109
110To build the sample programs in the samples/ directory ('make samples'),
111you also need to have the pkg-config program.
112
113To generate the documentation ('make doc'), you will further need
114doxygen, graphviz, python and xsltproc.
115
116pkg-config   http://pkg-config.freedesktop.org/wiki/
117doxygen      http://www.doxygen.org/
118graphviz     http://www.graphviz.org/
119python       http://www.python.org/
120xsltproc     http://xmlsoft.org/XSLT/
121md5sum       http://www.microbrew.org/tools/md5sha1sum/
122
123Troubleshooting
124===============
125
126If you have problems building Exiv2 on UNIX-like systems, check the
127generated config/config.mk and config/config.h files. You should *not*
128need to modify any Makefile directly, in particular not src/Makefile!
129
130Support
131=======
132
133All project resources are accessible from the project website at
134
135    http://dev.exiv2.org/wiki/exiv2
136
137Please send feedback or queries to the Exiv2 forum. For new bug reports
138and feature requests, please open an issue.
139
140Linking your own code with Exiv2
141================================
142
143A pkg-config .pc file is installed together with the library.
144Application developers can use pkg-config(1) to obtain correct compile
145and link time flags for the Exiv2 library. See samples/Makefile for an
146example.
147
148If you downloaded Exiv2 directly from the subversion repository, and
149you want to build it using the GNU configure script, then you need to
150have GNU Autoconf installed on your system and create the configure
151script as the first step:
152
153    $ make config
154
155Then run the usual './configure; make; make install' commands.
156
157Exiv2 uses GNU Libtool in order to build shared libraries on a variety
158of systems. While this is very nice for making usable binaries, it can
159be a pain when trying to debug a program. For that reason, compilation
160of shared libraries can be turned off by specifying the
161--disable-shared option to the configure script.
162
163License
164=======
165
166Copyright (C) 2004-2015 Andreas Huggel <ahuggel@gmx.net>
167
168Exiv2 is free software; you can redistribute it and/or modify it under
169the terms of the GNU General Public License as published by the Free
170Software Foundation; either version 2 of the License, or (at your
171option) any later version.
172
173Alternatively, Exiv2 is also available with a commercial license,
174which allows it to be used in closed-source projects. Contact me for
175more information.
176
177Exiv2 is distributed in the hope that it will be useful, but WITHOUT
178ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
179FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
180for more details.
181
182You should have received a copy of the GNU General Public License
183along with this program; if not, write to the Free Software
184Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
185MA 02110-1301 USA.
186
187Commercial version
188==================
189
190If you have a commercial license, you must disable NLS support and
191the conversion of Nikon lens data to readable lens names to build a
192commercial version of the Exiv2 library.
193
194To do this on Windows, compile the library with the preprocessor
195symbol EXV_COMMERCIAL_VERSION defined in:
196   msvc2003\include\exv_msvc.h
197or msvc\include\exv_msvc.h
198
199On UNIX-like systems, run the configure
200script with the options --enable-commercial --disable-nls
201--disable-lensdata.
202
203# That's all Folks
204##
205

README-CMAKE

1    @@@Marco@@@@@b                   ;mm                       /##Gilles###\
2    j@@@#Robin",                     Brad                     /@@@Thomas@@@@Q
3     @@@#       \                     ##                     @@@b     |@@@b
4     @@@#          .;;;;,     ,;;;, ,;;;;  ,;;;p      .;;;   7@@      ]Alan
5     @@@#           j@@@@,   ]@@#/  '@@@#  j@@@#      ]@@^           ;@@@"
6     @@@Andreas@C     "@@@p @@@"     @@@b   j@@@p     @@b           @@@#/
7     @@@#^7"7%#\       ^@@@@@#~      Benb    1@@@    {@#          s@@@#
8     @@@#                Niels       @@@b     @@@Q  ]@#         ;@@@#/
9     @@@#              ,@@##@@m      @@@b      @@@p @@C        #@@#C
10     @@@#       ,/    s@@#  @@@@     @@@b       Volker       @Tuan@
11    ]@@@Abhinav@@\   /@@@\    \@@@Q  @@@Q       %@@@#      /@@@@Mahesh@@#
12   /@@Raphael@@@@@\ /@@@@@\     C++  Metadata  Library    /@Sridhar@@@v0.26\
13
14-------------------------------------------------------------------------------
15CMake is a cross-platform build system, to control the
16compilation process using platform/compiler independent configuration files.
17
18STATUS:
19
20* CMake scripts are functional and used to perform the daily build on the buildserver
21  for MacOS-X, Cygwin, Linux and Visual Studio (2005, 8, 10, 12, 13 and 15)
22  The daily build on MinGW/32 is performed using autotools for Qt/Windows Users.
23
24* The existing automake (./configure) will continue to be supported by exiv2
25  for at least v0.27 (and probably longer)
26
27  The msvc2003 project/solutions files are deprecated and will not be supported after v0.26.
28  The msvc project/solutions files will continue to be supported by exiv2
29  for at least v0.27 (and probably longer)
30
31  Exiv2 is very difficult to build on MinGW with CMake.
32  This is discussed in TODO-CMAKE
33
34Robin Mills
35robin@clanmills.com
362016-10-25
37
38-------------------------------------------------------------------------------
39
40
41TABLE OF CONTENTS
42-----------------
43
441 CMake resources
452 Building and Installing for Unix type systems
463 Building and Installing for Visual Studio Users
474 Building and installing for MinGW Users
48
491 CMake resources
50=================
51
52You have to install cmake on your target system.
53
54Home: http://www.cmake.org/
55Help: http://www.cmake.org/cmake/help/help.html
56Doc:  http://www.cmake.org/cmake/help/documentation.html
57Wiki: http://www.cmake.org/Wiki/CMake
58FAQ:  http://www.cmake.org/Wiki/CMake_FAQ
59
602 Building and Installing on Linux
61==================================
62
63This process overs MacOS-X, Linux and Cygwin.
64
65a) From the command line
66
67Run the following commands from the top directory (containing this
68file) to configure, build and install the library and utility:
69
70    $ mkdir build
71    $ cd build
72    $ cmake .. -G "Unix Makefiles"
73    $ make
74    $ make install
75
76To modify the configuration
77
78    $ ccmake ..
79
80Usual CMake options :
81
82-DCMAKE_INSTALL_PREFIX : decide where the program will be install on your computer.
83-DCMAKE_BUILD_TYPE     : decide which type of build you want. You can chose between:
84                         "debugfull".     : for hacking. Include all debug information.
85                         "debug".
86                         "profile".
87                         "relwithdebinfo" : default. use gcc -O2 -g options.
88                         "release"        : generate stripped and optimized bin files. For packaging.
89
90Specific Exiv2 options :
91
92-DEXIV2_ENABLE_SHARED        : Build exiv2 as a shared library (dll).            [default=on ]
93-DEXIV2_ENABLE_XMP           : Build with XMP metadata support.                  [default=on ]
94-DEXIV2_ENABLE_LIBXMP        : Build a static convenience Library for XMP.       [default=on ]
95-DEXIV2_ENABLE_PNG           : Build with png support (requires libz).           [default=on ]
96-DEXIV2_ENABLE_NLS           : Build native language support (requires gettext). [default=on ]
97-DEXIV2_ENABLE_PRINTUCS2     : Build with Printucs2.                             [default=on ]
98-DEXIV2_ENABLE_LENSDATA      : Build including lens data.                        [default=on ]
99-DEXIV2_ENABLE_COMMERCIAL    : Build with the EXV_COMMERCIAL_VERSION symbol set. [default=off]
100-DEXIV2_ENABLE_BUILD_SAMPLES : Build the unit tests.                             [default=off]
101-DEXIV2_ENABLE_BUILD_PO      : Build translations files.                         [default=off]
102-DEXIV2_ENABLE_CURL          : USE Libcurl for HttpIo                            [default=off]
103-DEXIV2_ENABLE_SSH           : USE Libssh for SshIo                              [default=off]
104
105Default install locations
106
107Use -DCMAKE_INSTALL_PREFIX like this :
108
109"cmake . -DCMAKE_INSTALL_PREFIX=/usr"  is equivalent to "./configure --prefix=/usr" with automake/configure.
110
111To uninstall Exiv2, run:
112
113    $ make uninstall
114
115b) Using the cmake GUI
116
117   ccmake
118
1193 Building and installing for Visual Studio Users
120=================================================
121
122exiv2 provides three build environment for users of Visual Studio:
123
124cmake:    This environment
125msvc:     32 bit AND 64 bit build environment for MSVC 2005 and later (2005/2008/10/12/13/15)
126msvc2003: 32 bit build environment for MSVC 2003 (deprecated after v0.26)
127
128CMake doesn't build code.  It generates build environments.
129CMake is a language for describing builds and the CMake interpreter generates
130the build environment for your system.
131
132CMake generates MSVC .sln and .vcproj files for your target environment.
133The files generated by CMake provide 4 configs: Debug|Release|RelWithDebInfo|MinSizeRel
134The current architecture of CMake requires you to decide before running cmake:
1351)  The version of DevStudio
1362)  32bit or 64 bit builds
1373)  Building static or shared libraries
138
139We have two contributed CMake Build Environments:
140
1411 contrib/cmake/msvc
142  Please read contrib/cmake/msvc/ReadMe.txt
143
1442 contrib/build/msvc
145
146  The scripts require:
147  - Cygwin (in order to download all dependencies (zlib, expat, ssl, curl, ssh), including exiv2 trunk from svn)
148  - CMake
149  - SVN (optional)
150
151  Then
152   - put the two scripts (build.cmd and setenv.cmd) into a completely empty directory
153   - adapt the paths in setenv.cmd
154   - open the VS command line shell
155   - execute build.cmd (if there are any errors, the script should tell you)
156
157  Exiv2 should be packaged in the dist directory with all the .lib, include and binary files you need.
158
1594 Building and installing for MinGW Users
160=========================================
161
162  CMake/MinGW has a number of serious issues.  This will be reported to Kitware.
163
164  It is possible to use CMake/MinGW if you put in some effort.  This is documented in TODO-CMAKE.
165
166# That's all Folks
167##
168