|
|
@ -8,7 +8,7 @@ exiv2\msvc2005\ReadMe.txt
|
|
|
|
| with Visual Studio 2003/5/8 |
|
|
|
|
| with Visual Studio 2003/5/8 |
|
|
|
|
+-----------------------------------------------------------+
|
|
|
|
+-----------------------------------------------------------+
|
|
|
|
|
|
|
|
|
|
|
|
Updated: 2013-12-25
|
|
|
|
Updated: 2013-12-29
|
|
|
|
|
|
|
|
|
|
|
|
Robin Mills
|
|
|
|
Robin Mills
|
|
|
|
http://clanmills.com
|
|
|
|
http://clanmills.com
|
|
|
@ -23,19 +23,18 @@ T A B L E o f C O N T E N T S
|
|
|
|
1.3 Open exiv2\msvc2005\exiv2.sln
|
|
|
|
1.3 Open exiv2\msvc2005\exiv2.sln
|
|
|
|
1.4 Building with and without webready
|
|
|
|
1.4 Building with and without webready
|
|
|
|
1.5 What is build
|
|
|
|
1.5 What is build
|
|
|
|
1.6 Building with zlib1.2.3 (or 1.2.5) and expat 2.0.1
|
|
|
|
1.6 Express editions of DevStudio (or 32 bit only builds, or 64 bit only builds)
|
|
|
|
1.7 Express editions of DevStudio (or 32 bit only builds, or 64 bit only builds)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 Design
|
|
|
|
2 Design
|
|
|
|
2.1 Architecture
|
|
|
|
2.1 Architecture
|
|
|
|
2.2 Relationship with msvc build environment
|
|
|
|
2.2 Relationship with msvc build environment
|
|
|
|
|
|
|
|
|
|
|
|
3 Acknowledgment of prior work
|
|
|
|
3 Batch builds and tests
|
|
|
|
3.1 Differences between inherited project and the exiv2 projects
|
|
|
|
3.1 buildall.bat
|
|
|
|
|
|
|
|
3.2 Running the test suite
|
|
|
|
|
|
|
|
|
|
|
|
4 Batch builds and tests
|
|
|
|
4 Acknowledgment of prior work
|
|
|
|
4.1 buildall.bat
|
|
|
|
4.1 Differences between inherited project and the exiv2 projects
|
|
|
|
4.2 Running the test suite
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## End Table of Contents End ##
|
|
|
|
## End Table of Contents End ##
|
|
|
|
####
|
|
|
|
####
|
|
|
@ -48,28 +47,32 @@ T A B L E o f C O N T E N T S
|
|
|
|
however it is possible to build 32 bit libraries with "Express".
|
|
|
|
however it is possible to build 32 bit libraries with "Express".
|
|
|
|
See notes below about DevStudio Express and building only Win32 or x64 builds
|
|
|
|
See notes below about DevStudio Express and building only Win32 or x64 builds
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You need a DOS version of perl to build openssl. Not the cygwin version. I use ActiveState Perl.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You need Cygwin to run the test suite because it is written in bash.
|
|
|
|
|
|
|
|
|
|
|
|
1.2 Install zlib and expat sources.
|
|
|
|
1.2 Install zlib and expat sources.
|
|
|
|
I use the directory c:\gnu for this purpose, however the name isn't important.
|
|
|
|
I use the directory c:\gnu for this purpose, however the name isn't important.
|
|
|
|
|
|
|
|
|
|
|
|
c:\gnu>dir
|
|
|
|
c:\gnu>dir
|
|
|
|
Directory of c:\gnu
|
|
|
|
Directory of c:\gnu
|
|
|
|
2010-12-05 10:05 <DIR> exiv2 <--- this tree
|
|
|
|
2010-12-05 10:05 <DIR> exiv2 <--- this tree
|
|
|
|
2012-05-04 23:35 <DIR> expat <--- "vanilla" expat 2.1.0 source tree
|
|
|
|
2012-05-04 23:35 <DIR> expat <--- "vanilla" expat 2.1.0 source tree
|
|
|
|
2012-05-04 23:35 <DIR> zlib <--- "vanilla" zlib 1.2.7 source tree
|
|
|
|
2012-05-04 23:35 <DIR> zlib <--- "vanilla" zlib 1.2.7 source tree
|
|
|
|
2012-05-04 23:35 <DIR> curl <--- "vanilla" curl 7.39.0 source tree
|
|
|
|
2012-05-04 23:35 <DIR> curl <--- "vanilla" curl 7.39.0 source tree
|
|
|
|
2012-05-04 23:35 <DIR> openssl <--- "vanilla" openssl 1.0.1j source tree
|
|
|
|
2012-05-04 23:35 <DIR> openssl <--- "vanilla" openssl 1.0.1j source tree
|
|
|
|
2012-05-04 23:35 <DIR> libssh <--- "vanilla" libssh 0.5.5 source tree
|
|
|
|
2012-05-04 23:35 <DIR> libssh <--- "vanilla" libssh 0.5.5 source tree
|
|
|
|
c:\gnu>
|
|
|
|
c:\gnu>
|
|
|
|
|
|
|
|
|
|
|
|
You can obtain the libraries from http://clanmills.com/files/exiv2libs.zip (6.9mb)
|
|
|
|
You can obtain the libraries from http://clanmills.com/files/exiv2libs.zip (6.9mb)
|
|
|
|
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 msvc2005/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
|
|
|
|
12/17/2014 09:40 AM <DIR> libssh-0.5.5
|
|
|
|
12/17/2014 09:40 AM <DIR> libssh-0.5.5
|
|
|
|
12/17/2014 09:38 AM <DIR> openssl-1.0.1j
|
|
|
|
12/17/2014 09:38 AM <DIR> openssl-1.0.1j
|
|
|
|
12/07/2014 09:18 AM <DIR> zlib-1.2.7
|
|
|
|
12/07/2014 09:18 AM <DIR> zlib-1.2.7
|
|
|
|
|
|
|
|
|
|
|
|
The URLs from which to obtain zlib and expat are documented in exiv2\msvc2003\ReadMe.txt
|
|
|
|
The URLs from which to obtain zlib and expat are documented in exiv2\msvc2003\ReadMe.txt
|
|
|
|
expat-2.1.0 is available from http://voxel.dl.sourceforge.net/sourceforge/expat/expat-2.1.0.tar.gz
|
|
|
|
expat-2.1.0 is available from http://voxel.dl.sourceforge.net/sourceforge/expat/expat-2.1.0.tar.gz
|
|
|
@ -81,16 +84,19 @@ T A B L E o f C O N T E N T S
|
|
|
|
1.3 Open exiv2\msvc2005\exiv2.sln
|
|
|
|
1.3 Open exiv2\msvc2005\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
|
|
|
|
- 41 projects (zlib, expat, xmpsdk, exiv2lib, exiv2, addmoddel etc)
|
|
|
|
- 36 projects (zlib, expat, xmpsdk, exiv2lib, exiv2, addmoddel etc)
|
|
|
|
x 2 Platforms (x64|Win32)
|
|
|
|
x 2 Platforms (x64|Win32)
|
|
|
|
x 4 Configurations (Debug|Release|DebugDLL|ReleaseDLL)
|
|
|
|
x 4 Configurations (Debug|Release|DebugDLL|ReleaseDLL)
|
|
|
|
= 41x2x4 = 328 builds.
|
|
|
|
= 38x2x4 = 288 builds.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
When building with webready, you add 5 libraries for a total of 328 builds.
|
|
|
|
|
|
|
|
|
|
|
|
If you haven't installed the x64 compiler, don't select the 64 bit configurations!
|
|
|
|
If you haven't installed the x64 compiler, don't select the 64 bit configurations!
|
|
|
|
You may have to hand-edit the vcproj and sln files to hide the 64 bit information.
|
|
|
|
You may have to hand-edit the vcproj and sln files to hide the 64 bit information.
|
|
|
|
See the notes about DevStudio Express for more information about this.
|
|
|
|
See the notes about DevStudio Express for more information about this.
|
|
|
|
|
|
|
|
|
|
|
|
Build time is 20 minutes on a 2.2GHz Duo Core and consumes 3.0 gBytes of disk space.
|
|
|
|
Build time is 20 minutes on a 2.2GHz Duo Core and consumes 3.0 gBytes of disk space.
|
|
|
|
|
|
|
|
Build time with webready is of the order of one hour as we add openssl, curl and libssh.
|
|
|
|
|
|
|
|
|
|
|
|
1.4 Building with and without webready
|
|
|
|
1.4 Building with and without webready
|
|
|
|
Building the complete library with webready support requires building
|
|
|
|
Building the complete library with webready support requires building
|
|
|
@ -108,36 +114,7 @@ T A B L E o f C O N T E N T S
|
|
|
|
The Debug|Release builds use static C runtime libraries
|
|
|
|
The Debug|Release builds use static C runtime libraries
|
|
|
|
This is discussed in exiv2\msvc2003\ReadMe.txt
|
|
|
|
This is discussed in exiv2\msvc2003\ReadMe.txt
|
|
|
|
|
|
|
|
|
|
|
|
1.6 Building with zlib1.2.5 (or 1.2.3) and/or expat 2.0.1
|
|
|
|
1.6 Express editions of DevStudio (or 32 bit only builds, or 64 bit only builds)
|
|
|
|
By default, msvc2005 builds with zlib-1.2.7 and expat 2.1.0
|
|
|
|
|
|
|
|
You can build with zlib1.2.3. To do this:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1) copy/y exiv2\msvc2005\zlib123\zlib.vcproj exiv2\msvc2005\zlib\
|
|
|
|
|
|
|
|
copy/y exiv2\msvc2005\expat201\expat.vcproj exiv2\msvc2005\expat
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2) You will need the sources in a directory parallel to exiv2
|
|
|
|
|
|
|
|
c:\gnu>dir
|
|
|
|
|
|
|
|
Directory of c:\gnu
|
|
|
|
|
|
|
|
2010-12-05 10:05 <DIR> exiv2 <--- this tree
|
|
|
|
|
|
|
|
2012-05-04 23:35 <DIR> expat-2.1.0 <--- "vanilla" expat 2.1.0 source tree
|
|
|
|
|
|
|
|
2010-12-02 21:06 <DIR> expat-2.0.1 <--- "vanilla" expat 2.0.1 source tree
|
|
|
|
|
|
|
|
2010-12-02 20:58 <DIR> zlib-1.2.7 <--- "vanilla" zlib 1.2.7 source tree
|
|
|
|
|
|
|
|
2010-12-02 20:58 <DIR> zlib-1.2.3 OPTIONAL <--- "vanilla" zlib 1.2.3 source tree
|
|
|
|
|
|
|
|
c:\gnu>
|
|
|
|
|
|
|
|
Please see exiv2\msvc2003\ReadMe.txt for information about obtaining zlib-1.2.3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3) Alter the "AdditionalIncludeDirectories" in the following projects:
|
|
|
|
|
|
|
|
xmpsdk.vcproj
|
|
|
|
|
|
|
|
exiv2lib.vcproj
|
|
|
|
|
|
|
|
exiv2.vcproj
|
|
|
|
|
|
|
|
There are 8 occurances of "AdditionalIncludeDirectories" in each of the 3 projects.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If you have both 1.2.3 and 1.2.5 in your build tree, you'll probably "get away with" not
|
|
|
|
|
|
|
|
making this change - however this is due to good luck and you should really adjust the vcprojects.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4) Alter "AdditionalIncludeDirectories" for expat 2.0.1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.7 Express editions of DevStudio (or 32 bit only builds, or 64 bit only builds)
|
|
|
|
|
|
|
|
Express does not provide a 64 bit compiler.
|
|
|
|
Express does not provide a 64 bit compiler.
|
|
|
|
You can build 32 bit libraries with DevStudio Express (with a little effort)
|
|
|
|
You can build 32 bit libraries with DevStudio Express (with a little effort)
|
|
|
|
|
|
|
|
|
|
|
@ -217,33 +194,15 @@ T A B L E o f C O N T E N T S
|
|
|
|
4) msvc2005 supports DevStudio 2005 and later (no support for 2003)
|
|
|
|
4) msvc2005 supports DevStudio 2005 and later (no support for 2003)
|
|
|
|
5) msvc2005 does not require you to build 'vanilla' expat and zlib projects in advance
|
|
|
|
5) msvc2005 does not require you to build 'vanilla' expat and zlib projects in advance
|
|
|
|
6) msvc2005 does not support the organize application
|
|
|
|
6) msvc2005 does not support the organize application
|
|
|
|
7) msvc2005 supports building with zlib1.2.7 (default) or zlib1.2.3/5
|
|
|
|
7) msvc2005 supports building with zlib1.2.7 or 1.2.8
|
|
|
|
7) msvc2005 supports building with expat2.1.0 (default) or expa2.0.1
|
|
|
|
7) msvc2005 supports building with expat2.1.0
|
|
|
|
|
|
|
|
|
|
|
|
msvc2003 will continue to be supported for 32 bit builds using DevStudio 2003/05/08,
|
|
|
|
msvc2003 will continue to be supported for 32 bit builds using DevStudio 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.
|
|
|
|
|
|
|
|
|
|
|
|
3 Acknowledgement of prior work
|
|
|
|
3 Batch builds and tests
|
|
|
|
This work is based on work by the following people:
|
|
|
|
|
|
|
|
zlib 64 bit build
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Copyright (C) 2000-2004 Simon-Pierre Cadieux.
|
|
|
|
|
|
|
|
Copyright (C) 2004 Cosmin Truta.
|
|
|
|
|
|
|
|
For conditions of distribution and use, see copyright notice in zlib.h.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
And was obtained from: http://www.achacha.org/vc2008_zlib/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
expat 64 bit build
|
|
|
|
|
|
|
|
http://www.start64.com/index.php?option=com_content&task=view&id=3461&Itemid=114
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I recognise and respect the work performed by those individuals.
|
|
|
|
3.1 buildall.bat
|
|
|
|
|
|
|
|
|
|
|
|
3.1 Differences between inherited projects and the exiv2 projects
|
|
|
|
|
|
|
|
There is no compatiblity.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 Batch builds and tests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.1 buildall.bat
|
|
|
|
|
|
|
|
This was intended to be a "throw away" kind of script and it's grown to be quite useful.
|
|
|
|
This was intended to be a "throw away" kind of script and it's grown to be quite useful.
|
|
|
|
You will have to run vcvars32.bat for the compiler you intend to use to ensure devenv is
|
|
|
|
You will have to run vcvars32.bat for the compiler you intend to use to ensure devenv is
|
|
|
|
on your path.
|
|
|
|
on your path.
|
|
|
@ -251,7 +210,7 @@ T A B L E o f C O N T E N T S
|
|
|
|
It doesn't know anything about building only x64 or only Win32. Change the script if you
|
|
|
|
It doesn't know anything about building only x64 or only Win32. Change the script if you
|
|
|
|
want something special.
|
|
|
|
want something special.
|
|
|
|
|
|
|
|
|
|
|
|
4.2 Running the test suite
|
|
|
|
3.2 Running the test suite
|
|
|
|
You will need to install cygwin to run the test suite.
|
|
|
|
You will need to install cygwin to run the test suite.
|
|
|
|
|
|
|
|
|
|
|
|
This is a two stage process:
|
|
|
|
This is a two stage process:
|
|
|
@ -275,12 +234,12 @@ T A B L E o f C O N T E N T S
|
|
|
|
make test
|
|
|
|
make test
|
|
|
|
done
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
Free gift: (you get what you pay for)
|
|
|
|
Free gift: (you get what you pay for)
|
|
|
|
The script testMSVC.sh to runs this loop for you.
|
|
|
|
The script testMSVC.sh to runs this loop for you.
|
|
|
|
The script verifyMSVC.sh validates the output of testMSVC.sh
|
|
|
|
The script verifyMSVC.sh validates the output of testMSVC.sh
|
|
|
|
I've added those for my convenience and I hope you'll find them useful.
|
|
|
|
I've added those for my convenience and I hope you'll find them useful.
|
|
|
|
|
|
|
|
|
|
|
|
And to pass the time (the test suite takes about an hour to run)
|
|
|
|
And to pass the time (the test suite takes about an hour to run)
|
|
|
|
I recommend running listdlls exiv2.exe occasionally during testing to be confident
|
|
|
|
I recommend running listdlls exiv2.exe occasionally during testing to be confident
|
|
|
|
that the test suite is running the MSVC built versions of exiv2 and libraries.
|
|
|
|
that the test suite is running the MSVC built versions of exiv2 and libraries.
|
|
|
|
|
|
|
|
|
|
|
@ -289,11 +248,29 @@ T A B L E o f C O N T E N T S
|
|
|
|
or
|
|
|
|
or
|
|
|
|
while sleep 10 do ; listdlls exiv2.exe | grep exiv2.exe ; done
|
|
|
|
while sleep 10 do ; listdlls exiv2.exe | grep exiv2.exe ; done
|
|
|
|
|
|
|
|
|
|
|
|
Note: Cygwin currently ships diff-utils 2.9.2 which treats binary files differently
|
|
|
|
Note: Cygwin currently ships diff-utils 2.9.2 which treats binary files differently
|
|
|
|
from 2.8.7 (on Mac) and 3.2 (on Ubuntu 12.04). For this reason, the executable (and
|
|
|
|
from 2.8.7 (on Mac) and 3.2 (on Ubuntu 12.04). For this reason, the executable (and
|
|
|
|
support dlls) for GNU diff.exe 2.8.7 is provided in msvc2003/diff.exe.
|
|
|
|
support dlls) for GNU diff.exe 2.8.7 is provided in msvc2003/diff.exe.
|
|
|
|
The test suite has been "doctored" on cygwin to modify the path appropriately to
|
|
|
|
The test suite has been "doctored" on cygwin to modify the path appropriately to
|
|
|
|
use this preferred version of diff.exe.
|
|
|
|
use this preferred version of diff.exe.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 Acknowledgement of prior work
|
|
|
|
|
|
|
|
This work is based on work by the following people:
|
|
|
|
|
|
|
|
zlib 64 bit build
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Copyright (C) 2000-2004 Simon-Pierre Cadieux.
|
|
|
|
|
|
|
|
Copyright (C) 2004 Cosmin Truta.
|
|
|
|
|
|
|
|
For conditions of distribution and use, see copyright notice in zlib.h.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
And was obtained from: http://www.achacha.org/vc2008_zlib/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
expat 64 bit build
|
|
|
|
|
|
|
|
http://www.start64.com/index.php?option=com_content&task=view&id=3461&Itemid=114
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I recognise and respect the work performed by those individuals.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.1 Differences between inherited projects and the exiv2 projects
|
|
|
|
|
|
|
|
There is no compatiblity.
|
|
|
|
|
|
|
|
|
|
|
|
# That's all Folks!
|
|
|
|
# That's all Folks!
|
|
|
|
##
|
|
|
|
##
|
|
|
|