Current Status ToDo: * option cmakeBuild --webready is broken (Daniel to fix) * look at the items listed below which we inherited from Gilles Done: * working well on Unix systems (Linux, Mac, Cygwin, MinGW) * Visual Studio (2005/8/10/12/13/15). See contrib/cmake/msvc/ReadMe.txt * Support for out of source builds * 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 2015-11-29 Inherited from Gilles Caulier : * 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).