#1226 Rename msvc2005 as msvc. msvc2003 will be removed from trunk when development of v0.27 begins.

v0.27.3
Robin Mills 9 years ago
parent 810d8674d7
commit a3f62e3d94

@ -1,4 +1,4 @@
@@@@@@@@@@@@@b ;mm /##Gilles###\ @@@Marco@@@@@b ;mm /##Gilles###\
j@@@#Robin", Brad /@@@Thomas@@@@Q j@@@#Robin", Brad /@@@Thomas@@@@Q
@@@# \ ## @@@b |@@@b @@@# \ ## @@@b |@@@b
@@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan @@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan
@ -9,7 +9,7 @@
@@@# ,@@##@@m @@@b @@@p @@C #@@#C @@@# ,@@##@@m @@@b @@@p @@C #@@#C
@@@# ,/ s@@# @@@@ @@@b Volker @Tuan@ @@@# ,/ s@@# @@@@ @@@b Volker @Tuan@
]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@# ]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@#
/@@@@@@@@@@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\ /@@Raphael@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
Exiv2 Exiv2
***** *****
@ -31,17 +31,17 @@ Building and Installing
You can build the libraries in the following ways: You can build the libraries in the following ways:
1 UNIX-like systems (including GNU/Linux, Mac OS X, Cygwin, MinGW) 1 UNIX-like systems (including GNU/Linux, MacOS-X, Cygwin (32 and 64), MinGW (32 and 64)
- general notes follow - general notes follow
- FAQ concerning Cygwin/MSYS and Mac OS X: - FAQ concerning Cygwin/MSYS and Mac OS X:
http://dev.exiv2.org/projects/exiv2/wiki/FAQ http://dev.exiv2.org/projects/exiv2/wiki/FAQ
2 Microsoft Visual C++ 2 Microsoft Visual C++
- see msvc2005/ReadMe.txt (32bit and 64bit build VC8/2005, 2008,2010,2012) - see msvc/ReadMe.txt (32bit and 64bit builds Visual Studio 2005,08,10,12,13,15)
- see msvc2003/ReadMe.txt (32bit build VC7.1/2003 2005,2008) - see msvc2003/ReadMe.txt (32bit build on Visual Studio 2003, 2005, 2008)
Caution msvc2003 is deprecated with v0.26 and will be removed Caution msvc2003 is deprecated with v0.26 and will be removed.
3 CMake (experimental support for cmake on all platforms) 3 CMake (support for cmake on all platforms except MinGW)
- see README-CMAKE for more information - see README-CMAKE for more information
To build a commercial version of the Exiv2 library, see also section To build a commercial version of the Exiv2 library, see also section
@ -53,10 +53,7 @@ build and install the library and utility:
$ ./configure $ ./configure
$ make $ make
$ sudo make install $ sudo make install (Cygwin/MinGW $ make install)
Users of Cygwin and MinGW can omit the 'sudo' to install:
$ make install
Caution: Caution:
If you downloaded the source code from the subversion repository, If you downloaded the source code from the subversion repository,
@ -65,7 +62,7 @@ Caution:
$ make config $ make config
$ ./configure $ ./configure
$ make $ make
$ sudo make install $ sudo make install (Cygwin/MinGW $ make install)
To build the sample applications: To build the sample applications:
@ -130,7 +127,6 @@ If you have problems building Exiv2 on UNIX-like systems, check the
generated config/config.mk and config/config.h files. You should *not* generated config/config.mk and config/config.h files. You should *not*
need to modify any Makefile directly, in particular not src/Makefile! need to modify any Makefile directly, in particular not src/Makefile!
Support Support
======= =======
@ -141,7 +137,6 @@ All project resources are accessible from the project website at
Please send feedback or queries to the Exiv2 forum. For new bug reports Please send feedback or queries to the Exiv2 forum. For new bug reports
and feature requests, please open an issue. and feature requests, please open an issue.
Linking your own code with Exiv2 Linking your own code with Exiv2
================================ ================================
@ -199,7 +194,7 @@ commercial version of the Exiv2 library.
To do this on Windows, compile the library with the preprocessor To do this on Windows, compile the library with the preprocessor
symbol EXV_COMMERCIAL_VERSION defined in: symbol EXV_COMMERCIAL_VERSION defined in:
msvc2003\include\exv_msvc.h msvc2003\include\exv_msvc.h
or msvc2005\include\exv_msvc.h or msvc\include\exv_msvc.h
On UNIX-like systems, run the configure On UNIX-like systems, run the configure
script with the options --enable-commercial --disable-nls script with the options --enable-commercial --disable-nls

@ -1,4 +1,4 @@
@@@@@@@@@@@@@b ;mm /##Gilles###\ @@@Marco@@@@@b ;mm /##Gilles###\
j@@@#Robin", Brad /@@@Thomas@@@@Q j@@@#Robin", Brad /@@@Thomas@@@@Q
@@@# \ ## @@@b |@@@b @@@# \ ## @@@b |@@@b
@@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan @@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan
@ -9,29 +9,34 @@
@@@# ,@@##@@m @@@b @@@p @@C #@@#C @@@# ,@@##@@m @@@b @@@p @@C #@@#C
@@@# ,/ s@@# @@@@ @@@b Volker @Tuan@ @@@# ,/ s@@# @@@@ @@@b Volker @Tuan@
]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@# ]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@#
/@@@@@@@@@@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\ /@@Raphael@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
NOTE: CMake is a cross-platform build system, to control the
compilation process using platform/compiler independent configuration files.
STATUS:
* CMake scripts are functional and used to perform the daily build on the buildserver. * CMake scripts are functional and used to perform the daily build on the buildserver
for MacOS-X, Cygwin, Linux and Visual Studio (2005, 8, 10, 12, 13 and 15)
The daily build on MinGW/32 is performed using autotools for Qt/Windows Users.
* The existing automake (./configure), and msvc2005 build files will continue * The existing automake (./configure) will continue to be supported by exiv2
to be supported by exiv2 for at least v0.27 (and probably longer) for at least v0.27 (and probably longer)
The msvc-2003 build files are deprecated and will not be supported after v0.26. The msvc2003 project/solutions files are deprecated and will not be supported after v0.26.
The msvc project/solutions files will continue to be supported by exiv2
for at least v0.27 (and probably longer)
Exiv2 will not build on MinGW (neither 32bit nor 64bit) Exiv2 is very difficult to build on MinGW with CMake.
This is discussed in TODO-CMAKE This is discussed in TODO-CMAKE
Robin Mills Robin Mills
robin@clanmills.com robin@clanmills.com
2016-09-23 2016-10-25
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Exiv2 uses cmake, a cross-platform build system, to control the
compilation process using platform/compiler independent configuration files.
TABLE OF CONTENTS TABLE OF CONTENTS
----------------- -----------------
@ -55,7 +60,7 @@ FAQ: http://www.cmake.org/Wiki/CMake_FAQ
2 Building and Installing on Linux 2 Building and Installing on Linux
================================== ==================================
This process also covers MacOS-X Terminal, Cygwin and MinGW users. This process overs MacOS-X, Linux and Cygwin.
a) From the command line a) From the command line
@ -64,7 +69,7 @@ file) to configure, build and install the library and utility:
$ mkdir build $ mkdir build
$ cd build $ cd build
$ cmake .. $ cmake .. -G "Unix Makefiles"
$ make $ make
$ make install $ make install
@ -117,7 +122,7 @@ b) Using the cmake GUI
exiv2 provides three build environment for users of Visual Studio: exiv2 provides three build environment for users of Visual Studio:
cmake: This environment cmake: This environment
msvc2005: 32 bit AND 64 bit build environment for MSVC 2005 and later (2008/10/12/13) msvc: 32 bit AND 64 bit build environment for MSVC 2005 and later (2005/2008/10/12/13/15)
msvc2003: 32 bit build environment for MSVC 2003 (deprecated after v0.26) msvc2003: 32 bit build environment for MSVC 2003 (deprecated after v0.26)
CMake doesn't build code. It generates build environments. CMake doesn't build code. It generates build environments.
@ -154,10 +159,9 @@ We have two contributed CMake Build Environments:
4 Building and installing for MinGW Users 4 Building and installing for MinGW Users
========================================= =========================================
CMake/MinGW has a number of serious issues. This will be reported to Kitware. CMake/MinGW has a number of serious issues. This will be reported to Kitware.
It is possible to use CMake/MinGW if you put in some effort. This is documented in TODO-CMAKE.
It is possible to use CMake/MinGW if you put in some effort. This is documented in TODO-CMAKE.
# That's all Folks # That's all Folks
## ##

