#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
@@@# \ ## @@@b |@@@b
@@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan
@ -9,7 +9,7 @@
@@@# ,@@##@@m @@@b @@@p @@C #@@#C
@@@# ,/ s@@# @@@@ @@@b Volker @Tuan@
]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@#
/@@@@@@@@@@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
/@@Raphael@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
Exiv2
*****
@ -31,17 +31,17 @@ Building and Installing
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
- FAQ concerning Cygwin/MSYS and Mac OS X:
http://dev.exiv2.org/projects/exiv2/wiki/FAQ
2 Microsoft Visual C++
- see msvc2005/ReadMe.txt (32bit and 64bit build VC8/2005, 2008,2010,2012)
- see msvc2003/ReadMe.txt (32bit build VC7.1/2003 2005,2008)
Caution msvc2003 is deprecated with v0.26 and will be removed
- see msvc/ReadMe.txt (32bit and 64bit builds Visual Studio 2005,08,10,12,13,15)
- see msvc2003/ReadMe.txt (32bit build on Visual Studio 2003, 2005, 2008)
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
To build a commercial version of the Exiv2 library, see also section
@ -53,10 +53,7 @@ build and install the library and utility:
$ ./configure
$ make
$ sudo make install
Users of Cygwin and MinGW can omit the 'sudo' to install:
$ make install
$ sudo make install (Cygwin/MinGW $ make install)
Caution:
If you downloaded the source code from the subversion repository,
@ -65,7 +62,7 @@ Caution:
$ make config
$ ./configure
$ make
$ sudo make install
$ sudo make install (Cygwin/MinGW $ make install)
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*
need to modify any Makefile directly, in particular not src/Makefile!
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
and feature requests, please open an issue.
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
symbol EXV_COMMERCIAL_VERSION defined in:
msvc2003\include\exv_msvc.h
or msvc2005\include\exv_msvc.h
or msvc\include\exv_msvc.h
On UNIX-like systems, run the configure
script with the options --enable-commercial --disable-nls

