Feature #536

Switch to a unified build system based on cmake

Added by Nikolai Saoukh over 9 years ago. Updated about 1 year ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:Robin Mills% Done:

100%

Category:build
Target version:0.26

Description

[was: Time to switch to Visual C++ 2008 Express edition for win32 (Or to ma... ]

One set of CMake scripts can be used to create build files for a number of platforms and compilers, including those supported with the existing Makefiles and MSVC project files.

Additional information:

http://uk.groups.yahoo.com/group/exiv2/message/1000


Related issues

Related to Exiv2 - Patch #685: incomplete handling of iconv dialects for cmake case Closed 04 Mar 2010
Related to Exiv2 - Patch #688: src/futils.cpp: incorrect check for linux version of stre... Closed 04 Mar 2010
Related to Exiv2 - Bug #692: Revision 2057 broke compilation under FreeBSD and Windows Closed 10 Apr 2010
Related to Exiv2 - Patch #694: config/config.h.cmake: const must be without quotes Closed 13 Apr 2010
Related to Exiv2 - Patch #696: cmake: out of src compilation Closed 14 Apr 2010
Related to Exiv2 - Bug #697: config/ConfigureChecks.cmake: STRERROR_R_CHAR_P revisited Closed 20 Apr 2010
Related to Exiv2 - Bug #698: CMake Error at po/cmake_install.cmake:36 Closed 20 Apr 2010
Related to Exiv2 - Bug #823: CMake compilation: exv_conf.h at the wrong place Closed 27 Apr 2012
Related to Exiv2 - Bug #722: Unit tests do not build with CMake and out of source build Closed 28 Aug 2010
Related to Exiv2 - Bug #714: problem compiling with Sun Studio - visibility Closed 23 Jul 2010
Related to Exiv2 - Feature #1041: CMake toolchain for windows Closed 15 Mar 2015
Related to Exiv2 - Feature #1031: CMake build broken when using zlib/expat in clean way Closed 15 Feb 2015

Associated revisions

Revision 2746
Added by Robin Mills about 5 years ago

Feature #536 Modifications to CMake files to support MSVC 32/64 bit builds of Dynamic/Static libraries and applications.

History

#1 Updated by Andreas Huggel over 9 years ago

Now it actually compiles with MSVC 7.1, 8 and 9 (aka 2003, 2005 and 2008). However, for MSVC 8 and 9 it is necessary to convert the build files and then go to exiv2lib project -> Properties -> Librarian and change the "Link Library Dependencies" property to Yes. Is it possible to automate that somehow?

#2 Updated by Andreas Huggel over 9 years ago

Thanks for the offer to put in some work. Here are some thought on this:

1) I'd like Exiv2 to still build with MSVC 7.1 and 8, for the benefit of those using exiv2 in larger projects which can't switch compiler version so easily.

2) If we switch away from the MSVC solution files, it should be to some build-system which supports both, Windows (MSVC, maybe other compilers) and UNIX-like platforms and allows for unified build files. I'm not so sure if Makefiles, i.e., a build system based on GNU (or some other version of) the make program is the best approach for this:
+ They are difficult to write and understand
+ They tend to depend on all sorts of other programs, which Windows users may not be familiar with.

CMake claims it can do 2) and digiKam and KDE are in the process of switching to that, so it should be interesting to evaluate CMake as well, maybe others too.

#3 Updated by Nikolai Saoukh over 9 years ago

As I wrote in email to exiv2 list -- autoconf/automake hell has nothing in common with makefiles.

#4 Updated by Andreas Huggel over 8 years ago

  • Target version set to 1.0

#5 Updated by Andreas Huggel over 8 years ago

  • % Done changed from 0 to 60