@ -42,7 +42,7 @@ rem adding additional MSVC compilers (2008, 2010, 2012, etc) should be simple
rem and has not been done for expediency rem and has not been done for expediency
rem should only require: rem should only require:
rem 1 Invoke the appropriate vsvars32.bat script rem 1 Invoke the appropriate vsvars32.bat script
rem 2 Run devenv/upgrade rem 2 Run devenv/upgrade
rem 3 set Builder=2005 rem 3 set Builder=2005
rem and all should be good rem and all should be good
set BGOOD=0 set BGOOD=0
@ -59,7 +59,7 @@ if %Builder%==2003 (
if %Builder%==2005 ( if %Builder%==2005 (
call "C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat" call "C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
pushd msvc2005 pushd msvc
set BGOOD=1 set BGOOD=1
) )
@ -88,7 +88,7 @@ if %curl% == true if %libssh% == true if %openssl% == true set webready=true
if %webready% == true ( if %webready% == true (
copy/y exiv2-webready.sln e.sln copy/y exiv2-webready.sln e.sln
copy/y ..\include\exiv2\exv_msvc-webready.h ..\include\exiv2\exv_msvc.h copy/y ..\include\exiv2\exv_msvc-webready.h ..\include\exiv2\exv_msvc.h
) )
rem -- rem --
rem let the user know what's going on! rem let the user know what's going on!
@ -104,12 +104,12 @@ if %Win32%==true (
if %debug%==true ( if %debug%==true (
if %static%==true ( if %static%==true (
if %Builder%==2003 ( if %Builder%==2003 (
devenv e.sln %ACTION% "Debug" devenv e.sln %ACTION% "Debug"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/Debug' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/Debug'
) )
if %Builder%==2005 ( if %Builder%==2005 (
devenv e.sln %ACTION% "Debug|Win32" devenv e.sln %ACTION% "Debug|Win32"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2005/bin/win32/Debug' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/win32/Debug'
) )
) ) ) ) ) )
@ -117,12 +117,12 @@ if %Win32%==true (
if %release%==true ( if %release%==true (
if %static%==true ( if %static%==true (
if %Builder%==2003 ( if %Builder%==2003 (
devenv e.sln %ACTION% "Release" devenv e.sln %ACTION% "Release"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/Release' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/Release'
) )
if %Builder%==2005 ( if %Builder%==2005 (
devenv e.sln %ACTION% "Release|Win32" devenv e.sln %ACTION% "Release|Win32"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2005/bin/win32/Release' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/win32/Release'
) )
) ) ) ) ) )
@ -130,12 +130,12 @@ if %Win32%==true (
if %debug%==true ( if %debug%==true (
if %dll%==true ( if %dll%==true (
if %Builder%==2003 ( if %Builder%==2003 (
devenv e.sln %ACTION% "DebugDLL" devenv e.sln %ACTION% "DebugDLL"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/DebugDLL' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/DebugDLL'
) )
if %Builder%==2005 ( if %Builder%==2005 (
devenv e.sln %ACTION% "DebugDLL|Win32" devenv e.sln %ACTION% "DebugDLL|Win32"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2005/bin/win32/DebugDLL' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/win32/DebugDLL'
) )
) ) ) ) ) )
@ -143,41 +143,41 @@ if %Win32%==true (
if %release%==true ( if %release%==true (
if %dll%==true ( if %dll%==true (
if %Builder%==2003 ( if %Builder%==2003 (
devenv e.sln %ACTION% "ReleaseDLL" devenv e.sln %ACTION% "ReleaseDLL"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/ReleaseDLL' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2003/bin/ReleaseDLL'
) )
if %Builder%==2005 ( if %Builder%==2005 (
devenv e.sln %ACTION% "ReleaseDLL|Win32" devenv e.sln %ACTION% "ReleaseDLL|Win32"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2005/bin/win32/ReleaseDLL' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/win32/ReleaseDLL'
) )
) ) ) ) ) )
if %x64%==true ( if %x64%==true (
if %debug%==true ( if %debug%==true (
if %static%==true ( if %static%==true (
devenv e.sln %ACTION% "Debug|x64" devenv e.sln %ACTION% "Debug|x64"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2005/bin/x64/Debug' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/Debug'
) ) ) ) ) )
if %x64%==true ( if %x64%==true (
if %release%==true ( if %release%==true (
if %static%==true ( if %static%==true (
devenv e.sln %ACTION% "Release|x64" devenv e.sln %ACTION% "Release|x64"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2005/bin/x64/Release' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/Release'
) ) ) ) ) )
if %x64%==true ( if %x64%==true (
if %debug%==true ( if %debug%==true (
if %dll%==true ( if %dll%==true (
devenv e.sln %ACTION% "DebugDLL|x64" devenv e.sln %ACTION% "DebugDLL|x64"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2005/bin/x64/DebugDLL' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/DebugDLL'
) ) ) ) ) )
if %x64%==true ( if %x64%==true (
if %release%==true ( if %release%==true (
if %dll%==true ( if %dll%==true (
devenv e.sln %ACTION% "ReleaseDLL|x64" devenv e.sln %ACTION% "ReleaseDLL|x64"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc2005/bin/x64/ReleaseDLL' if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/ReleaseDLL'
) ) ) ) ) )
rem -- rem --
@ -187,12 +187,12 @@ popd
rem -- rem --
rem delete support libraries (with mozilla's native rm utility) rem delete support libraries (with mozilla's native rm utility)
if %Builder%==2003 msvc2005\tools\bin\rm.exe -rf ..\expat-2.0.1 ..\zlib-1.2.3 if %Builder%==2003 msvc\tools\bin\rm.exe -rf ..\expat-2.0.1 ..\zlib-1.2.3
if %Builder%==2005 msvc2005\tools\bin\rm.exe -rf ..\expat ..\zlib ..\openssl ..\libssh ..\curl if %Builder%==2005 msvc\tools\bin\rm.exe -rf ..\expat ..\zlib ..\openssl ..\libssh ..\curl
if %Builder%==2005 if EXIST openssl ( if %Builder%==2005 if EXIST openssl (
cd .. cd ..
cygwin64\bin\rm.exe -rf openssl cygwin64\bin\rm.exe -rf openssl
cd msvc2005 cd msvc
) )
rem That's all Folks! rem That's all Folks!