@ -1,4 +1,4 @@
@@@@@@@@@@@@@b ;mm /##Gilles###\
@@@Marco@@@@@b ;mm /##Gilles###\
j@@@#Robin", Brad /@@@Thomas@@@@Q
@@@# \ ## @@@b |@@@b
@@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan
@ -9,29 +9,34 @@
@@@# ,@@##@@m @@@b @@@p @@C #@@#C
@@@# ,/ s@@# @@@@ @@@b Volker @Tuan@
]@@@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
to be supported by exiv2 for at least v0.27 (and probably longer)
* The existing automake (./configure) will continue to be supported by exiv2
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
Robin Mills
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
-----------------
@ -55,7 +60,7 @@ FAQ: http://www.cmake.org/Wiki/CMake_FAQ
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
@ -64,7 +69,7 @@ file) to configure, build and install the library and utility:
$ mkdir build
$ cd build
$ cmake ..
$ cmake .. -G "Unix Makefiles"
$ make
$ make install
@ -117,7 +122,7 @@ b) Using the cmake GUI
exiv2 provides three build environment for users of Visual Studio:
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)
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
=========================================
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.
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.
# 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 should only require:
rem 1 Invoke the appropriate vsvars32.bat script
rem 2 Run devenv/upgrade
rem 2 Run devenv/upgrade
rem 3 set Builder=2005
rem and all should be good
set BGOOD=0
@ -59,7 +59,7 @@ if %Builder%==2003 (
if %Builder%==2005 (
call "C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
pushd msvc2005
pushd msvc
set BGOOD=1
)
@ -88,7 +88,7 @@ if %curl% == true if %libssh% == true if %openssl% == true set webready=true
if %webready% == true (
copy/y exiv2-webready.sln e.sln
copy/y ..\include\exiv2\exv_msvc-webready.h ..\include\exiv2\exv_msvc.h
)
)
rem --
rem let the user know what's going on!
@ -104,12 +104,12 @@ if %Win32%==true (
if %debug%==true (
if %static%==true (
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 %Builder%==2005 (
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'
devenv e.sln %ACTION% "Debug|Win32"
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 %static%==true (
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 %Builder%==2005 (
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'
devenv e.sln %ACTION% "Release|Win32"
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 %dll%==true (
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 %Builder%==2005 (
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'
devenv e.sln %ACTION% "DebugDLL|Win32"
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 %dll%==true (
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 %Builder%==2005 (
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'
devenv e.sln %ACTION% "ReleaseDLL|Win32"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/win32/ReleaseDLL'
)
) ) )
if %x64%==true (
if %debug%==true (
if %static%==true (
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'
devenv e.sln %ACTION% "Debug|x64"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/Debug'
) ) )
if %x64%==true (
if %release%==true (
if %static%==true (
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'
devenv e.sln %ACTION% "Release|x64"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/Release'
) ) )
if %x64%==true (
if %debug%==true (
if %dll%==true (
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'
devenv e.sln %ACTION% "DebugDLL|x64"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/DebugDLL'
) ) )
if %x64%==true (
if %release%==true (
if %dll%==true (
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'
devenv e.sln %ACTION% "ReleaseDLL|x64"
if NOT ERRORLEVEL 1 if %tests%==true call bash -c 'cd %FOO%;cd test;./testMSVC.sh ../msvc/bin/x64/ReleaseDLL'
) ) )
rem --
@ -187,12 +187,12 @@ popd
rem --
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%==2005 msvc2005\tools\bin\rm.exe -rf ..\expat ..\zlib ..\openssl ..\libssh ..\curl
if %Builder%==2003 msvc\tools\bin\rm.exe -rf ..\expat-2.0.1 ..\zlib-1.2.3
if %Builder%==2005 msvc\tools\bin\rm.exe -rf ..\expat ..\zlib ..\openssl ..\libssh ..\curl
if %Builder%==2005 if EXIST openssl (
cd ..
cygwin64\bin\rm.exe -rf openssl
cd msvc2005
cd msvc
)
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
---------------
1 Setting up your machine
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)
You should initialize the Visual Studio environment
using the version of vcvars32.bat or vcvarsall.bat
installed with Visual Studio. For example:
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
out of this - provided Visual Studio is installed in %ProgramFiles(x86)%
%ProgramFiles(x86)% is usually c:\Program Files (x86)
vcvars 2005 # sets 2005 x86
vcvars 2010 64 # sets 2010 x86_amd64
2 Always build "out of source". I recommend:
cd <exiv2dir>
mkdir build
+-------------------------------------------------------+
| Never attempt to build in a directory with a space in |
| 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)
copy contrib\cmake\msvc\* build
cd build
cmakeBuild --help
You should never have reason to modify the code in cmakeBuild.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 also change defaults using the dos set command. For example:
set _CONFIG_=Debug
To unset an environment string, set _CONFIG_=
For your first build, I recommend the command:
cmakeBuild --pause --verbose
This will print out a lot of information, and pause after each build step.
When you are building happily, you may prefer:
cmakeBuild --silent
@ -69,38 +82,38 @@ How to use this
4 Building manually with CMake
The cmake option -G Generator should be chosen for the version of Visual Studio installed.
cmake --help for more information
I personally always build/test with Visual Studio 2005 in 64 bits.
The generator is: "Visual Studio 8 2005 Win64"
cd <exiv2dir>
mkdir ../build
cd ../build
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/expat-2.1.0.tar.gz
...
for webready
you need curl-7.45.0 libssh-0.7.2 and openssl-1.0.1p
for webready
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)
...
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 dist # the output artifacts are stored here
rem build zlib-1.2.8
mkdir 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 --build . # TAKE CARE with expat-2.1.0 use: cmake --build . --target expat
cmake --build . --target install
cmake --build . --target install
cd ..\..
rem build expat-2.1.0 and other required libraries
rem build expat-2.1.0 and other required libraries
rem build exiv2
mkdir temp\exiv2
cd temp\exiv2
@ -116,10 +129,10 @@ How to use this
a) openssl
You cannot build openssl with CMake. However we have prebuilt binaries which
you can download and extract into your build tree.
You will have to match the version to your compiler.
In this example: vs2015/64 bit
svn export svn://dev.exiv2.org/svn/team/libraries/openssl-1.0.1p-vs2015.7z
7z x openssl-1.0.1p-vs2015.7z
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\lib dist\bin"
xcopy/yesihq openssl-1.0.1p-vs2008\include dist\include"
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
curl does not seem to build with CMake.
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.
For more information, read: winbuild\BUILD.WINDOWS.txt
c) libssh
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
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
A 'vanilla' version of libssh will may require those fixes to be applied.
6 Build options
You can inspect CMake options by running grep OPTION on CMakeLists.txt in <exiv2dir>
C:\cygwin64\home\rmills\gnu\exiv2\build>cd ..\trunk
@ -178,7 +191,7 @@ How to use this
7 Running the test suite
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 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
1) set _CURL_=curl-7.39.0
2) add curl-7.39.0.tar.gz in your build directory
To change the version of openssl:
1) set _OPENSSL_=openssl-1.0.1j
2) add openssl-1.0.1j-vs2015.zip into your build directory
9 Rebuilding with VS 2005/8/10/12/13/15 32/64
The script cmakeBuildAll.cmd is provided for convenience:
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
12 build+test cycles of about 5 minutes each.
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@clanmills.com