#6 Updated by Andreas Huggel over 8 years ago

  • Subject changed from Switch to a unified build system based on cmake [was: Time to switch to Visual C++ 2008 Express edition for win32 (Or to ma... ] to Switch to a unified build system based on cmake

#7 Updated by Andreas Huggel about 5 years ago

  • Assignee set to Robin Mills

Robin, this is the top-level issue we have for the CMake feature.

#8 Updated by Robin Mills about 5 years ago

  • Status changed from New to Assigned
  • % Done changed from 60 to 70

The CMakeList.txt files in exiv2 v0.23 generate Unix Makefiles and Xcode projects which build a working version of exiv2. I've also successfully generated projects which build with DevStudio 2008 64-bit DLL.

I hope to test and document using CMake with MSVC 2003/5/8/10 for 32/64 bit static/dynamic libraries and sample apps. The aim is to have a stable, documented CMake build environment in exiv2 v0.24.

#9 Updated by Robin Mills about 5 years ago

  • % Done changed from 70 to 80

I've submitted changes to build exiv2 with MSVC: SVN:2746.

This supports build 32/64 bit Static/Dynamic libraries and applications. More testing remains to be done - see TODO-README for status.

#10 Updated by Gilles Caulier about 5 years ago

About this intry in TODO-CMAKE :

ToDo: * write FindLibexiv2.cmake

No need to re-invent the wheel : use mine from KDELibs :

https://projects.kde.org/projects/kde/kdelibs/repository/revisions/master/entry/cmake/modules/FindExiv2.cmake

Ususally, a library must provide the cmake script dedicated to be able to detect and configure it through cmake. It's safe to include this script in Exiv2 lib and to install it as well in target system.

Of course, after inclusion into Exiv2, this script must be removed later into KDElibs, to prevent code duplication and conflict between package installation rules.

Gilles Caulier

#11 Updated by Gilles Caulier about 5 years ago

Compilation log from Linux Mageia 2 :

[gilles@localhost exiv2]$ pwd
/mnt/data/Devel/SVN/trunk/exiv2
[gilles@localhost exiv2]$ cmake version
cmake version 2.8.7
[gilles@localhost exiv2]$ gcc -v
Utilisation des specs internes.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-mageia-linux-gnu/4.6.3/lto-wrapper
Target: i586-mageia-linux-gnu
Configuré avec: ../configure --prefix=/usr --libexecdir=/usr/lib --with-slibdir=/lib --with-bugurl=http://bugs.mageia.org/ --mandir=/usr/share/man --infodir=/usr/share/info --enable-checking=release --enable-languages=c,c++,ada,fortran,objc,obj-c++,java --enable-linker-build-id --build=i586-mageia-linux-gnu --host=i586-mageia-linux-gnu --with-cpu=generic --with-system-zlib --enable-threads=posix --enable-shared --enable-objc-gc --enable-long-long --enable
__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-gtk-cairo --disable-libjava-multilib --enable-ssp --disable-libssp --disable-werror --with-ppl --with-cloog --with-python-dir=/lib/python2.7/site-packages --enable-lto
Modèle de thread: posix
gcc version 4.6.3 (GCC)
[gilles@localhost exiv2]$ ./bootstrap.linux
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for iconv_open
-- Looking for iconv_open - found
-- Performing Test ICONV_COMPILES
-- Performing Test ICONV_COMPILES - Success
-- Found ICONV: In glibc
-- Performing Test ICONV_ACCEPTS_NONCONST_INPUT
-- Performing Test ICONV_ACCEPTS_NONCONST_INPUT - Success
-- Performing Test ICONV_ACCEPTS_CONST_INPUT
-- Performing Test ICONV_ACCEPTS_CONST_INPUT - Failed
-- Found ZLIB: /usr/lib/libz.so (found version "1.2.6")
-- Found EXPAT: /usr/lib/libexpat.so
-- ICONV_LIBRARIES :
-- Program msgfmt found (/usr/bin/msgfmt)
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for libintl.h
-- Looking for libintl.h - found
-- Looking for malloc.h
-- Looking for malloc.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for iconv.h
-- Looking for iconv.h - found
-- Looking for stdbool.h
-- Looking for stdbool.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for wchar.h
-- Looking for wchar.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for sys/mman.h
-- Looking for sys/mman.h - found
-- Looking for process.h
-- Looking for process.h - not found
-- Looking for alarm
-- Looking for alarm - found
-- Looking for gmtime_r
-- Looking for gmtime_r - found
-- Looking for malloc
-- Looking for malloc - found
-- Looking for memset
-- Looking for memset - found
-- Looking for mmap
-- Looking for mmap - found
-- Looking for munmap
-- Looking for munmap - found
-- Looking for realloc
-- Looking for realloc - found
-- Looking for strchr
-- Looking for strchr - found
-- Looking for strchr_r
-- Looking for strchr_r - not found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for strerror_r
-- Looking for strerror_r - found
-- Looking for strtol
-- Looking for strtol - found
-- Looking for timegm
-- Looking for timegm - found
-- Looking for vprintf
-- Looking for vprintf - found
-- None:
-- Debug: g
-
Release: O3 -DNDEBUG
-
RelWithDebInfo: O2 -g
-
MinSizeRel: Os -DNDEBUG
-
Looking for _Bool
-- Looking for _Bool - not found.
-- Performing Test TM_IN_SYS_TIME
-- Performing Test TM_IN_SYS_TIME - Failed
-- Performing Test STRERROR_R_CHAR_P
-- Performing Test STRERROR_R_CHAR_P - Success
-- Performing Test TIME_WITH_SYS_TIME
-- Performing Test TIME_WITH_SYS_TIME - Success
-- ------------------------------------------------------------------
-- exiv2 0.23 configure results <http://www.exiv2.org>
-- Building PNG support: YES
-- Building shared library: YES
-- XMP metadata support: YES
-- Building static libxmp: YES
-- Native language support: YES
-- Conversion of Windows XP tags: YES
-- Nikon lens database: YES
-- Commercial build: NO
-- Build the unit tests: YES
-- Building translations files: YES
-- ------------------------------------------------------------------
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/data/Devel/SVN/trunk/exiv2/build

[gilles@localhost exiv2]$
[gilles@localhost build]$ make
Scanning dependencies of target xmp
[ 1%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/ExpatAdapter.cpp.o
[ 2%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/MD5.cpp.o
[ 3%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/ParseRDF.cpp.o
[ 4%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/UnicodeConversions.cpp.o
[ 4%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPIterator.cpp.o
[ 5%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPMeta.cpp.o
[ 6%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPUtils.cpp.o
[ 7%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XML_Node.cpp.o
[ 8%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPCore_Impl.cpp.o
/mnt/data/Devel/SVN/trunk/exiv2/xmpsdk/src/XMPCore_Impl.cpp: In function ‘XMP_Node* FindSchemaNode(XMP_Node*, XMP_StringPtr, bool, XMP_NodePtrPos*)’:
/mnt/data/Devel/SVN/trunk/exiv2/xmpsdk/src/XMPCore_Impl.cpp:848:14: attention : variable ‘found’ set but not used [-Wunused-but-set-variable]
[ 9%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPIterator.cpp.o
[ 10%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-GetSet.cpp.o
[ 10%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-Parse.cpp.o
[ 11%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-Serialize.cpp.o
[ 12%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta.cpp.o
/mnt/data/Devel/SVN/trunk/exiv2/xmpsdk/src/XMPMeta.cpp: In static member function ‘static bool XMPMeta::Initialize()’:
/mnt/data/Devel/SVN/trunk/exiv2/xmpsdk/src/XMPMeta.cpp:742:17: attention : variable ‘flag’ set but not used [-Wunused-but-set-variable]
[ 13%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPUtils-FileInfo.cpp.o
[ 14%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPUtils.cpp.o
/mnt/data/Devel/SVN/trunk/exiv2/xmpsdk/src/XMPUtils.cpp: In function ‘size_t MoveLargestProperty(XMPMeta&, XMPMeta*, PropSizeMap&)’:
/mnt/data/Devel/SVN/trunk/exiv2/xmpsdk/src/XMPUtils.cpp:605:10: attention : variable ‘moved’ set but not used [-Wunused-but-set-variable]
/mnt/data/Devel/SVN/trunk/exiv2/xmpsdk/src/XMPUtils.cpp: In static member function ‘static void XMPUtils::PackageForJPEG(const XMPMeta&, const char**, XMP_StringLen*, const char**, XMP_StringLen*, const char**, XMP_StringLen*)’:
/mnt/data/Devel/SVN/trunk/exiv2/xmpsdk/src/XMPUtils.cpp:1845:15: attention : variable ‘packetEnd’ set but not used [-Wunused-but-set-variable]
Linking CXX static library libxmp.a
[ 14%] Built target xmp
Scanning dependencies of target exiv2
[ 15%] Building CXX object src/CMakeFiles/exiv2.dir/basicio.cpp.o
[ 15%] Building CXX object src/CMakeFiles/exiv2.dir/bmpimage.cpp.o
[ 16%] Building CXX object src/CMakeFiles/exiv2.dir/canonmn.cpp.o
[ 17%] Building CXX object src/CMakeFiles/exiv2.dir/convert.cpp.o
[ 18%] Building CXX object src/CMakeFiles/exiv2.dir/cr2image.cpp.o
[ 19%] Building CXX object src/CMakeFiles/exiv2.dir/crwedit.cpp.o
[ 20%] Building CXX object src/CMakeFiles/exiv2.dir/crwimage.cpp.o
[ 21%] Building CXX object src/CMakeFiles/exiv2.dir/datasets.cpp.o
[ 21%] Building CXX object src/CMakeFiles/exiv2.dir/easyaccess.cpp.o
[ 22%] Building CXX object src/CMakeFiles/exiv2.dir/epsimage.cpp.o
[ 23%] Building CXX object src/CMakeFiles/exiv2.dir/error.cpp.o
[ 24%] Building CXX object src/CMakeFiles/exiv2.dir/exif.cpp.o
[ 25%] Building CXX object src/CMakeFiles/exiv2.dir/futils.cpp.o
[ 26%] Building CXX object src/CMakeFiles/exiv2.dir/fujimn.cpp.o
[ 27%] Building CXX object src/CMakeFiles/exiv2.dir/gifimage.cpp.o
[ 27%] Building CXX object src/CMakeFiles/exiv2.dir/image.cpp.o
[ 28%] Building CXX object src/CMakeFiles/exiv2.dir/iptc.cpp.o
[ 29%] Building CXX object src/CMakeFiles/exiv2.dir/jp2image.cpp.o
[ 30%] Building CXX object src/CMakeFiles/exiv2.dir/jpgimage.cpp.o
[ 31%] Building CXX object src/CMakeFiles/exiv2.dir/makernote.cpp.o
[ 32%] Building CXX object src/CMakeFiles/exiv2.dir/metadatum.cpp.o
[ 33%] Building CXX object src/CMakeFiles/exiv2.dir/minoltamn.cpp.o
[ 34%] Building CXX object src/CMakeFiles/exiv2.dir/mrwimage.cpp.o
[ 34%] Building CXX object src/CMakeFiles/exiv2.dir/nikonmn.cpp.o
[ 35%] Building CXX object src/CMakeFiles/exiv2.dir/olympusmn.cpp.o
[ 36%] Building CXX object src/CMakeFiles/exiv2.dir/orfimage.cpp.o
[ 37%] Building CXX object src/CMakeFiles/exiv2.dir/panasonicmn.cpp.o
[ 38%] Building CXX object src/CMakeFiles/exiv2.dir/pentaxmn.cpp.o
[ 39%] Building CXX object src/CMakeFiles/exiv2.dir/pgfimage.cpp.o
[ 40%] Building CXX object src/CMakeFiles/exiv2.dir/preview.cpp.o
[ 40%] Building CXX object src/CMakeFiles/exiv2.dir/properties.cpp.o
[ 41%] Building CXX object src/CMakeFiles/exiv2.dir/psdimage.cpp.o
[ 42%] Building CXX object src/CMakeFiles/exiv2.dir/rafimage.cpp.o
[ 43%] Building CXX object src/CMakeFiles/exiv2.dir/rw2image.cpp.o
[ 44%] Building CXX object src/CMakeFiles/exiv2.dir/samsungmn.cpp.o
[ 45%] Building CXX object src/CMakeFiles/exiv2.dir/sigmamn.cpp.o
[ 46%] Building CXX object src/CMakeFiles/exiv2.dir/sonymn.cpp.o
[ 46%] Building CXX object src/CMakeFiles/exiv2.dir/tags.cpp.o
[ 47%] Building CXX object src/CMakeFiles/exiv2.dir/tgaimage.cpp.o
[ 48%] Building CXX object src/CMakeFiles/exiv2.dir/tiffcomposite.cpp.o
[ 49%] Building CXX object src/CMakeFiles/exiv2.dir/tiffimage.cpp.o
[ 50%] Building CXX object src/CMakeFiles/exiv2.dir/tiffvisitor.cpp.o
[ 51%] Building CXX object src/CMakeFiles/exiv2.dir/types.cpp.o
[ 52%] Building CXX object src/CMakeFiles/exiv2.dir/value.cpp.o
[ 52%] Building CXX object src/CMakeFiles/exiv2.dir/version.cpp.o
[ 53%] Building CXX object src/CMakeFiles/exiv2.dir/xmp.cpp.o
[ 54%] Building CXX object src/CMakeFiles/exiv2.dir/xmpsidecar.cpp.o
[ 55%] Building CXX object src/CMakeFiles/exiv2.dir/pngchunk.cpp.o
[ 56%] Building CXX object src/CMakeFiles/exiv2.dir/pngimage.cpp.o
Linking CXX shared library libexiv2.so
[ 56%] Built target exiv2
Scanning dependencies of target exiv2bin
[ 57%] Building CXX object src/CMakeFiles/exiv2bin.dir/exiv2.cpp.o
[ 58%] Building CXX object src/CMakeFiles/exiv2bin.dir/actions.cpp.o
[ 59%] Building CXX object src/CMakeFiles/exiv2bin.dir/utils.cpp.o
Linking CXX executable exiv2
[ 59%] Built target exiv2bin
Scanning dependencies of target metacopy
[ 60%] Building CXX object src/CMakeFiles/metacopy.dir/metacopy.cpp.o
[ 60%] Building CXX object src/CMakeFiles/metacopy.dir/utils.cpp.o
Linking CXX executable metacopy
[ 60%] Built target metacopy
Scanning dependencies of target pathtest
[ 61%] Building CXX object src/CMakeFiles/pathtest.dir/path-test.cpp.o
[ 62%] Building CXX object src/CMakeFiles/pathtest.dir/utils.cpp.o
Linking CXX executable path-test
[ 62%] Built target pathtest
Scanning dependencies of target taglist
[ 63%] Building CXX object src/CMakeFiles/taglist.dir/taglist.cpp.o
Linking CXX executable taglist
[ 63%] Built target taglist
Scanning dependencies of target addmoddel
[ 63%] Building CXX object samples/CMakeFiles/addmoddel.dir/addmoddel.cpp.o
Linking CXX executable addmoddel
[ 63%] Built target addmoddel
Scanning dependencies of target convert-test
[ 64%] Building CXX object samples/CMakeFiles/convert-test.dir/convert-test.cpp.o
Linking CXX executable convert-test
[ 64%] Built target convert-test
Scanning dependencies of target easyaccess-test
[ 65%] Building CXX object samples/CMakeFiles/easyaccess-test.dir/easyaccess-test.cpp.o
Linking CXX executable easyaccess-test
[ 65%] Built target easyaccess-test
Scanning dependencies of target exifcomment
[ 66%] Building CXX object samples/CMakeFiles/exifcomment.dir/exifcomment.cpp.o
Linking CXX executable exifcomment
[ 66%] Built target exifcomment
Scanning dependencies of target exifdata-test
[ 67%] Building CXX object samples/CMakeFiles/exifdata-test.dir/exifdata-test.cpp.o
Linking CXX executable exifdata-test
[ 67%] Built target exifdata-test
Scanning dependencies of target exifprint
[ 68%] Building CXX object samples/CMakeFiles/exifprint.dir/exifprint.cpp.o
Linking CXX executable exifprint
[ 68%] Built target exifprint
Scanning dependencies of target iotest
[ 68%] Building CXX object samples/CMakeFiles/iotest.dir/iotest.cpp.o
Linking CXX executable iotest
[ 68%] Built target iotest
Scanning dependencies of target iptceasy
[ 69%] Building CXX object samples/CMakeFiles/iptceasy.dir/iptceasy.cpp.o
Linking CXX executable iptceasy
[ 69%] Built target iptceasy
Scanning dependencies of target iptcprint
[ 70%] Building CXX object samples/CMakeFiles/iptcprint.dir/iptcprint.cpp.o
Linking CXX executable iptcprint
[ 70%] Built target iptcprint
Scanning dependencies of target iptctest
[ 71%] Building CXX object samples/CMakeFiles/iptctest.dir/iptctest.cpp.o
Linking CXX executable iptctest
[ 71%] Built target iptctest
Scanning dependencies of target key-test
[ 72%] Building CXX object samples/CMakeFiles/key-test.dir/key-test.cpp.o
Linking CXX executable key-test
[ 72%] Built target key-test
Scanning dependencies of target largeiptc-test
[ 73%] Building CXX object samples/CMakeFiles/largeiptc-test.dir/largeiptc-test.cpp.o
Linking CXX executable largeiptc-test
[ 73%] Built target largeiptc-test
Scanning dependencies of target mmap-test
[ 74%] Building CXX object samples/CMakeFiles/mmap-test.dir/mmap-test.cpp.o
Linking CXX executable mmap-test
[ 74%] Built target mmap-test
Scanning dependencies of target prevtest
[ 75%] Building CXX object samples/CMakeFiles/prevtest.dir/prevtest.cpp.o
Linking CXX executable prevtest
[ 75%] Built target prevtest
Scanning dependencies of target stringto-test
[ 76%] Building CXX object samples/CMakeFiles/stringto-test.dir/stringto-test.cpp.o
Linking CXX executable stringto-test
[ 76%] Built target stringto-test
Scanning dependencies of target tiff-test
[ 76%] Building CXX object samples/CMakeFiles/tiff-test.dir/tiff-test.cpp.o
Linking CXX executable tiff-test
[ 76%] Built target tiff-test
Scanning dependencies of target werror-test
[ 76%] Building CXX object samples/CMakeFiles/werror-test.dir/werror-test.cpp.o
Linking CXX executable werror-test
[ 76%] Built target werror-test
Scanning dependencies of target write-test
[ 77%] Building CXX object samples/CMakeFiles/write-test.dir/write-test.cpp.o
Linking CXX executable write-test
[ 77%] Built target write-test
Scanning dependencies of target write2-test
[ 78%] Building CXX object samples/CMakeFiles/write2-test.dir/write2-test.cpp.o
Linking CXX executable write2-test
[ 78%] Built target write2-test
Scanning dependencies of target xmpparse
[ 79%] Building CXX object samples/CMakeFiles/xmpparse.dir/xmpparse.cpp.o
Linking CXX executable xmpparse
[ 79%] Built target xmpparse
Scanning dependencies of target xmpparser-test
[ 80%] Building CXX object samples/CMakeFiles/xmpparser-test.dir/xmpparser-test.cpp.o
Linking CXX executable xmpparser-test
[ 80%] Built target xmpparser-test
Scanning dependencies of target xmpsample
[ 81%] Building CXX object samples/CMakeFiles/xmpsample.dir/xmpsample.cpp.o
Linking CXX executable xmpsample
[ 81%] Built target xmpsample
Scanning dependencies of target translationsexiv2
[ 82%] Generating de.gmo
[ 83%] Generating es.gmo
[ 84%] Generating fi.gmo
[ 85%] Generating fr.gmo
[ 86%] Generating pl.gmo
[ 87%] Generating ru.gmo
[ 87%] Generating sk.gmo
[ 94%] Built target translationsexiv2
Scanning dependencies of target update_translations_exiv2
[100%] Built target update_translations_exiv2

Gilles Caulier

#12 Updated by Gilles Caulier about 5 years ago

Robin,

Using Win7 with MSVC 2010, there are some problems :

1/ if i use cm.bat, it don't detect iconv library (it's installed on my KDE-windows dir - C:\KDE)

2/ cm.bat do not create a dedicated "build" su-dir in exiv2 source code tree-view. This bring a nmake building problem

C:\Devel\exiv2>.\cm.bat 2010
cmake CMakeLists.txt G "Visual Studio 10"
-
Check for working C compiler using: Visual Studio 10
-- Check for working C compiler using: Visual Studio 10 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 10
-- Check for working CXX compiler using: Visual Studio 10 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Build flags:
-- 'CMAKE_C_FLAGS_DEBUG': /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- 'CMAKE_C_FLAGS_MINSIZEREL': /MD /O1 /Ob1 /D NDEBUG
-- 'CMAKE_C_FLAGS_RELEASE': /MD /O2 /Ob2 /D NDEBUG
-- 'CMAKE_C_FLAGS_RELWITHDEBINFO': /MD /Zi /O2 /Ob1 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_DEBUG': /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- 'CMAKE_CXX_FLAGS_MINSIZEREL': /MD /O1 /Ob1 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_RELEASE': /MD /O2 /Ob2 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_RELWITHDEBINFO': /MD /Zi /O2 /Ob1 /D NDEBUG
--
-- MSVC > forcing use of dynamically-linked runtime.
-
Build flags:
-- 'CMAKE_C_FLAGS_DEBUG': /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- 'CMAKE_C_FLAGS_MINSIZEREL': /MD /O1 /D NDEBUG
-- 'CMAKE_C_FLAGS_RELEASE': /MD /O2 /D NDEBUG
-- 'CMAKE_C_FLAGS_RELWITHDEBINFO': /MD /Zi /O2 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_DEBUG': /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- 'CMAKE_CXX_FLAGS_MINSIZEREL': /MD /O1 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_RELEASE': /MD /O2 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_RELWITHDEBINFO': /MD /Zi /O2 /D NDEBUG
--
-- Performing Test ICONV_COMPILES
-- Performing Test ICONV_COMPILES - Failed
-- Could NOT find ICONV (missing: ICONV_TEST ICONV_INCLUDE_DIR ICONV_COMPILES)
-- Found ZLIB: ../../zlib-1.2.7/$(ConfigurationName)/zlib
-- Found EXPAT: ../../expat-2.1.0/$(ConfigurationName)/expat
-- Could NOT find ICONV (missing: ICONV_TEST ICONV_INCLUDE_DIR ICONV_COMPILES)
-- Looking for inttypes.h
-- Looking for inttypes.h - not found
-- Looking for libintl.h
-- Looking for libintl.h - not found
-- Looking for malloc.h
-- Looking for malloc.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for iconv.h
-- Looking for iconv.h - not found
-- Looking for stdbool.h
-- Looking for stdbool.h - not found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for strings.h
-- Looking for strings.h - not found
-- Looking for unistd.h
-- Looking for unistd.h - not found
-- Looking for wchar.h
-- Looking for wchar.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for sys/mman.h
-- Looking for sys/mman.h - not found
-- Looking for process.h
-- Looking for process.h - found
-- Looking for alarm
-- Looking for alarm - not found
-- Looking for gmtime_r
-- Looking for gmtime_r - not found
-- Looking for malloc
-- Looking for malloc - found
-- Looking for memset
-- Looking for memset - found
-- Looking for mmap
-- Looking for mmap - not found
-- Looking for munmap
-- Looking for munmap - not found
-- Looking for realloc
-- Looking for realloc - found
-- Looking for strchr
-- Looking for strchr - found
-- Looking for strchr_r
-- Looking for strchr_r - not found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for strerror_r
-- Looking for strerror_r - not found
-- Looking for strtol
-- Looking for strtol - found
-- Looking for timegm
-- Looking for timegm - not found
-- Looking for vprintf
-- Looking for vprintf - found
-- None: /DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc /GR
-- Debug: /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- Release: /MD /O2 /D NDEBUG
-- RelWithDebInfo: /MD /Zi /O2 /D NDEBUG
-- MinSizeRel: /MD /O1 /D NDEBUG
-- Performing Test STRERROR_R_CHAR_P
-- Performing Test STRERROR_R_CHAR_P - Failed
-- Performing Test TIME_WITH_SYS_TIME
-- Performing Test TIME_WITH_SYS_TIME - Failed
-- ------------------------------------------------------------------
-- exiv2 0.23 configure results <http://www.exiv2.org>
-- Building PNG support: YES
-- Building shared library: YES
-- XMP metadata support: YES
-- Building static libxmp: YES
-- Native language support: YES
-- Conversion of Windows XP tags: YES
-- Nikon lens database: YES
-- Commercial build: NO
-- Build the unit tests: YES
-- Building translations files: YES
-- ------------------------------------------------------------------
-- MSVC > forcing use of dynamically-linked runtime.
-
MSVC > forcing use of dynamically-linked runtime.
-
MSVC > forcing use of dynamically-linked runtime.
-
Configuring done
-- Generating done
-- Build files have been written to: C:/Devel/exiv2
C:\Devel\exiv2>
C:\Devel\exiv2># nmake

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.

makefile(100) : fatal error U1000: syntax error : ')' missing in macro invocation
Stop.
C:\Devel\exiv2>

I recommend highly to store build file outside source code.

3/ If i use my bootstrap-msvc.bat script from digiKam project, to configure cmake, iconv lib is found and build dir is created as expected:

C:\Devel\exiv2># .\bootstrap.msvc.bat
-- The C compiler identification is MSVC
-- The CXX compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1600
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check for working C compiler: c:/Program Files/Microsoft Visual Studio 10.0/VC/bin/cl.exe
-- Check for working C compiler: c:/Program Files/Microsoft Visual Studio 10.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: c:/Program Files/Microsoft Visual Studio 10.0/VC/bin/cl.exe
-- Check for working CXX compiler: c:/Program Files/Microsoft Visual Studio 10.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Build flags:
-- 'CMAKE_C_FLAGS_DEBUG': /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- 'CMAKE_C_FLAGS_MINSIZEREL': /MD /O1 /Ob1 /D NDEBUG
-- 'CMAKE_C_FLAGS_RELEASE': /MD /O2 /Ob2 /D NDEBUG
-- 'CMAKE_C_FLAGS_RELWITHDEBINFO': /MD /Zi /O2 /Ob1 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_DEBUG': /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- 'CMAKE_CXX_FLAGS_MINSIZEREL': /MD /O1 /Ob1 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_RELEASE': /MD /O2 /Ob2 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_RELWITHDEBINFO': /MD /Zi /O2 /Ob1 /D NDEBUG
--
-- MSVC > forcing use of dynamically-linked runtime.
-
Build flags:
-- 'CMAKE_C_FLAGS_DEBUG': /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- 'CMAKE_C_FLAGS_MINSIZEREL': /MD /O1 /D NDEBUG
-- 'CMAKE_C_FLAGS_RELEASE': /MD /O2 /D NDEBUG
-- 'CMAKE_C_FLAGS_RELWITHDEBINFO': /MD /Zi /O2 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_DEBUG': /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- 'CMAKE_CXX_FLAGS_MINSIZEREL': /MD /O1 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_RELEASE': /MD /O2 /D NDEBUG
-- 'CMAKE_CXX_FLAGS_RELWITHDEBINFO': /MD /Zi /O2 /D NDEBUG
--
-- Looking for iconv_open
-- Looking for iconv_open - not found
-- Performing Test ICONV_COMPILES
-- Performing Test ICONV_COMPILES - Success
-- Found ICONV: C:/KDE/lib/iconv.lib
-- Performing Test ICONV_ACCEPTS_NONCONST_INPUT
-- Performing Test ICONV_ACCEPTS_NONCONST_INPUT - Failed
-- Performing Test ICONV_ACCEPTS_CONST_INPUT
-- Performing Test ICONV_ACCEPTS_CONST_INPUT - Success
-- Found ZLIB: ../../zlib-1.2.7/$(ConfigurationName)/zlib
-- Found EXPAT: C:/KDE/lib/expat.lib
-- ICONV_LIBRARIES : C:/KDE/lib/iconv.lib
ICONV_ACCEPTS_CONST_INPUT : yes
-- Looking for inttypes.h
-- Looking for inttypes.h - not found
-- Looking for libintl.h
-- Looking for libintl.h - not found
-- Looking for malloc.h
-- Looking for malloc.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for iconv.h
-- Looking for iconv.h - found
-- Looking for stdbool.h
-- Looking for stdbool.h - not found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for strings.h
-- Looking for strings.h - not found
-- Looking for unistd.h
-- Looking for unistd.h - not found
-- Looking for wchar.h
-- Looking for wchar.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for sys/mman.h
-- Looking for sys/mman.h - not found
-- Looking for process.h
-- Looking for process.h - found
-- Looking for alarm
-- Looking for alarm - not found
-- Looking for gmtime_r
-- Looking for gmtime_r - not found
-- Looking for malloc
-- Looking for malloc - found
-- Looking for memset
-- Looking for memset - found
-- Looking for mmap
-- Looking for mmap - not found
-- Looking for munmap
-- Looking for munmap - not found
-- Looking for realloc
-- Looking for realloc - found
-- Looking for strchr
-- Looking for strchr - found
-- Looking for strchr_r
-- Looking for strchr_r - not found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for strerror_r
-- Looking for strerror_r - not found
-- Looking for strtol
-- Looking for strtol - found
-- Looking for timegm
-- Looking for timegm - not found
-- Looking for vprintf
-- Looking for vprintf - found
-- None: /DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc /GR
-- Debug: /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- Release: /MD /O2 /D NDEBUG
-- RelWithDebInfo: /MD /Zi /O2 /D NDEBUG
-- MinSizeRel: /MD /O1 /D NDEBUG
-- Performing Test STRERROR_R_CHAR_P
-- Performing Test STRERROR_R_CHAR_P - Failed
-- Performing Test TIME_WITH_SYS_TIME
-- Performing Test TIME_WITH_SYS_TIME - Failed
-- ------------------------------------------------------------------
-- exiv2 0.23 configure results <http://www.exiv2.org>
-- Building PNG support: YES
-- Building shared library: YES
-- XMP metadata support: YES
-- Building static libxmp: YES
-- Native language support: YES
-- Conversion of Windows XP tags: YES
-- Nikon lens database: YES
-- Commercial build: NO
-- Build the unit tests: YES
-- Building translations files: YES
-- ------------------------------------------------------------------
-- MSVC > forcing use of dynamically-linked runtime.
-
MSVC > forcing use of dynamically-linked runtime.
-
MSVC > forcing use of dynamically-linked runtime.
-
Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:

DIGIKAMSC_COMPILE_DOC
DIGIKAMSC_USE_PRIVATE_KDEGRAPHICS
ENABLE_LCMS2
KDE4_BUILD_TESTS

-- Build files have been written to: C:/Devel/exiv2/build
C:\Devel\exiv2># NMAKE

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.

Scanning dependencies of target xmp
[ 1%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/ExpatAdapter.cpp.obj
ExpatAdapter.cpp
[ 2%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/MD5.cpp.obj
MD5.cpp
[ 2%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/ParseRDF.cpp.obj
ParseRDF.cpp
[ 3%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/UnicodeConversions.cpp.obj
UnicodeConversions.cpp
[ 4%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPIterator.cpp.obj
WXMPIterator.cpp
[ 5%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPMeta.cpp.obj
WXMPMeta.cpp
[ 6%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPUtils.cpp.obj
WXMPUtils.cpp
[ 7%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XML_Node.cpp.obj
XML_Node.cpp
[ 7%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPCore_Impl.cpp.obj
XMPCore_Impl.cpp
[ 8%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPIterator.cpp.obj
XMPIterator.cpp
[ 9%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-GetSet.cpp.obj
XMPMeta-GetSet.cpp
[ 10%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-Parse.cpp.obj
XMPMeta-Parse.cpp
[ 11%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-Serialize.cpp.obj
XMPMeta-Serialize.cpp
[ 11%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta.cpp.obj
XMPMeta.cpp
[ 12%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPUtils-FileInfo.cpp.obj
XMPUtils-FileInfo.cpp
[ 13%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPUtils.cpp.obj
XMPUtils.cpp
Linking CXX static library ..\bin\Win32\Dynamic\xmp.lib
[ 13%] Built target xmp
Scanning dependencies of target exiv2
[ 14%] Building CXX object src/CMakeFiles/exiv2.dir/basicio.cpp.obj
basicio.cpp
[ 15%] Building CXX object src/CMakeFiles/exiv2.dir/bmpimage.cpp.obj
bmpimage.cpp
[ 16%] Building CXX object src/CMakeFiles/exiv2.dir/canonmn.cpp.obj
canonmn.cpp
[ 17%] Building CXX object src/CMakeFiles/exiv2.dir/convert.cpp.obj
convert.cpp
[ 17%] Building CXX object src/CMakeFiles/exiv2.dir/cr2image.cpp.obj
cr2image.cpp
[ 18%] Building CXX object src/CMakeFiles/exiv2.dir/crwedit.cpp.obj
crwedit.cpp
[ 19%] Building CXX object src/CMakeFiles/exiv2.dir/crwimage.cpp.obj
crwimage.cpp
[ 20%] Building CXX object src/CMakeFiles/exiv2.dir/datasets.cpp.obj
datasets.cpp
[ 21%] Building CXX object src/CMakeFiles/exiv2.dir/easyaccess.cpp.obj
easyaccess.cpp
[ 22%] Building CXX object src/CMakeFiles/exiv2.dir/epsimage.cpp.obj
epsimage.cpp
[ 22%] Building CXX object src/CMakeFiles/exiv2.dir/error.cpp.obj
error.cpp
[ 23%] Building CXX object src/CMakeFiles/exiv2.dir/exif.cpp.obj
exif.cpp
[ 24%] Building CXX object src/CMakeFiles/exiv2.dir/futils.cpp.obj
futils.cpp
[ 25%] Building CXX object src/CMakeFiles/exiv2.dir/fujimn.cpp.obj
fujimn.cpp
[ 26%] Building CXX object src/CMakeFiles/exiv2.dir/gifimage.cpp.obj
gifimage.cpp
[ 26%] Building CXX object src/CMakeFiles/exiv2.dir/image.cpp.obj
image.cpp
[ 27%] Building CXX object src/CMakeFiles/exiv2.dir/iptc.cpp.obj
iptc.cpp
[ 28%] Building CXX object src/CMakeFiles/exiv2.dir/jp2image.cpp.obj
jp2image.cpp
[ 29%] Building CXX object src/CMakeFiles/exiv2.dir/jpgimage.cpp.obj
jpgimage.cpp
[ 30%] Building CXX object src/CMakeFiles/exiv2.dir/makernote.cpp.obj
makernote.cpp
[ 30%] Building CXX object src/CMakeFiles/exiv2.dir/metadatum.cpp.obj
metadatum.cpp
[ 31%] Building CXX object src/CMakeFiles/exiv2.dir/minoltamn.cpp.obj
minoltamn.cpp
[ 32%] Building CXX object src/CMakeFiles/exiv2.dir/mrwimage.cpp.obj
mrwimage.cpp
[ 33%] Building CXX object src/CMakeFiles/exiv2.dir/nikonmn.cpp.obj
nikonmn.cpp
[ 34%] Building CXX object src/CMakeFiles/exiv2.dir/olympusmn.cpp.obj
olympusmn.cpp
[ 35%] Building CXX object src/CMakeFiles/exiv2.dir/orfimage.cpp.obj
orfimage.cpp
[ 35%] Building CXX object src/CMakeFiles/exiv2.dir/panasonicmn.cpp.obj
panasonicmn.cpp
[ 36%] Building CXX object src/CMakeFiles/exiv2.dir/pentaxmn.cpp.obj
pentaxmn.cpp
[ 37%] Building CXX object src/CMakeFiles/exiv2.dir/pgfimage.cpp.obj
pgfimage.cpp
[ 38%] Building CXX object src/CMakeFiles/exiv2.dir/preview.cpp.obj
preview.cpp
[ 39%] Building CXX object src/CMakeFiles/exiv2.dir/properties.cpp.obj
properties.cpp
[ 39%] Building CXX object src/CMakeFiles/exiv2.dir/psdimage.cpp.obj
psdimage.cpp
[ 40%] Building CXX object src/CMakeFiles/exiv2.dir/rafimage.cpp.obj
rafimage.cpp
[ 41%] Building CXX object src/CMakeFiles/exiv2.dir/rw2image.cpp.obj
rw2image.cpp
[ 42%] Building CXX object src/CMakeFiles/exiv2.dir/samsungmn.cpp.obj
samsungmn.cpp
[ 43%] Building CXX object src/CMakeFiles/exiv2.dir/sigmamn.cpp.obj
sigmamn.cpp
[ 43%] Building CXX object src/CMakeFiles/exiv2.dir/sonymn.cpp.obj
sonymn.cpp
[ 44%] Building CXX object src/CMakeFiles/exiv2.dir/tags.cpp.obj
tags.cpp
[ 45%] Building CXX object src/CMakeFiles/exiv2.dir/tgaimage.cpp.obj
tgaimage.cpp
[ 46%] Building CXX object src/CMakeFiles/exiv2.dir/tiffcomposite.cpp.obj
tiffcomposite.cpp
[ 47%] Building CXX object src/CMakeFiles/exiv2.dir/tiffimage.cpp.obj
tiffimage.cpp
[ 48%] Building CXX object src/CMakeFiles/exiv2.dir/tiffvisitor.cpp.obj
tiffvisitor.cpp
[ 48%] Building CXX object src/CMakeFiles/exiv2.dir/types.cpp.obj
types.cpp
[ 49%] Building CXX object src/CMakeFiles/exiv2.dir/value.cpp.obj
value.cpp
[ 50%] Building CXX object src/CMakeFiles/exiv2.dir/version.cpp.obj
version.cpp
[ 51%] Building CXX object src/CMakeFiles/exiv2.dir/xmp.cpp.obj
xmp.cpp
[ 52%] Building CXX object src/CMakeFiles/exiv2.dir/xmpsidecar.cpp.obj
xmpsidecar.cpp
[ 52%] Building CXX object src/CMakeFiles/exiv2.dir/pngchunk.cpp.obj
pngchunk.cpp
[ 53%] Building CXX object src/CMakeFiles/exiv2.dir/pngimage.cpp.obj
pngimage.cpp
[ 54%] Building C object src/CMakeFiles/exiv2.dir/localtime.c.obj
localtime.c
[ 55%] Building C object src/CMakeFiles/exiv2.dir/getopt_win32.c.obj
getopt_win32.c
Linking CXX shared library ..\bin\Win32\Dynamic\exiv2.dll
LINK : fatal error LNK1104: cannot open file '../../zlib-1.2.7//zlib.lib'
LINK Pass 1 failed. with 1104
NMAKE : fatal error U1077: '"C:\Program Files\CMake 2.8\bin\cmake.exe"' : return code '0xffffffff'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
C:\Devel\exiv2\build>
C:\Devel\exiv2>

... but it faild to link with zlib, installed on my KDE-win dir. I'm sure to have already tested this env in the past with success. Why it try to link with '../../zlib-1.2.7//zlib.lib' ? My zlib dir is this one :

C:\Devel\exiv2>dir C:\KDE\lib\z*
Le volume dans le lecteur C n'a pas de nom.
Le numéro de série du volume est 14E6-1F05

Répertoire de C:\KDE\lib

15/03/2012 13:28 14 310 zlib.lib
1 fichier(s) 14 310 octets
0 Rép(s) 60 608 335 872 octets libres
C:\Devel\exiv2>

Gilles Caulier

#13 Updated by Gilles Caulier about 5 years ago

No problem under MAC OSX with XCode and Macports :

bash-3.2$ ./bootstrap.macports
Installing to /opt/local for target i386 with build mode debugfull
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Checking whether C compiler has isysroot
-
Checking whether C compiler has isysroot - yes
-
Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Checking whether CXX compiler has isysroot
-
Checking whether CXX compiler has isysroot - yes
-
Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for iconv_open
-- Looking for iconv_open - not found
-- Performing Test ICONV_COMPILES
-- Performing Test ICONV_COMPILES - Success
-- Found ICONV: /opt/local/lib/libiconv.dylib
-- Performing Test ICONV_ACCEPTS_NONCONST_INPUT
-- Performing Test ICONV_ACCEPTS_NONCONST_INPUT - Success
-- Performing Test ICONV_ACCEPTS_CONST_INPUT
-- Performing Test ICONV_ACCEPTS_CONST_INPUT - Failed
-- Found ZLIB: /opt/local/lib/libz.dylib (found version "1.2.7")
-- Found EXPAT: /opt/local/lib/libexpat.dylib
-- ICONV_LIBRARIES : /opt/local/lib/libiconv.dylib
-- Program msgfmt found (/opt/local/bin/msgfmt)
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for libintl.h
-- Looking for libintl.h - found
-- Looking for malloc.h
-- Looking for malloc.h - not found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for iconv.h
-- Looking for iconv.h - found
-- Looking for stdbool.h
-- Looking for stdbool.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for wchar.h
-- Looking for wchar.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for sys/mman.h
-- Looking for sys/mman.h - found
-- Looking for process.h
-- Looking for process.h - not found
-- Looking for alarm
-- Looking for alarm - found
-- Looking for gmtime_r
-- Looking for gmtime_r - found
-- Looking for malloc
-- Looking for malloc - found
-- Looking for memset
-- Looking for memset - found
-- Looking for mmap
-- Looking for mmap - found
-- Looking for munmap
-- Looking for munmap - found
-- Looking for realloc
-- Looking for realloc - found
-- Looking for strchr
-- Looking for strchr - found
-- Looking for strchr_r
-- Looking for strchr_r - not found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for strerror_r
-- Looking for strerror_r - found
-- Looking for strtol
-- Looking for strtol - found
-- Looking for timegm
-- Looking for timegm - found
-- Looking for vprintf
-- Looking for vprintf - found
-- None:
-- Debug: g
-
Release: O3 -DNDEBUG
-
RelWithDebInfo: O2 -g
-
MinSizeRel: Os -DNDEBUG
-
Looking for _Bool
-- Looking for _Bool - not found.
-- Performing Test TM_IN_SYS_TIME
-- Performing Test TM_IN_SYS_TIME - Success
-- Performing Test STRERROR_R_CHAR_P
-- Performing Test STRERROR_R_CHAR_P - Success
-- Performing Test TIME_WITH_SYS_TIME
-- Performing Test TIME_WITH_SYS_TIME - Success
-- ------------------------------------------------------------------
-- exiv2 0.23 configure results <http://www.exiv2.org>
-- Building PNG support: YES
-- Building shared library: YES
-- XMP metadata support: YES
-- Building static libxmp: YES
-- Native language support: YES
-- Conversion of Windows XP tags: YES
-- Nikon lens database: YES
-- Commercial build: NO
-- Build the unit tests: YES
-- Building translations files: YES
-- ------------------------------------------------------------------
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:

BUNDLE_INSTALL_DIR
DIGIKAMSC_COMPILE_DOC
DIGIKAMSC_USE_PRIVATE_KDEGRAPHICS
ENABLE_LCMS2
KDE4_BUILD_TESTS
KDE_DISTRIBUTION_TEXT
QT_LIBRARY_DIR
QT_QMAKE_EXECUTABLE
QT_QT_INCLUDE_DIR

-- Build files have been written to: /Users/gilles/Devel/exiv2/build

bash-3.2$
bash-3.2$ make
Scanning dependencies of target xmp
[ 1%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/ExpatAdapter.cpp.o
[ 2%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/MD5.cpp.o
[ 3%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/ParseRDF.cpp.o
[ 4%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/UnicodeConversions.cpp.o
[ 4%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPIterator.cpp.o
[ 5%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPMeta.cpp.o
[ 6%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPUtils.cpp.o
[ 7%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XML_Node.cpp.o
[ 8%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPCore_Impl.cpp.o
[ 9%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPIterator.cpp.o
[ 10%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-GetSet.cpp.o
[ 10%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-Parse.cpp.o
[ 11%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-Serialize.cpp.o
[ 12%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta.cpp.o
[ 13%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPUtils-FileInfo.cpp.o
[ 14%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPUtils.cpp.o
Linking CXX static library libxmp.a
[ 14%] Built target xmp
Scanning dependencies of target exiv2
[ 15%] Building CXX object src/CMakeFiles/exiv2.dir/basicio.cpp.o
[ 15%] Building CXX object src/CMakeFiles/exiv2.dir/bmpimage.cpp.o
[ 16%] Building CXX object src/CMakeFiles/exiv2.dir/canonmn.cpp.o
[ 17%] Building CXX object src/CMakeFiles/exiv2.dir/convert.cpp.o
[ 18%] Building CXX object src/CMakeFiles/exiv2.dir/cr2image.cpp.o
[ 19%] Building CXX object src/CMakeFiles/exiv2.dir/crwedit.cpp.o
[ 20%] Building CXX object src/CMakeFiles/exiv2.dir/crwimage.cpp.o
[ 21%] Building CXX object src/CMakeFiles/exiv2.dir/datasets.cpp.o
[ 21%] Building CXX object src/CMakeFiles/exiv2.dir/easyaccess.cpp.o
[ 22%] Building CXX object src/CMakeFiles/exiv2.dir/epsimage.cpp.o
[ 23%] Building CXX object src/CMakeFiles/exiv2.dir/error.cpp.o
[ 24%] Building CXX object src/CMakeFiles/exiv2.dir/exif.cpp.o
[ 25%] Building CXX object src/CMakeFiles/exiv2.dir/futils.cpp.o
[ 26%] Building CXX object src/CMakeFiles/exiv2.dir/fujimn.cpp.o
[ 27%] Building CXX object src/CMakeFiles/exiv2.dir/gifimage.cpp.o
[ 27%] Building CXX object src/CMakeFiles/exiv2.dir/image.cpp.o
[ 28%] Building CXX object src/CMakeFiles/exiv2.dir/iptc.cpp.o
[ 29%] Building CXX object src/CMakeFiles/exiv2.dir/jp2image.cpp.o
[ 30%] Building CXX object src/CMakeFiles/exiv2.dir/jpgimage.cpp.o
[ 31%] Building CXX object src/CMakeFiles/exiv2.dir/makernote.cpp.o
[ 32%] Building CXX object src/CMakeFiles/exiv2.dir/metadatum.cpp.o
[ 33%] Building CXX object src/CMakeFiles/exiv2.dir/minoltamn.cpp.o
[ 34%] Building CXX object src/CMakeFiles/exiv2.dir/mrwimage.cpp.o
[ 34%] Building CXX object src/CMakeFiles/exiv2.dir/nikonmn.cpp.o
[ 35%] Building CXX object src/CMakeFiles/exiv2.dir/olympusmn.cpp.o
[ 36%] Building CXX object src/CMakeFiles/exiv2.dir/orfimage.cpp.o
[ 37%] Building CXX object src/CMakeFiles/exiv2.dir/panasonicmn.cpp.o
[ 38%] Building CXX object src/CMakeFiles/exiv2.dir/pentaxmn.cpp.o
[ 39%] Building CXX object src/CMakeFiles/exiv2.dir/pgfimage.cpp.o
[ 40%] Building CXX object src/CMakeFiles/exiv2.dir/preview.cpp.o
[ 40%] Building CXX object src/CMakeFiles/exiv2.dir/properties.cpp.o
[ 41%] Building CXX object src/CMakeFiles/exiv2.dir/psdimage.cpp.o
[ 42%] Building CXX object src/CMakeFiles/exiv2.dir/rafimage.cpp.o
[ 43%] Building CXX object src/CMakeFiles/exiv2.dir/rw2image.cpp.o
[ 44%] Building CXX object src/CMakeFiles/exiv2.dir/samsungmn.cpp.o
[ 45%] Building CXX object src/CMakeFiles/exiv2.dir/sigmamn.cpp.o
[ 46%] Building CXX object src/CMakeFiles/exiv2.dir/sonymn.cpp.o
[ 46%] Building CXX object src/CMakeFiles/exiv2.dir/tags.cpp.o
[ 47%] Building CXX object src/CMakeFiles/exiv2.dir/tgaimage.cpp.o
[ 48%] Building CXX object src/CMakeFiles/exiv2.dir/tiffcomposite.cpp.o
[ 49%] Building CXX object src/CMakeFiles/exiv2.dir/tiffimage.cpp.o
[ 50%] Building CXX object src/CMakeFiles/exiv2.dir/tiffvisitor.cpp.o
[ 51%] Building CXX object src/CMakeFiles/exiv2.dir/types.cpp.o
[ 52%] Building CXX object src/CMakeFiles/exiv2.dir/value.cpp.o
[ 52%] Building CXX object src/CMakeFiles/exiv2.dir/version.cpp.o
[ 53%] Building CXX object src/CMakeFiles/exiv2.dir/xmp.cpp.o
[ 54%] Building CXX object src/CMakeFiles/exiv2.dir/xmpsidecar.cpp.o
[ 55%] Building CXX object src/CMakeFiles/exiv2.dir/pngchunk.cpp.o
[ 56%] Building CXX object src/CMakeFiles/exiv2.dir/pngimage.cpp.o
Linking CXX shared library libexiv2.dylib
[ 56%] Built target exiv2
Scanning dependencies of target exiv2bin
[ 57%] Building CXX object src/CMakeFiles/exiv2bin.dir/exiv2.cpp.o
[ 58%] Building CXX object src/CMakeFiles/exiv2bin.dir/actions.cpp.o
[ 59%] Building CXX object src/CMakeFiles/exiv2bin.dir/utils.cpp.o
Linking CXX executable exiv2
ld: warning: directory '/$(ConfigurationName)' following -L not found
[ 59%] Built target exiv2bin
Scanning dependencies of target metacopy
[ 60%] Building CXX object src/CMakeFiles/metacopy.dir/metacopy.cpp.o
[ 60%] Building CXX object src/CMakeFiles/metacopy.dir/utils.cpp.o
Linking CXX executable metacopy
ld: warning: directory '/$(ConfigurationName)' following -L not found
[ 60%] Built target metacopy
Scanning dependencies of target pathtest
[ 61%] Building CXX object src/CMakeFiles/pathtest.dir/path-test.cpp.o
[ 62%] Building CXX object src/CMakeFiles/pathtest.dir/utils.cpp.o
Linking CXX executable path-test
ld: warning: directory '/$(ConfigurationName)' following -L not found
[ 62%] Built target pathtest
Scanning dependencies of target taglist
[ 63%] Building CXX object src/CMakeFiles/taglist.dir/taglist.cpp.o
Linking CXX executable taglist
ld: warning: directory '/$(ConfigurationName)' following -L not found
[ 63%] Built target taglist
Scanning dependencies of target addmoddel
[ 63%] Building CXX object samples/CMakeFiles/addmoddel.dir/addmoddel.cpp.o
Linking CXX executable addmoddel
[ 63%] Built target addmoddel
Scanning dependencies of target convert-test
[ 64%] Building CXX object samples/CMakeFiles/convert-test.dir/convert-test.cpp.o
Linking CXX executable convert-test
[ 64%] Built target convert-test
Scanning dependencies of target easyaccess-test
[ 65%] Building CXX object samples/CMakeFiles/easyaccess-test.dir/easyaccess-test.cpp.o
Linking CXX executable easyaccess-test
[ 65%] Built target easyaccess-test
Scanning dependencies of target exifcomment
[ 66%] Building CXX object samples/CMakeFiles/exifcomment.dir/exifcomment.cpp.o
Linking CXX executable exifcomment
[ 66%] Built target exifcomment
Scanning dependencies of target exifdata-test
[ 67%] Building CXX object samples/CMakeFiles/exifdata-test.dir/exifdata-test.cpp.o
Linking CXX executable exifdata-test
[ 67%] Built target exifdata-test
Scanning dependencies of target exifprint
[ 68%] Building CXX object samples/CMakeFiles/exifprint.dir/exifprint.cpp.o
Linking CXX executable exifprint
[ 68%] Built target exifprint
Scanning dependencies of target iotest
[ 68%] Building CXX object samples/CMakeFiles/iotest.dir/iotest.cpp.o
Linking CXX executable iotest
[ 68%] Built target iotest
Scanning dependencies of target iptceasy
[ 69%] Building CXX object samples/CMakeFiles/iptceasy.dir/iptceasy.cpp.o
Linking CXX executable iptceasy
[ 69%] Built target iptceasy
Scanning dependencies of target iptcprint
[ 70%] Building CXX object samples/CMakeFiles/iptcprint.dir/iptcprint.cpp.o
Linking CXX executable iptcprint
[ 70%] Built target iptcprint
Scanning dependencies of target iptctest
[ 71%] Building CXX object samples/CMakeFiles/iptctest.dir/iptctest.cpp.o
Linking CXX executable iptctest
[ 71%] Built target iptctest
Scanning dependencies of target key-test
[ 72%] Building CXX object samples/CMakeFiles/key-test.dir/key-test.cpp.o
Linking CXX executable key-test
[ 72%] Built target key-test
Scanning dependencies of target largeiptc-test
[ 73%] Building CXX object samples/CMakeFiles/largeiptc-test.dir/largeiptc-test.cpp.o
Linking CXX executable largeiptc-test
[ 73%] Built target largeiptc-test
Scanning dependencies of target mmap-test
[ 74%] Building CXX object samples/CMakeFiles/mmap-test.dir/mmap-test.cpp.o
Linking CXX executable mmap-test
[ 74%] Built target mmap-test
Scanning dependencies of target prevtest
[ 75%] Building CXX object samples/CMakeFiles/prevtest.dir/prevtest.cpp.o
Linking CXX executable prevtest
[ 75%] Built target prevtest
Scanning dependencies of target stringto-test
[ 76%] Building CXX object samples/CMakeFiles/stringto-test.dir/stringto-test.cpp.o
Linking CXX executable stringto-test
[ 76%] Built target stringto-test
Scanning dependencies of target tiff-test
[ 76%] Building CXX object samples/CMakeFiles/tiff-test.dir/tiff-test.cpp.o
Linking CXX executable tiff-test
[ 76%] Built target tiff-test
Scanning dependencies of target werror-test
[ 76%] Building CXX object samples/CMakeFiles/werror-test.dir/werror-test.cpp.o
Linking CXX executable werror-test
[ 76%] Built target werror-test
Scanning dependencies of target write-test
[ 77%] Building CXX object samples/CMakeFiles/write-test.dir/write-test.cpp.o
Linking CXX executable write-test
[ 77%] Built target write-test
Scanning dependencies of target write2-test
[ 78%] Building CXX object samples/CMakeFiles/write2-test.dir/write2-test.cpp.o
Linking CXX executable write2-test
[ 78%] Built target write2-test
Scanning dependencies of target xmpparse
[ 79%] Building CXX object samples/CMakeFiles/xmpparse.dir/xmpparse.cpp.o
Linking CXX executable xmpparse
[ 79%] Built target xmpparse
Scanning dependencies of target xmpparser-test
[ 80%] Building CXX object samples/CMakeFiles/xmpparser-test.dir/xmpparser-test.cpp.o
Linking CXX executable xmpparser-test
[ 80%] Built target xmpparser-test
Scanning dependencies of target xmpsample
[ 81%] Building CXX object samples/CMakeFiles/xmpsample.dir/xmpsample.cpp.o
Linking CXX executable xmpsample
[ 81%] Built target xmpsample
Scanning dependencies of target translationsexiv2
[ 81%] Generating de.gmo
[ 81%] Generating es.gmo
[ 81%] Generating fi.gmo
[ 81%] Generating fr.gmo
[ 81%] Generating pl.gmo
[ 81%] Generating ru.gmo
[ 81%] Generating sk.gmo
[ 94%] Built target translationsexiv2
Scanning dependencies of target update_translations_exiv2
[100%] Built target update_translations_exiv2

bash-3.2$

Gilles Caulier

#14 Updated by Robin Mills almost 4 years ago

  • Target version changed from 1.0 to 0.25

Our CMake support on Linux and Mac is strong. 0.24 brings our first Visual Studio support for CMake. I hope to give this more attention for 0.25.

#15 Updated by Robin Mills almost 4 years ago

  • Target version changed from 0.25 to 1.0

Our CMake support for Linux/Mac/Cygwin is robust. Visual Studio is alpha quality. I hope to improve the Visual Studio CMake support to be robust for 0.25. However this is a long-term project and will not be completed for 0.25.

#16 Updated by Robin Mills about 2 years ago

  • Status changed from Assigned to New
  • Assignee deleted (Robin Mills)

#17 Updated by Robin Mills about 2 years ago

Under no circumstances will I do any further work on CMake/MSVC. I am overloaded. I appreciate that Daniel has provided some assistance and encouragement. However, I can do nothing more about this matter.

#18 Updated by Robin Mills about 1 year ago

  • Status changed from New to Closed
  • Assignee set to Robin Mills
  • Target version changed from 1.0 to 0.26
  • % Done changed from 80 to 100

This has been a lot of work, however it is now complete. The buildserver builds every night using CMake on MacOS-X/Linux/Cygwin/MSVC (32/64 2005/8/10/12/13/15). I don't like CMake/VisualStudio, however it's working reliably using the scripts in contrib/cmake/msvc. I intend to retain the msvc2005 solution/project files as they work well and are immediately familiar to Visual Studio Users.

Also available in: Atom PDF

Redmine Appliance - Powered by TurnKey Linux