@ -1,54 +1,67 @@
contrib/cmake/msvc/ReadMe.txt @@@Marco@@@@@b ;mm /##Gilles###\
----------------------------- j@@@#Robin", Brad /@@@Thomas@@@@Q
@@@# \ ## @@@b |@@@b
@@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan
@@@# j@@@@, ]@@#/ '@@@# j@@@# ]@@^ ;@@@"
@@@Andreas@C "@@@p @@@" @@@b j@@@p @@b @@@#/
@@@#^7"7%#\ ^@@@@@#~ Benb 1@@@ {@# s@@@#
@@@# Niels @@@b @@@Q ]@# ;@@@#/
@@@# ,@@##@@m @@@b @@@p @@C #@@#C
@@@# ,/ s@@# @@@@ @@@b Volker @Tuan@
]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@#
/@@Raphael@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
exiv2/contrib/cmake/msvc/ReadMe.txt
-----------------------------------
How to use this How to use this
--------------- ---------------
1 Setting up your machine 1 Setting up your machine
You need cmake.exe, svn.exe and 7z.exe on your PATH. You need cmake.exe, svn.exe and 7z.exe on your PATH.
Please get "Windows" versions of cmake/svn/7z etc (NOT Cygwin or MinGW versions) Please get "Windows" versions of cmake/svn/7z etc (NOT Cygwin or MinGW versions)
You should initialize the Visual Studio environment You should initialize the Visual Studio environment
using the version of vcvars32.bat or vcvarsall.bat using the version of vcvars32.bat or vcvarsall.bat
installed with Visual Studio. For example: installed with Visual Studio. For example:
call "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\vcvars32.bat" call "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"
The batch file contrib\cmake\msvc\vcvars.bat is designed to take the pain The batch file contrib\cmake\msvc\vcvars.bat is designed to take the pain
out of this - provided Visual Studio is installed in %ProgramFiles(x86)% out of this - provided Visual Studio is installed in %ProgramFiles(x86)%
%ProgramFiles(x86)% is usually c:\Program Files (x86) %ProgramFiles(x86)% is usually c:\Program Files (x86)
vcvars 2005 # sets 2005 x86 vcvars 2005 # sets 2005 x86
vcvars 2010 64 # sets 2010 x86_amd64 vcvars 2010 64 # sets 2010 x86_amd64
2 Always build "out of source". I recommend: 2 Always build "out of source". I recommend:
cd <exiv2dir> cd <exiv2dir>
mkdir build mkdir build
+-------------------------------------------------------+ +-------------------------------------------------------+
| Never attempt to build in a directory with a space in | | Never attempt to build in a directory with a space in |
| the path name. Example c:\My Build Tree\exiv2\build | | the path name. Example c:\My Build Tree\exiv2\build |
+-------------------------------------------------------+ +-------------------------------------------------------+
Ensure that cmakeBuild.cmd and cmakeDefaults.cmd are on your path (eg your build directory) Ensure that cmakeBuild.cmd and cmakeDefaults.cmd are on your path (eg your build directory)
copy contrib\cmake\msvc\* build copy contrib\cmake\msvc\* build
cd build cd build
cmakeBuild --help cmakeBuild --help
You should never have reason to modify the code in cmakeBuild.cmd You should never have reason to modify the code in cmakeBuild.cmd
You may wish to change the defaults in cmakeDefaults.cmd You may wish to change the defaults in cmakeDefaults.cmd
You can change the defaults on the command-line (or modify cmakeDefaults.cmd) You can change the defaults on the command-line (or modify cmakeDefaults.cmd)
You can also change defaults using the dos set command. For example: You can also change defaults using the dos set command. For example:
set _CONFIG_=Debug set _CONFIG_=Debug
To unset an environment string, set _CONFIG_= To unset an environment string, set _CONFIG_=
For your first build, I recommend the command: For your first build, I recommend the command:
cmakeBuild --pause --verbose cmakeBuild --pause --verbose
This will print out a lot of information, and pause after each build step. This will print out a lot of information, and pause after each build step.
When you are building happily, you may prefer: When you are building happily, you may prefer:
cmakeBuild --silent cmakeBuild --silent
@ -69,38 +82,38 @@ How to use this
4 Building manually with CMake 4 Building manually with CMake
The cmake option -G Generator should be chosen for the version of Visual Studio installed. The cmake option -G Generator should be chosen for the version of Visual Studio installed.
cmake --help for more information cmake --help for more information
I personally always build/test with Visual Studio 2005 in 64 bits. I personally always build/test with Visual Studio 2005 in 64 bits.
The generator is: "Visual Studio 8 2005 Win64" The generator is: "Visual Studio 8 2005 Win64"
cd <exiv2dir> cd <exiv2dir>
mkdir ../build mkdir ../build
cd ../build cd ../build
rem download support libraries rem download support libraries
svn export svn://dev.exiv2.org/svn/team/libraries/zlib-1.2.8.tar.gz svn export svn://dev.exiv2.org/svn/team/libraries/zlib-1.2.8.tar.gz
svn export svn://dev.exiv2.org/svn/team/libraries/expat-2.1.0.tar.gz svn export svn://dev.exiv2.org/svn/team/libraries/expat-2.1.0.tar.gz
... ...
for webready for webready
you need curl-7.45.0 libssh-0.7.2 and openssl-1.0.1p you need curl-7.45.0 libssh-0.7.2 and openssl-1.0.1p
See below: "About webready support libraries (openssl, libssh and curl) See below: "About webready support libraries (openssl, libssh and curl)
... ...
rem create a temp directory and a dist (distribution) directory rem create a temp directory and a dist (distribution) directory
mkdir temp # build, compile and link in this directory mkdir temp # build, compile and link in this directory
mkdir dist # the output artifacts are stored here mkdir dist # the output artifacts are stored here
rem build zlib-1.2.8 rem build zlib-1.2.8
mkdir temp\zlib-1.2.8 mkdir temp\zlib-1.2.8
cd temp\zlib-1.2.8 cd temp\zlib-1.2.8
cmake -G "Visual Studio 8 2005 Win64" "-DCMAKE_INSTALL_PREFIX=..\..dist" ..\..\zlib-1.2.8 cmake -G "Visual Studio 8 2005 Win64" "-DCMAKE_INSTALL_PREFIX=..\..dist" ..\..\zlib-1.2.8
cmake --build . # TAKE CARE with expat-2.1.0 use: cmake --build . --target expat cmake --build . # TAKE CARE with expat-2.1.0 use: cmake --build . --target expat
cmake --build . --target install cmake --build . --target install
cd ..\.. cd ..\..
rem build expat-2.1.0 and other required libraries rem build expat-2.1.0 and other required libraries
rem build exiv2 rem build exiv2
mkdir temp\exiv2 mkdir temp\exiv2
cd temp\exiv2 cd temp\exiv2
@ -116,10 +129,10 @@ How to use this
a) openssl a) openssl
You cannot build openssl with CMake. However we have prebuilt binaries which You cannot build openssl with CMake. However we have prebuilt binaries which
you can download and extract into your build tree. you can download and extract into your build tree.
You will have to match the version to your compiler. You will have to match the version to your compiler.
In this example: vs2015/64 bit In this example: vs2015/64 bit
svn export svn://dev.exiv2.org/svn/team/libraries/openssl-1.0.1p-vs2015.7z svn export svn://dev.exiv2.org/svn/team/libraries/openssl-1.0.1p-vs2015.7z
7z x openssl-1.0.1p-vs2015.7z 7z x openssl-1.0.1p-vs2015.7z
xcopy/yesihq openssl-1.0.1p-vs2015\bin64 dist\bin" xcopy/yesihq openssl-1.0.1p-vs2015\bin64 dist\bin"
@ -132,26 +145,26 @@ How to use this
xcopy/yesihq openssl-1.0.1p-vs2008\bin dist\bin" xcopy/yesihq openssl-1.0.1p-vs2008\bin dist\bin"
xcopy/yesihq openssl-1.0.1p-vs2008\lib dist\bin" xcopy/yesihq openssl-1.0.1p-vs2008\lib dist\bin"
xcopy/yesihq openssl-1.0.1p-vs2008\include dist\include" xcopy/yesihq openssl-1.0.1p-vs2008\include dist\include"
The script contrib/cmake/msvc/cmakeOpenssl was used to create the vs2005.7z file The script contrib/cmake/msvc/cmakeOpenssl was used to create the vs2005.7z file
from a complete build performed by msvc2005/exiv2-webready.sln and openssl-1.0.1p source from a complete build performed by msvc/exiv2-webready.sln and openssl-1.0.1p source
b) curl b) curl
curl does not seem to build with CMake. curl does not seem to build with CMake.
It announces itself "the curl cmake build system is poorly maintained. Be aware" It announces itself "the curl cmake build system is poorly maintained. Be aware"
I have given up trying to get this to work and used nmake in the winbuild directory. I have given up trying to get this to work and used nmake in the winbuild directory.
For more information, read: winbuild\BUILD.WINDOWS.txt For more information, read: winbuild\BUILD.WINDOWS.txt
c) libssh c) libssh
Three changes have been made to libssh to build with VS2015, VS2008, VS2995 Three changes have been made to libssh to build with VS2015, VS2008, VS2995
These have been reported (with fixes) These have been reported (with fixes)
VS2015: https://red.libssh.org/issues/214 VS2015: https://red.libssh.org/issues/214
VS2005/8: https://red.libssh.org/issues/2205 VS2005/8: https://red.libssh.org/issues/2205
The fixes are included in svn://dev.exiv2.org/svn/team/libraries/libssh-0.7.2.tar.gz The fixes are included in svn://dev.exiv2.org/svn/team/libraries/libssh-0.7.2.tar.gz
A 'vanilla' version of libssh will may require those fixes to be applied. A 'vanilla' version of libssh will may require those fixes to be applied.
6 Build options 6 Build options
You can inspect CMake options by running grep OPTION on CMakeLists.txt in <exiv2dir> You can inspect CMake options by running grep OPTION on CMakeLists.txt in <exiv2dir>
C:\cygwin64\home\rmills\gnu\exiv2\build>cd ..\trunk C:\cygwin64\home\rmills\gnu\exiv2\build>cd ..\trunk
@ -178,7 +191,7 @@ How to use this
7 Running the test suite 7 Running the test suite
http://dev.exiv2.org/projects/exiv2/wiki/How_do_I_run_the_test_suite_for_Exiv2 http://dev.exiv2.org/projects/exiv2/wiki/How_do_I_run_the_test_suite_for_Exiv2
You can run the test-suite directly from cmakeBuild.cmd with the argument --test You can run the test-suite directly from cmakeBuild.cmd with the argument --test
You need cygwin's bash.exe to run the test suite. You need cygwin's bash.exe to run the test suite.
@ -186,55 +199,19 @@ How to use this
You can change the standard libraries. For example, to build with curl-7.39.0 You can change the standard libraries. For example, to build with curl-7.39.0
1) set _CURL_=curl-7.39.0 1) set _CURL_=curl-7.39.0
2) add curl-7.39.0.tar.gz in your build directory 2) add curl-7.39.0.tar.gz in your build directory
To change the version of openssl: To change the version of openssl:
1) set _OPENSSL_=openssl-1.0.1j 1) set _OPENSSL_=openssl-1.0.1j
2) add openssl-1.0.1j-vs2015.zip into your build directory 2) add openssl-1.0.1j-vs2015.zip into your build directory
9 Rebuilding with VS 2005/8/10/12/13/15 32/64 9 Rebuilding with VS 2005/8/10/12/13/15 32/64
The script cmakeBuildAll.cmd is provided for convenience: The script cmakeBuildAll.cmd is provided for convenience:
cmakeBuildAll.cmd --test > rebuildAll.txt cmakeBuildAll.cmd --test > rebuildAll.txt
To view progress, open another shell: tail -f rebuildAll.txt To view progress, open another shell: tail -f rebuildAll.txt
cmakeBuildAll.cmd takes about a hour if you don't specify --webready cmakeBuildAll.cmd takes about a hour if you don't specify --webready
12 build+test cycles of about 5 minutes each. 12 build+test cycles of about 5 minutes each.
With webready, 12 build+test cycles of 12 minutes = 2.5 hours With webready, 12 build+test cycles of 12 minutes = 2.5 hours
Status:
2015-12-07 Fixed libssh compiler issues for VS2005/8/15
Added openssl-1.0.1p-vs2005.7z
Polishing and documentation fixes
2015-12-05 Fixed --webready
2015-11-28 Added option -static
Build into: dist/2005/x64/dll/Release/{lib|bin|include}
2015-11-27 Minor changes. Solved 'cygwin tee' issue (redirect and tail -f)
Reinstalled MSVC 2010 and 2012 on laptop and retested.
Documentation update.
2015-11-26 Ready for use by others
Added options --test and --bash=c:\cygwin64\bin\bash.exe
Added script cmakeRebuildAll.cmd
Updated Documentation.
2015-11-19 "Work in Progress"
Added a dependency for 7z.exe to decompress archives.
Added downloading openssl
Updated documentation
2015-11-18 "Work in Progress"
Lots of simplification.
Removed need for cygwin.
Added user documentation to ReadMe.txt
More work required on webready support.
2015-11-17 "Work in Progress"
Added command-line parser
Building exiv2 with zlib and expat and exiv2
-webready = curl etc broken
2015-11-16 "Work in Progress" = Not working yet.
These script are not for public use at the moment by Daniel or anybody else.
Robin Mills Robin Mills
robin@clanmills.com robin@clanmills.com

