Current Status

ToDo: * Fix out of source builds for NMake
      * Find and link iconv library on Windows
      * Test Cygwin, MinGW, Xcode, NMake and more versions of MSVC
      * Revisit searching for zlib, expat and iconv
      * Work on the "inherited from Gilles" list below

Bugs: * 2005/32/debug won't run. "SideBySide" error (manifest trouble)
	  * 2003/32 does not compile (1000's of template errors)

Done: * Support for out of source builds (this is still suspect)
      * Add header files to MSVC UI for exiv2lib (and changed exiv2bin->exiv2 and exiv2->exiv2lib)
      * Searching better for expat, zlib and iconv
	  * write FindLibexiv2.cmake (Thank you, Gilles)
	  * Builds and passes the test suite on 2005/32, 2008/64, Mac-Lion/64/Makefiles and Ubuntu/12.04/32bit
      * Updated documentation (README-CMAKE)

Robin Mills
robin@clanmills.com
2012-06-09

Inherited from Gilles Caulier <caulier dot gilles at gmail dot com>:

* Review how samples are built: They should use the *installed* version
  of libexiv2, not some temporary version in the src or build tree.

* Compare the cmake-built shared library with the configure-built version. Do they differ? 
  Ideally they are the same. If not, we should understand the differences exactly.

* Added cmake target to build/install doc.

* Added Cmake target to release build and packaging.

* Added support for cross-compiling : add information on how to cross-compile on Linux for Windows (MinGW)
 (some applications and my own release-build process need this) to the README.CMAKE

* Emacs M-c command to (re-)compile.

* Migrate the whole README-CMAKE to README.

-------------------------------------------------------------------------------------

DONE * Can the logic needed to build the doc be re-written using cmake?
   => Yes. We manage it with digiKam Doxygen documentation as well.

DONE * Is it possible to not have CMakeLists.txt file in the top dir?
   => No. It a deprecated solution from KitWare. I read more than one questions about this subject in devel forum.

DONE * Need soname versioning for shared library.

DONE * Add further messages to display option settings.

   ------------------------------------------------------------------
   -- Exiv2 0.18-pre1 feature configuration summary
   --
   -- Build a shared library......... NO
   -- PNG image support.............. YES
   -- Native language support........ NO

   gettext is required for native language support. Make sure the
   gettext header files are installed. You can get gettext from
   http://www.gnu.org/software/gettext/

   -- Conversion of Windows XP tags.. YES
   -- Nikon lens database............ YES
   -- XMP metadata support........... YES
   ------------------------------------------------------------------

DONE * Add possibility to build xmp as a convenience library.

DONE * Compilation fails if Expat (possibly also other dependencies?) is in a non-standard place.

WONTFIX * This is probably not necessary in src/CMakeLists.txt / can be removed:
   set( LIBEXIV2_SRC   ${LIBEXIV2_SRC} getopt_win32.c )
   it is necessary as both windows compilers do not autoexport

DONE * Do we need to worry about MSVC warnings like this:
   d:\home\ahuggel\msys\src\exiv2\src\exif.hpp(245) : warning C4251: 'Exiv2::Exifdatum::value_' : class 'std::auto_ptr<_Ty>'
   needs to have dll-interface to be used by clients of class 'Exiv2::Exifdatum'
   with
   [
       _Ty=Exiv2::Value
   ]

DONE * Is the pkgconfig file not installed in MinGW? - it is now.

DONE * Added targets to build/install man page.

DONE * Need g++ specific : compiler options (warnings) and settings (visibility).

DONE * Manage eviv2.pc file with CMake, like it's do with kdegraphics/libs .pc file.

DONE * Manage eviv2.lsm file with CMake, like it's do with kdegraphics/libs .lsm file.

DONE * Added cmake target to uninstall Exiv2, based on KDE4 cmake script.

DONE * The following options of the configure script should be supported
   --disable-shared     => -ENABLE_SHARED_EXIV2
   --disable-xmp        => -ENABLE_XMP
   --without-zlib       => -ENABLE_PNG
   --enable-commercial  => -ENABLE_COMMERCIAL
   --disable-lensdata   => -ENABLE_LENSDATA
   --disable-printucs2  => -ENABLE_PRINTUCS2
   --enable-nls         => -ENABLE_NLS

DONE * Cmake project: in root folder, common config in config sub-dir.

DONE * Manage samples sub-dir with CMake.

DONE * Rename configuration settings to EXIV2_*, e.g., EXIV2_ENABLE_SHARED.

DONE * Manage i18n extraction to generate .po files. (See http://www.cmake.org/pipermail/cmake/2009-July/031003.html)
   Port extract-messages.sh to CMake

DONE * Add tests to check availability of msgmerge, xgettext, msgfmt programs.

INFO * Check How does cmake handle RPATH? (I'll read up on this).
