From c63ef43851ed6a919e4e1706461aa80f0c88033c Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Fri, 24 Dec 2010 20:38:42 +0000 Subject: [PATCH] Added notes about building with DevStudio Express. Added cleaner.bat to sanitize the build tree. Fixed project dependencies. --- msvc64/ReadMe.txt | 46 ++++++++++++++++++++++++++++++++-------- msvc64/exiv2.sln | 12 +++++++++++ msvc64/exiv2/cleaner.bat | 2 ++ 3 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 msvc64/exiv2/cleaner.bat diff --git a/msvc64/ReadMe.txt b/msvc64/ReadMe.txt index e680f320..01bd3226 100644 --- a/msvc64/ReadMe.txt +++ b/msvc64/ReadMe.txt @@ -1,7 +1,7 @@ exiv2\msvc64\ReadMe.txt ----------------------- -Updated: 2010-12-20 +Updated: 2010-12-24 This is work in progress. However it is sufficiently robust to be in current use by a commercial licensee of exiv2. @@ -25,10 +25,12 @@ email: robin@clanmills.com T A B L E o f C O N T E N T S 1 Build Instructions -1.1 Install zlib and expat sources. -1.2 Open exiv2\msvc64\exiv2.sln -1.3 What is build -1.4 Building with zlib1.2.3 +1.1 Tools +1.2 Install zlib and expat sources. +1.3 Open exiv2\msvc64\exiv2.sln +1.4 What is build +1.5 Building with zlib1.2.3 +1.6 Express editions of DevStudio 2 Design 2.1 Architecture @@ -43,7 +45,13 @@ T A B L E o f C O N T E N T S 1 Build Instructions -1.1 Install zlib and expat sources. +1.1 Tools + This has been tested with the "Pro" versions of VS 2005/08/10 + Express editions dont support 64 bit builds, however it is + possible to build 32 bit libraries with "Express". + See notes below about DevStudio Express. + +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 @@ -58,7 +66,7 @@ T A B L E o f C O N T E N T S expat-2.0.1 is available from http://voxel.dl.sourceforge.net/sourceforge/expat/expat-2.0.1.tar.gz zlib-1.2.5 is available from http://zlib.net/zlib-1.2.5.tar.gz -1.2 Open exiv2\msvc64\exiv2.sln +1.3 Open exiv2\msvc64\exiv2.sln Projects are zlib, expat, xmpsdk, exiv2lib, exiv2 Build/Batch build... Select All, Build - 5 projects (zlib, expat, xmpsdk, exiv2lib, exiv2) @@ -70,12 +78,12 @@ T A B L E o f C O N T E N T S Build time is 15 minutes on a 2.2GHz Duo Core and consumes 1.0 gBytes of disk space. -1.3 What is built +1.4 What is built The DLL builds use the DLL version of the C runtime libraries The Debug|Release builds use static C runtime libraries This is discussed in exiv2\msvc\README-MSVC.txt -1.4 Building with zlib1.2.3 +1.5 Building with zlib1.2.3 By default, msvc64 builds with zlib-1.2.5 You can build with zlib1.2.3. To do this: @@ -91,6 +99,26 @@ T A B L E o f C O N T E N T S c:\gnu> Please see exiv2\msvc\README-MSVC.txt for information about obtaining zlib-1.2.3 +1.6 Express editions of DevStudio + Express does not provide a 64bit compiler. + You can build 32 bit libraries with DevStudio Express (with a little effort) + The project conversion wizard will fail on any mention of 64 bit configurations. + You can "doctor" to project files to remove this using a editor: + + Cleanup your tree and edit the files. + cd exiv2\msvc64 + call cleaner.bat + for /r %f in (*.vcproj) do notepad %f + for /r %f in (*.sln) do notepad %f + + I personally don't recomment notepad for any purpose at all. + I use TextPad http://www.textpad.com/ + + DevStudio Express 2010 (and presumably 2005 and 2008) do not have the "Batch Build" feature. + Select "exiv2" right-click "Set as Startup Project" and + Select Platform="Win32" Configuration="Debug|DebugDLL|Release|ReleaseDLL" Build. + Only build the Configurations you need. Build time is about 2 minutes/Configuration. + 2 Design expat and zlib do not provide 64bit builds for DevStudio, diff --git a/msvc64/exiv2.sln b/msvc64/exiv2.sln index 0cf5ee71..7d4de9fe 100644 --- a/msvc64/exiv2.sln +++ b/msvc64/exiv2.sln @@ -1,10 +1,22 @@ Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exiv2lib", "exiv2lib\exiv2lib.vcproj", "{831EF580-92C8-4CA8-B0CE-3D906280A54D}" + ProjectSection(ProjectDependencies) = postProject + {8308C68D-E12B-4C71-96F4-7137F6BEB654} = {8308C68D-E12B-4C71-96F4-7137F6BEB654} + {6C4C06A3-6F8F-4067-AA4C-D5F41E1FFF9A} = {6C4C06A3-6F8F-4067-AA4C-D5F41E1FFF9A} + {09877CF4-83B6-44FE-A2E2-629AA5C8093E} = {09877CF4-83B6-44FE-A2E2-629AA5C8093E} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "exiv2", "exiv2\exiv2.vcproj", "{07293CAC-00DA-493E-90C9-5D010C2B1B53}" + ProjectSection(ProjectDependencies) = postProject + {831EF580-92C8-4CA8-B0CE-3D906280A54D} = {831EF580-92C8-4CA8-B0CE-3D906280A54D} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmpsdk", "xmpsdk\xmpsdk.vcproj", "{09877CF4-83B6-44FE-A2E2-629AA5C8093E}" + ProjectSection(ProjectDependencies) = postProject + {8308C68D-E12B-4C71-96F4-7137F6BEB654} = {8308C68D-E12B-4C71-96F4-7137F6BEB654} + {6C4C06A3-6F8F-4067-AA4C-D5F41E1FFF9A} = {6C4C06A3-6F8F-4067-AA4C-D5F41E1FFF9A} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "expat", "expat\expat.vcproj", "{6C4C06A3-6F8F-4067-AA4C-D5F41E1FFF9A}" EndProject diff --git a/msvc64/exiv2/cleaner.bat b/msvc64/exiv2/cleaner.bat new file mode 100644 index 00000000..778d2766 --- /dev/null +++ b/msvc64/exiv2/cleaner.bat @@ -0,0 +1,2 @@ +del/s *.vcxproj *.ncb *.user *.filters *.sdf +for /r %d in (build,win32,x64) do rmdir/s/q %d