@ -1,5 +1,5 @@
@echo off @echo off
rem I have been unable to find public builds of openssl for VS2005 rem I have been unable to find public builds of openssl for VS2005
rem this script is used to export openssl builds from VS rem this script is used to export openssl builds from VS
rem I am keeping this in our code base for future use, although I hope never to need it again! rem I am keeping this in our code base for future use, although I hope never to need it again!
rem this is a throw away script and not intended for public use rem this is a throw away script and not intended for public use
@ -12,8 +12,8 @@ set dst=\gnu\exiv2\team\libraries\%trg%\
call cmakeDefaults >NUL 2>NUL call cmakeDefaults >NUL 2>NUL
if ERRORLEVEL 1 echo *** cmakeDefaults failed *** && exit /b 1 if ERRORLEVEL 1 echo *** cmakeDefaults failed *** && exit /b 1
rem src=pre-built. Use msvc2005/exiv2-webready.sln openssl.vcproj to build 32/64 openssl Release and ReleaseDLL rem src=pre-built. Use msvc/exiv2-webready.sln openssl.vcproj to build 32/64 openssl Release and ReleaseDLL
set src=%_EXIV2_%\msvc2005\openssl\ set src=%_EXIV2_%\msvc\openssl\
if NOT EXIST %src%\x64\ReleaseDLL\ssl\openssl.cnf echo *** file %src%\x64\ReleaseDLL\ssl\openssl.cnf does not exist *** && exit /b 1 if NOT EXIST %src%\x64\ReleaseDLL\ssl\openssl.cnf echo *** file %src%\x64\ReleaseDLL\ssl\openssl.cnf does not exist *** && exit /b 1
if NOT EXIST %dst% echo "*** destination %dst% does not exist && exit /b 1 if NOT EXIST %dst% echo "*** destination %dst% does not exist && exit /b 1