@ -1,5 +1,5 @@
@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 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
@ -12,8 +12,8 @@ set dst=\gnu\exiv2\team\libraries\%trg%\
call cmakeDefaults >NUL 2>NUL
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
set src=%_EXIV2_%\msvc2005\openssl\
rem src=pre-built. Use msvc/exiv2-webready.sln openssl.vcproj to build 32/64 openssl Release and ReleaseDLL
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 %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
@@@# \ ## @@@b |@@@b
@@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan
@ -9,21 +9,19 @@
@@@# ,@@##@@m @@@b @@@p @@C #@@#C
@@@# ,/ s@@# @@@@ @@@b Volker @Tuan@
]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@#
/@@@@@@@@@@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
/@@Raphael@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
exiv2\msvc2005\ReadMe.txt
-------------------------
exiv2\msvc\ReadMe.txt
---------------------
+-----------------------------------------------------------+
| msvc2005 builds 32bit and 64bit binaries |
| msvc builds 32bit and 64bit binaries |
| with Visual Studio 2005/8/10/12/13/15 |
| msvc2003 builds 32bit binaries |
| with Visual Studio 2003/5/8 |
+-----------------------------------------------------------+
Updated: 2015-10-09
Updated: 2015-10-25
Robin Mills
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.1 Tools
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.5 Building with exiv2-webready.sln
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)
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
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/
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...
Build/Batch build... Select All, Build
- 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.
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]
Options:
@ -185,7 +183,7 @@ T A B L E o f C O N T E N T S
To build with webready:
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
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:
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:
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:
Cleanup your tree and edit the files.
cd exiv2\msvc2005
cd exiv2\msvc
call cleaner.bat
for /r %f in (*.vcproj) 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:
setbuild.py reset
1.8 UNICODE PATH Support
Edit the file include/exiv2/exv_msvc.h to set the appropriate flag.
#define EXV_UNICODE_PATH 1
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.
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.
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)
zlib and expat
exiv2\msvc2005\zlib\zlib.vcproj Visual Studio files
exiv2\msvc\zlib\zlib.vcproj Visual Studio files
..\..\..\zlib Source code
exiv2\msvc2005\expat\expat.vcproj Visual Studio files
exiv2\msvc\expat\expat.vcproj Visual Studio files
..\..\..\expat Source code
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}
2.2 Relationship with msvc2003 build environment
msvc2005 is similar to msvc2003.
msvc is similar to msvc2003.
However there are significant differences:
1) msvc2005 supports 64 bit and 32 bit builds
2) msvc2005 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.
4) msvc2005 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
6) msvc2005 does not support the organize application
7) msvc2005 supports building with zlib1.2.7 or 1.2.8
8) msvc2005 supports building with expat2.1.0 or expat2.0.1
1) msvc supports 64 bit and 32 bit builds
2) msvc provides projects to build expat, zlib, curl, libssh and openssl
3) msvc is designed to accomodate new versions of expat and zlib when they become available.
4) msvc supports Visual Studio 2005 and later (no support for 2003)
5) msvc does not require you to build 'vanilla' expat and zlib projects in advance
6) msvc does not support the organize application
7) msvc supports building with zlib1.2.7 or 1.2.8
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,
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>
I find the following little bash loop very useful. You should test
against all the directories in the msvc2005/bin directory:
for d in $(find /c/gnu.2005/exiv2/msvc2005/bin \
against all the directories in the msvc/bin directory:
for d in $(find /c/gnu.2005/exiv2/msvc/bin \
-name exiv2.exe -exec dirname {} ";"); do
export EXIV2_BINDIR=$d
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
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.
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".
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
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:
/Od
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\../include"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\../include/exiv2"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\../xmpsdk/include"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\../../expat/lib"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\../../zlib"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\/../../curl/include"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc2005\/../../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\../include"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\../include/exiv2"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\../xmpsdk/include"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\../../expat/lib"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\../../zlib"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\/../../curl/include"
/I "C:\cygwin64\home\rmills\gnu\exiv2\video-write\msvc\/../../libssh/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"
/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
@ -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,
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"
/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
@ -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
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
PSAPI.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: 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
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)
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
curl==0
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\kernel32.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\msvc2005\bin\x64\releasedll\zlib1.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\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\system32\msvcrt.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\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_88e41e092fab0294\MSVCP80.dl
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_strerror_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 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 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
@@@# \ ## @@@b |@@@b
@@@# .;;;;, ,;;;, ,;;;; ,;;;p .;;; 7@@ ]Alan
@ -9,21 +9,20 @@
@@@# ,@@##@@m @@@b @@@p @@C #@@#C
@@@# ,/ s@@# @@@@ @@@b Volker @Tuan@
]@@@Abhinav@@\ /@@@\ \@@@Q @@@Q %@@@# /@@@@Mahesh@@#
/@@@@@@@@@@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
/@@Raphael@@@@@\ /@@@@@\ C++ Metadata Library /@Sridhar@@@v0.26\
+-----------------------------------------------------------+
| msvc2003 builds 32bit binaries |
| with Visual Studio 2003 .Net |
| |
| msvc2005 builds 32bit and 64bit binaries |
| with Visual Studio 2005/8/10/12/13/14 |
| msvc builds 32bit and 64bit binaries |
| with Visual Studio 2005/8/10/12/13/15 |
+-----------------------------------------------------------+
Notes about msvc2003 32 bit build of exiv2
------------------------------------------
Updated: 2016-10-09
Updated: 2016-10-25
+-----------------------------------------------------------+
| CAUTION: TO BE DEPRECATED |
@ -60,7 +59,7 @@ How to build and test exiv2
c:\gnu\exiv2 <---- this directory
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
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:
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.
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.
This is what I do:
a) Open zlib\zlib-1.2.3\projects\visualc6\zlib.dsw with DevStudio
This converts the zlib-1.2.3 VC6 workspace to DevStudio project files
a) Open zlib\zlib-1.2.3\projects\visualc6\zlib.dsw with Visual Studio
This converts the zlib-1.2.3 VC6 workspace to Visual Studio project files
Say "Yes" to everything.
b) Build/Batch Build/Select
@ -128,7 +127,7 @@ How to build and test exiv2
6) Test from the Command Line (cmd.exe):
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?
----------------------------------------
@ -219,18 +218,18 @@ The following warning and message are part of the build:
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
-------------------------------
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
exiv2lib
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
##

@ -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:
# - config/configure.ac
# - msvc2003/include/exv_msvc.h
# - msvc2005/include/exv_msvc.h
# - msvc2012/include/exv_msvc.h
# - msvc/include/exv_msvc.h
# - src/version.hpp
# - test/data/exiv2-test.out
# - 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] : "
read var
if [ x$var = xy ] ; then
if [ x$var = xy ] ; then
# Tag the release
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"

Loading…
Cancel
Save