trunk: msvc2005 documentation update.
This commit is contained in:
parent
5b15418f02
commit
9ba27d268b
@ -8,7 +8,7 @@ exiv2\msvc2005\ReadMe.txt
|
||||
| with Visual Studio 2003/5/8 |
|
||||
+-----------------------------------------------------------+
|
||||
|
||||
Updated: 2013-12-25
|
||||
Updated: 2013-12-29
|
||||
|
||||
Robin Mills
|
||||
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.4 Building with and without webready
|
||||
1.5 What is build
|
||||
1.6 Building with zlib1.2.3 (or 1.2.5) and expat 2.0.1
|
||||
1.7 Express editions of DevStudio (or 32 bit only builds, or 64 bit only builds)
|
||||
1.6 Express editions of DevStudio (or 32 bit only builds, or 64 bit only builds)
|
||||
|
||||
2 Design
|
||||
2.1 Architecture
|
||||
2.2 Relationship with msvc build environment
|
||||
|
||||
3 Acknowledgment of prior work
|
||||
3.1 Differences between inherited project and the exiv2 projects
|
||||
3 Batch builds and tests
|
||||
3.1 buildall.bat
|
||||
3.2 Running the test suite
|
||||
|
||||
4 Batch builds and tests
|
||||
4.1 buildall.bat
|
||||
4.2 Running the test suite
|
||||
4 Acknowledgment of prior work
|
||||
4.1 Differences between inherited project and the exiv2 projects
|
||||
|
||||
## End Table of Contents End ##
|
||||
####
|
||||
@ -47,29 +46,33 @@ T A B L E o f C O N T E N T S
|
||||
Some Express editions don't support 64 bit builds
|
||||
however it is possible to build 32 bit libraries with "Express".
|
||||
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.
|
||||
I use the directory c:\gnu for this purpose, however the name isn't important.
|
||||
|
||||
c:\gnu>dir
|
||||
Directory of c:\gnu
|
||||
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> 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> openssl <--- "vanilla" openssl 1.0.1j source tree
|
||||
2012-05-04 23:35 <DIR> libssh <--- "vanilla" libssh 0.5.5 source 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> 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> openssl <--- "vanilla" openssl 1.0.1j source tree
|
||||
2012-05-04 23:35 <DIR> libssh <--- "vanilla" libssh 0.5.5 source tree
|
||||
c:\gnu>
|
||||
|
||||
You can obtain the libraries from http://clanmills.com/files/exiv2libs.zip (6.9mb)
|
||||
I copy those to the directory c:\exiv2libs
|
||||
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
|
||||
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:38 AM <DIR> openssl-1.0.1j
|
||||
12/07/2014 09:18 AM <DIR> zlib-1.2.7
|
||||
11/05/2014 07:26 AM <DIR> curl-7.39.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:38 AM <DIR> openssl-1.0.1j
|
||||
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
|
||||
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
|
||||
Projects are zlib, expat, xmpsdk, exiv2lib, exiv2, addmoddel etc...
|
||||
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 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!
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
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)
|
||||
1.6 Express editions of DevStudio (or 32 bit only builds, or 64 bit only builds)
|
||||
Express does not provide a 64 bit compiler.
|
||||
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)
|
||||
5) msvc2005 does not require you to build 'vanilla' expat and zlib projects in advance
|
||||
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 expat2.1.0 (default) or expa2.0.1
|
||||
7) msvc2005 supports building with zlib1.2.7 or 1.2.8
|
||||
7) msvc2005 supports building with expat2.1.0
|
||||
|
||||
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.
|
||||
|
||||
3 Acknowledgement of prior work
|
||||
This work is based on work by the following people:
|
||||
zlib 64 bit build
|
||||
3 Batch builds and tests
|
||||
|
||||
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 Differences between inherited projects and the exiv2 projects
|
||||
There is no compatiblity.
|
||||
|
||||
4 Batch builds and tests
|
||||
|
||||
4.1 buildall.bat
|
||||
3.1 buildall.bat
|
||||
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
|
||||
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
|
||||
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.
|
||||
|
||||
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
|
||||
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 verifyMSVC.sh validates the output of testMSVC.sh
|
||||
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
|
||||
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
|
||||
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
|
||||
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.
|
||||
The test suite has been "doctored" on cygwin to modify the path appropriately to
|
||||
use this preferred version of diff.exe.
|
||||
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
|
||||
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
|
||||
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!
|
||||
##
|
||||
|
||||
Loading…
Reference in New Issue
Block a user