@ -1,4 +1,4 @@
@@@@@@@@@@@@@b ;mm /##Gilles###\ @@@Marco@@@@@b ;mm /##Gilles###\
j@@@#Robin", Brad /@@@Thomas@@@@Q j@@@#Robin", Brad /@@@Thomas@@@@Q
@@@# \ ## @@@b |@@@b @@@# \ ## @@@b |@@@b
@@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan @@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan
@ -9,21 +9,19 @@
@@@# ,@@##@@m @@@b @@@p @@C #@@#C @@@# ,@@##@@m @@@b @@@p @@C #@@#C
@@@# ,/ s@@# @@@@ @@@b Volker @Tuan@ @@@# ,/ s@@# @@@@ @@@b Volker @Tuan@
]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@# ]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@#
/@@@@@@@@@@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\ /@@Raphael@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
exiv2\msvc\ReadMe.txt
---------------------
exiv2\msvc2005\ReadMe.txt
-------------------------
+-----------------------------------------------------------+ +-----------------------------------------------------------+
| msvc2005 builds 32bit and 64bit binaries | | msvc builds 32bit and 64bit binaries |
| with Visual Studio 2005/8/10/12/13/15 | | with Visual Studio 2005/8/10/12/13/15 |
| msvc2003 builds 32bit binaries | | msvc2003 builds 32bit binaries |
| with Visual Studio 2003/5/8 | | with Visual Studio 2003/5/8 |
+-----------------------------------------------------------+ +-----------------------------------------------------------+
Updated: 2015-10-09 Updated: 2015-10-25
Robin Mills Robin Mills
http://clanmills.com http://clanmills.com
@ -35,7 +33,7 @@ T A B L E o f C O N T E N T S
1 Build Instructions 1 Build Instructions
1.1 Tools 1.1 Tools
1.2 Install zlib and expat sources. 1.2 Install zlib and expat sources.
1.3 Open exiv2\msvc2005\exiv2.sln 1.3 Open exiv2\msvc\exiv2.sln
1.4 Configuring build options (such as video and webready) 1.4 Configuring build options (such as video and webready)
1.5 Building with exiv2-webready.sln 1.5 Building with exiv2-webready.sln
1.6 What is build 1.6 What is build
@ -96,7 +94,7 @@ T A B L E o f C O N T E N T S
You can obtain the libraries from http://clanmills.com/files/exiv2libs.zip (20mb) You can obtain the libraries from http://clanmills.com/files/exiv2libs.zip (20mb)
I copy those to the directory c:\exiv2libs I copy those to the directory c:\exiv2libs
The script msvc2005/copylibs.bat will copy them from c:\exiv2libs to the correct location The script msvc/copylibs.bat will copy them from c:\exiv2libs to the correct location
11/05/2014 07:26 AM <DIR> curl-7.39.0 11/05/2014 07:26 AM <DIR> curl-7.39.0
12/07/2014 09:18 AM <DIR> expat-2.1.0 12/07/2014 09:18 AM <DIR> expat-2.1.0
@ -115,7 +113,7 @@ T A B L E o f C O N T E N T S
openssh is available from https://www.openssl.org/source/ openssh is available from https://www.openssl.org/source/
libssh is available from https://www.libssh.org/get-it/ libssh is available from https://www.libssh.org/get-it/
1.3 Open exiv2\msvc2005\exiv2.sln 1.3 Open exiv2\msvc\exiv2.sln
Projects are zlib, expat, xmpsdk, exiv2lib, exiv2, addmoddel etc... Projects are zlib, expat, xmpsdk, exiv2lib, exiv2, addmoddel etc...
Build/Batch build... Select All, Build Build/Batch build... Select All, Build
- 36 projects (zlib, expat, xmpsdk, exiv2lib, exiv2, addmoddel etc) - 36 projects (zlib, expat, xmpsdk, exiv2lib, exiv2, addmoddel etc)
@ -138,7 +136,7 @@ T A B L E o f C O N T E N T S
The batch file configure.bat is used to reconfigure for various options. The batch file configure.bat is used to reconfigure for various options.
You will need a python3 interpreter. I personally use ActivePython 3.4.1 You will need a python3 interpreter. I personally use ActivePython 3.4.1
C:\cygwin64\home\rmills\gnu\exiv2\trunk\msvc2005>configure -h C:\cygwin64\home\rmills\gnu\exiv2\trunk\msvc>configure -h
Usage: configure.py [options] Usage: configure.py [options]
Options: Options:
@ -185,7 +183,7 @@ T A B L E o f C O N T E N T S
To build with webready: To build with webready:
1 copy include\exiv2\exv_msvc-webready.h include\exiv2\exv_msvc.h 1 copy include\exiv2\exv_msvc-webready.h include\exiv2\exv_msvc.h
2 open msvc2005\exiv2-webready.vcproj 2 open msvc\exiv2-webready.vcproj
1.6 What is built 1.6 What is built
The DLL builds use the DLL version of the C runtime libraries The DLL builds use the DLL version of the C runtime libraries
@ -198,7 +196,7 @@ T A B L E o f C O N T E N T S
Before loading the project, use the python script setbuild.py to select Win32: Before loading the project, use the python script setbuild.py to select Win32:
c:\gnu\exiv2\msvc2005>setbuild.py Win32 c:\gnu\exiv2\msvc>setbuild.py Win32
setbuild.py is none destructive. If you have a 64 bit compiler, you can: setbuild.py is none destructive. If you have a 64 bit compiler, you can:
1) Restore the build environment with: setbuild.py all 1) Restore the build environment with: setbuild.py all
@ -208,7 +206,7 @@ T A B L E o f C O N T E N T S
you can "doctor" to project files manually to remove mentiosn of X64 using an editor: you can "doctor" to project files manually to remove mentiosn of X64 using an editor:
Cleanup your tree and edit the files. Cleanup your tree and edit the files.
cd exiv2\msvc2005 cd exiv2\msvc
call cleaner.bat call cleaner.bat
for /r %f in (*.vcproj) do notepad %f for /r %f in (*.vcproj) do notepad %f
for /r %f in (*.sln) do notepad %f for /r %f in (*.sln) do notepad %f
@ -223,10 +221,10 @@ T A B L E o f C O N T E N T S
To remove the "memory" of old configurations: To remove the "memory" of old configurations:
setbuild.py reset setbuild.py reset
1.8 UNICODE PATH Support 1.8 UNICODE PATH Support
Edit the file include/exiv2/exv_msvc.h to set the appropriate flag. Edit the file include/exiv2/exv_msvc.h to set the appropriate flag.
#define EXV_UNICODE_PATH 1 #define EXV_UNICODE_PATH 1
2 Design 2 Design
@ -237,7 +235,7 @@ T A B L E o f C O N T E N T S
work cleanly for me. They use different projects for VC9 and VC10. work cleanly for me. They use different projects for VC9 and VC10.
They don't provide support for VC8 or 11beta. They don't provide support for VC8 or 11beta.
I have created build environments for zlib and expat within exiv2/msvc2005. I have created build environments for zlib and expat within exiv2/msvc.
I don't include the source code for zlib or expat - only the build environment. I don't include the source code for zlib or expat - only the build environment.
You are expected to install the "vanilla" expat and zlib libraries You are expected to install the "vanilla" expat and zlib libraries
@ -248,10 +246,10 @@ T A B L E o f C O N T E N T S
The names expat-2.1.0 and zlib-1.2.7 are fixed (and used by the .vcproj files) The names expat-2.1.0 and zlib-1.2.7 are fixed (and used by the .vcproj files)
zlib and expat zlib and expat
exiv2\msvc2005\zlib\zlib.vcproj Visual Studio files exiv2\msvc\zlib\zlib.vcproj Visual Studio files
..\..\..\zlib Source code ..\..\..\zlib Source code
exiv2\msvc2005\expat\expat.vcproj Visual Studio files exiv2\msvc\expat\expat.vcproj Visual Studio files
..\..\..\expat Source code ..\..\..\expat Source code
2.1 Architecture 2.1 Architecture
@ -269,16 +267,16 @@ T A B L E o f C O N T E N T S
bin\{win32|x64}\Win32\{Debug|Release|DebugDLL|ReleaseDLL} bin\{win32|x64}\Win32\{Debug|Release|DebugDLL|ReleaseDLL}
2.2 Relationship with msvc2003 build environment 2.2 Relationship with msvc2003 build environment
msvc2005 is similar to msvc2003. msvc is similar to msvc2003.
However there are significant differences: However there are significant differences:
1) msvc2005 supports 64 bit and 32 bit builds 1) msvc supports 64 bit and 32 bit builds
2) msvc2005 provides projects to build expat, zlib, curl, libssh and openssl 2) msvc provides projects to build expat, zlib, curl, libssh and openssl
3) msvc2005 is designed to accomodate new versions of expat and zlib when they become available. 3) msvc is designed to accomodate new versions of expat and zlib when they become available.
4) msvc2005 supports Visual Studio 2005 and later (no support for 2003) 4) msvc supports Visual Studio 2005 and later (no support for 2003)
5) msvc2005 does not require you to build 'vanilla' expat and zlib projects in advance 5) msvc does not require you to build 'vanilla' expat and zlib projects in advance
6) msvc2005 does not support the organize application 6) msvc does not support the organize application
7) msvc2005 supports building with zlib1.2.7 or 1.2.8 7) msvc supports building with zlib1.2.7 or 1.2.8
8) msvc2005 supports building with expat2.1.0 or expat2.0.1 8) msvc supports building with expat2.1.0 or expat2.0.1
msvc2003 will continue to be supported for 32 bit builds using Visual Studio 2003/05/08, msvc2003 will continue to be supported for 32 bit builds using Visual Studio 2003/05/08,
however there is no plan to enhance or develop msvc2003 going forward. however there is no plan to enhance or develop msvc2003 going forward.
@ -308,8 +306,8 @@ T A B L E o f C O N T E N T S
export EXIV2_BINDIR=<path-to-directory-with-exiv2.exe> export EXIV2_BINDIR=<path-to-directory-with-exiv2.exe>
I find the following little bash loop very useful. You should test I find the following little bash loop very useful. You should test
against all the directories in the msvc2005/bin directory: against all the directories in the msvc/bin directory:
for d in $(find /c/gnu.2005/exiv2/msvc2005/bin \ for d in $(find /c/gnu.2005/exiv2/msvc/bin \
-name exiv2.exe -exec dirname {} ";"); do -name exiv2.exe -exec dirname {} ";"); do
export EXIV2_BINDIR=$d export EXIV2_BINDIR=$d
echo --------------------------------- echo ---------------------------------
@ -348,16 +346,16 @@ T A B L E o f C O N T E N T S
our program will be called exifprint.exe our program will be called exifprint.exe
you will be very confident that your code works! you will be very confident that your code works!
b) copy <exiv2dir>/msvc2005/exifprint to <exiv2dir>/msvc2005/yourprojectname b) copy <exiv2dir>/msvc/exifprint to <exiv2dir>/msvc/yourprojectname
get yourprojectname.exe to build and run. get yourprojectname.exe to build and run.
By using <exiv2dir>/msvc2005/exifprint as a template,: By using <exiv2dir>/msvc/exifprint as a template,:
i) you can build 32/64 dll/static debug/release "out of the box". i) you can build 32/64 dll/static debug/release "out of the box".
ii) your include path, dependent libraries and link order are already set. ii) your include path, dependent libraries and link order are already set.
Revert your changes to <exiv2dir>/msvc2005/exifprint Revert your changes to <exiv2dir>/msvc/exifprint
c) move <exiv2dir>/msvc2005/yourprojectname in your buildtree. c) move <exiv2dir>/msvc/yourprojectname in your buildtree.
d) It's a good idea for your buildtree to reference <exiv2dir>/msvc2005 d) It's a good idea for your buildtree to reference <exiv2dir>/msvc
When you reference <exiv2dir>, you can update <exiv2dir> occasionally When you reference <exiv2dir>, you can update <exiv2dir> occasionally
and rebuild with little effort. and rebuild with little effort.
@ -372,14 +370,14 @@ T A B L E o f C O N T E N T S
by examining exifprint/Properties/C++/Command Line: by examining exifprint/Properties/C++/Command Line:
/Od /Od
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\../include" /I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\../include"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\../include/exiv2" /I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\../include/exiv2"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\../xmpsdk/include" /I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\../xmpsdk/include"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\../../expat/lib" /I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\../../expat/lib"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\../../zlib" /I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\../../zlib"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\/../../curl/include" /I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\/../../curl/include"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\/../../libssh/include" /I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\/../../libssh/include"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\xssl/Win32/Release/include" /I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\xssl/Win32/Release/include"
/D "WIN32" /D "_NDEBUG" /D "_CONSOLE" /D "BUILD_GETOPT" /D "EXV_HAVE_DLL" /D "_MBCS" /D "WIN32" /D "_NDEBUG" /D "_CONSOLE" /D "BUILD_GETOPT" /D "EXV_HAVE_DLL" /D "_MBCS"
/Gm /EHsc /MD /Fo"build/x64/ReleaseDLL\\" /Fd"build/x64/ReleaseDLL\vc80.pdb" /Gm /EHsc /MD /Fo"build/x64/ReleaseDLL\\" /Fd"build/x64/ReleaseDLL\vc80.pdb"
/FR"build/x64/ReleaseDLL\\" /W3 /nologo /c /Zi /TP /errorReport:prompt</pre>The correct library link order /FR"build/x64/ReleaseDLL\\" /W3 /nologo /c /Zi /TP /errorReport:prompt</pre>The correct library link order
@ -389,7 +387,7 @@ T A B L E o f C O N T E N T S
The correct order is revealed in Visual Studio, The correct order is revealed in Visual Studio,
by examining exifprint/Properties/Linker/Command-Line: by examining exifprint/Properties/Linker/Command-Line:
/OUT:"C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\bin/x64/ReleaseDLL\exifprint.exe" /OUT:"C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\bin/x64/ReleaseDLL\exifprint.exe"
/INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"build/x64/ReleaseDLL\exifprint.exe.intermediate.manifest" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"build/x64/ReleaseDLL\exifprint.exe.intermediate.manifest"
/SUBSYSTEM:CONSOLE /MACHINE:X64 /ERRORREPORT:PROMPT kernel32.lib user32.lib /SUBSYSTEM:CONSOLE /MACHINE:X64 /ERRORREPORT:PROMPT kernel32.lib user32.lib
gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
@ -401,7 +399,7 @@ T A B L E o f C O N T E N T S
4.4 tools/bin/depends32.exe and depends64.exe 4.4 tools/bin/depends32.exe and depends64.exe
C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\bin\x64\releasedll>depends64 exiv2.exe C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\bin\x64\releasedll>depends64 exiv2.exe
libexpat.dll libexpat.dll
PSAPI.DLL PSAPI.DLL
NSI.dll NSI.dll
@ -444,13 +442,13 @@ T A B L E o f C O N T E N T S
Not found: MSVCR80.dll Not found: MSVCR80.dll
Not found: MSVCP80.dll Not found: MSVCP80.dll
C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\bin\x64\releasedll> C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\bin\x64\releasedll>
4.5 exiv2.exe --verbose --version 4.5 exiv2.exe --verbose --version
You can inspect build information using exiv2 -v -V (verbose version): You can inspect build information using exiv2 -v -V (verbose version):
C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\bin\x64\releasedll>exiv2 -v -V C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\bin\x64\releasedll>exiv2 -v -V
exiv2 0.25 001900 (64 bit build) exiv2 0.25 001900 (64 bit build)
Copyright (C) 2004-2015 Andreas Huggel. Copyright (C) 2004-2015 Andreas Huggel.
@ -481,12 +479,12 @@ T A B L E o f C O N T E N T S
ssh=0 ssh=0
curl==0 curl==0
id=$Id: version.cpp 3564 2015-01-11 21:38:40Z robinwmills $ id=$Id: version.cpp 3564 2015-01-11 21:38:40Z robinwmills $
executable=C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\bin\x64\releasedll\exiv2.exe executable=C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\bin\x64\releasedll\exiv2.exe
library=C:\Windows\SYSTEM32\ntdll.dll library=C:\Windows\SYSTEM32\ntdll.dll
library=C:\Windows\system32\kernel32.dll library=C:\Windows\system32\kernel32.dll
library=C:\Windows\system32\KERNELBASE.dll library=C:\Windows\system32\KERNELBASE.dll
library=C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\bin\x64\releasedll\libexiv2.dll library=C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\bin\x64\releasedll\libexiv2.dll
library=C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\bin\x64\releasedll\zlib1.dll library=C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\bin\x64\releasedll\zlib1.dll
library=C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_88e41e092fab0294\MSVCR80.dl library=C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_88e41e092fab0294\MSVCR80.dl
library=C:\Windows\system32\msvcrt.dll library=C:\Windows\system32\msvcrt.dll
library=C:\Windows\system32\WS2_32.dll library=C:\Windows\system32\WS2_32.dll
@ -494,7 +492,7 @@ T A B L E o f C O N T E N T S
library=C:\Windows\system32\NSI.dll library=C:\Windows\system32\NSI.dll
library=C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_88e41e092fab0294\MSVCP80.dl library=C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_88e41e092fab0294\MSVCP80.dl
library=C:\Windows\system32\PSAPI.DLL library=C:\Windows\system32\PSAPI.DLL
library=C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\bin\x64\releasedll\libexpat.dll library=C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\bin\x64\releasedll\libexpat.dll
have_regex=0 have_regex=0
have_strerror_r=0 have_strerror_r=0
have_gmtime_r=0 have_gmtime_r=0

@ -1,2 +0,0 @@
del/s *.vcxproj *.ncb *.user *.filters *.sdf
for /r %d in (build,win32,x64) do rmdir/s/q %d

@ -18,7 +18,7 @@
#define PLUGINDIR "/usr/local/lib/libssh-4" #define PLUGINDIR "/usr/local/lib/libssh-4"
#define SYSCONFDIR "/usr/local/etc" #define SYSCONFDIR "/usr/local/etc"
// TODO: fix and document this in msvc2005/ReadMe.txt // TODO: fix and document this in msvc/ReadMe.txt
#define BINARYDIR "/c/Users/rmills/gnu/libssh/build" #define BINARYDIR "/c/Users/rmills/gnu/libssh/build"
#define SOURCEDIR "/c/Users/rmills/gnu/libssh/libssh-0.5.5" #define SOURCEDIR "/c/Users/rmills/gnu/libssh/libssh-0.5.5"

@ -1,4 +1,4 @@
@@@@@@@@@@@@@b ;mm /##Gilles###\ @@@Marco@@@@@b ;mm /##Gilles###\
j@@@#Robin", Brad /@@@Thomas@@@@Q j@@@#Robin", Brad /@@@Thomas@@@@Q
@@@# \ ## @@@b |@@@b @@@# \ ## @@@b |@@@b
@@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan @@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan
@ -9,21 +9,20 @@
@@@# ,@@##@@m @@@b @@@p @@C #@@#C @@@# ,@@##@@m @@@b @@@p @@C #@@#C
@@@# ,/ s@@# @@@@ @@@b Volker @Tuan@ @@@# ,/ s@@# @@@@ @@@b Volker @Tuan@
]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@# ]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@#
/@@@@@@@@@@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\ /@@Raphael@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
+-----------------------------------------------------------+ +-----------------------------------------------------------+
| msvc2003 builds 32bit binaries | | msvc2003 builds 32bit binaries |
| with Visual Studio 2003 .Net | | with Visual Studio 2003 .Net |
| | | |
| msvc2005 builds 32bit and 64bit binaries | | msvc builds 32bit and 64bit binaries |
| with Visual Studio 2005/8/10/12/13/14 | | with Visual Studio 2005/8/10/12/13/15 |
+-----------------------------------------------------------+ +-----------------------------------------------------------+
Notes about msvc2003 32 bit build of exiv2 Notes about msvc2003 32 bit build of exiv2
------------------------------------------ ------------------------------------------
Updated: 2016-10-09 Updated: 2016-10-25
+-----------------------------------------------------------+ +-----------------------------------------------------------+
| CAUTION: TO BE DEPRECATED | | CAUTION: TO BE DEPRECATED |
@ -60,7 +59,7 @@ How to build and test exiv2
c:\gnu\exiv2 <---- this directory c:\gnu\exiv2 <---- this directory
You can download the libraries from http://clanmills.com/files/exiv2libs.zip (20mb) You can download the libraries from http://clanmills.com/files/exiv2libs.zip (20mb)
This archive includes libraries for use by msvc2003 and msvc2005. This archive includes libraries for use by msvc2003 and msvc.
If you unzip exiv2libs.zip into c:\exiv2libs, the batch file msvc2003/copylibs.zip If you unzip exiv2libs.zip into c:\exiv2libs, the batch file msvc2003/copylibs.zip
will copy the files from c:\exiv2libs to the correct location. will copy the files from c:\exiv2libs to the correct location.
@ -71,7 +70,7 @@ How to build and test exiv2
This is what I do: This is what I do:
a) Open expat-2.0.1\expat.dsw with Visual Studio a) Open expat-2.0.1\expat.dsw with Visual Studio
This converts the expat-2.0.1 VC6 work space to DevStudio project files This converts the expat-2.0.1 VC6 work space to Visual Studio project files
Say "Yes" to everything. Say "Yes" to everything.
b) Build/Batch Build/Select b) Build/Batch Build/Select
@ -86,8 +85,8 @@ How to build and test exiv2
If you have copied zlib-1.2.3 from the archive, you can skip this step. If you have copied zlib-1.2.3 from the archive, you can skip this step.
This is what I do: This is what I do:
a) Open zlib\zlib-1.2.3\projects\visualc6\zlib.dsw with DevStudio a) Open zlib\zlib-1.2.3\projects\visualc6\zlib.dsw with Visual Studio
This converts the zlib-1.2.3 VC6 workspace to DevStudio project files This converts the zlib-1.2.3 VC6 workspace to Visual Studio project files
Say "Yes" to everything. Say "Yes" to everything.
b) Build/Batch Build/Select b) Build/Batch Build/Select
@ -128,7 +127,7 @@ How to build and test exiv2
6) Test from the Command Line (cmd.exe): 6) Test from the Command Line (cmd.exe):
Use the bash/Cygwin (or msys) script test/testMSVC.sh to run the test suite. Use the bash/Cygwin (or msys) script test/testMSVC.sh to run the test suite.
Please see msvc2005/ReadMe.txt for more information. Please see msvc/ReadMe.txt for more information.
Where are the libraries and executables? Where are the libraries and executables?
---------------------------------------- ----------------------------------------
@ -219,18 +218,18 @@ The following warning and message are part of the build:
B) Partial Build errors B) Partial Build errors
----------------------- -----------------------
Andreas assures me that if you cannot build some targets, eg exifprint/ReleaseDLL on a clean VC71 machine. I havne't been able to reproduced this. Please drop me an email if you find any of those. I'm cross-eyed building different flavors of this on different version of DevStudio. Andreas assures me that if you cannot build some targets, eg exifprint/ReleaseDLL on a clean VC71 machine. I havne't been able to reproduced this. Please drop me an email if you find any of those. I'm cross-eyed building different flavors of this on different version of Visual Studio.
C) Debugging exiv2 library code C) Debugging exiv2 library code
------------------------------- -------------------------------
You may wish to debug the exiv2 library code using one of the test utilities. Examples: exiv2.exe and exifprint.exe. You'll find this a little frustrating because the exiv2.sln file contains all the test programs. When you change the library code, DevStudio will relink all 20 test programs. To avoid this frustration, unload the project files which you are no using. For example, if you are debugging exiv2.exe, you only require the following projects to be loaded: You may wish to debug the exiv2 library code using one of the test utilities. Examples: exiv2.exe and exifprint.exe. You'll find this a little frustrating because the exiv2.sln file contains all the test programs. When you change the library code, Visual Studio will relink all 20 test programs. To avoid this frustration, unload the project files which you are no using. For example, if you are debugging exiv2.exe, you only require the following projects to be loaded:
xmpsdk xmpsdk
exiv2lib exiv2lib
exiv2 exiv2
(when exiting DevStudio, say "No" when it asks you if you wish to save changes to exiv2.sln) (when exiting Visual Studio, say "No" when it asks you if you wish to save changes to exiv2.sln)
# That's all Folks # That's all Folks
## ##

@ -1,32 +0,0 @@
#!/bin/bash
##
# read the output from testMSVC.sh and generate summary
# there should be 24 tests (3 compilers) * (2 archs) * (4 targets)
# compilers: 2005 | 8 | 10
# archs: Win32 | x64
# targets: Release | ReleaseDLL | Debug | DebugDLL
##
if [ $# != 1 ]; then
echo usage: $0 \<path-to-results\>
exit
fi
filename="$1"
if [ ! -e "$filename" ]; then
echo filename "$filename" does not exist
exit
fi
nl "$filename" | grep "\-\-\-\-\ " | while read i ; do
let x=$(echo $i | cut -d' ' -f 1)
let d=x-o
if [ $d != 1 ]; then
echo $d $i
fi
let o=x
done
# That's all Folks
##

@ -9,8 +9,7 @@
# Manual: Update release number. The files that need changes are: # Manual: Update release number. The files that need changes are:
# - config/configure.ac # - config/configure.ac
# - msvc2003/include/exv_msvc.h # - msvc2003/include/exv_msvc.h
# - msvc2005/include/exv_msvc.h # - msvc/include/exv_msvc.h
# - msvc2012/include/exv_msvc.h
# - src/version.hpp # - src/version.hpp
# - test/data/exiv2-test.out # - test/data/exiv2-test.out
# - CMakeLists.txt # - CMakeLists.txt
@ -37,7 +36,7 @@ echo "svn copy svn://dev.exiv2.org/svn/$bra svn://dev.exiv2.org/svn/tags/$rel -m
echo -n "Continue? [n] : " echo -n "Continue? [n] : "
read var read var
if [ x$var = xy ] ; then if [ x$var = xy ] ; then
# Tag the release # Tag the release
echo Tagging $bra as release $rel, this may take a while... echo Tagging $bra as release $rel, this may take a while...
svn copy svn://dev.exiv2.org/svn/$bra svn://dev.exiv2.org/svn/tags/$rel -m"${pre}Tagged release $rel" svn copy svn://dev.exiv2.org/svn/$bra svn://dev.exiv2.org/svn/tags/$rel -m"${pre}Tagged release $rel"

Loading…
Cancel
Save