Created a completely new Visual Studio 2008 solution from scratch.
Added 64 new source files and removed the following deleted files (relative to v3.01):
ccutilmemblk.cpp
ccutilmemblk.h
ccutilmemryerr.h
wordrecpieces.h
wordrectally.cpp
wordrectally.h
Created LIB_Release, LIB_Debug, DLL_Release, and DLL_Debug build configurations.
Created a single libtesseract library and removed generation of the twelve sub-libraries.
Used references to leptonica_versionnumbers.vsprops and tesseract_versionnumbers.vsprops Property Sheets, which define version number “user macros”, in all Visual Studio Projects. These are also copied to C:\BuildFolder\include, so you can refer to them in your own projects. By using the new *_VERSION macros, you’ll be isolated from worrying about version number changes in the library filenames.
See APITest’s LIB_Release Linker Additional Dependencies settings for an example of what this looks like in practice.
See Leptonica’s explanation About version numbers in library filenames for more details.
Added a Version Resource to all DLLs and applications.
Removed inclusion of the Leptonica libraries. They now have to be downloaded separately.
Changed to a Build directory structure that is compatible with Leptonica and allows the building of Tesseract-OCR-based applications using only the include and lib directories.
The libtesseract libraries are now named as follows:
static libraries:
libtesseract302-static.lib
libtesseract302-static-debug.lib
DLLs:
libtesseract302.lib (import library)
libtesseract302.dll
libtesseract302d.lib (import library)
libtesseract302d.dll
Used compiler and linker settings based on the Leptonica VS2008 Developer package.
Removed all preprocessor defines of __MSW32__ which is no longer needed.
Removed vs2008includestdint.h which is no longer required to build liblept.
Removed vs2008includeinttypes.h which isn’t needed to build liblept.
Turned off the following compiler warnings:
/wd4005: 'snprintf' : macro redefinition
/wd4018 'expression' : signed/unsigned mismatch
/wd4099 type name first seen using 'class' now seen using 'struct'
/wd4244 conversion from 'double' to 'float', possible loss of data
/wd4267 conversion from 'size_t' to 'type', possible loss of data
/wd4305 truncation from 'type1' to 'type2'
/wd4355 'this' : used in base member initializer list
/wd4566 character represented by universal-character-name x cannot
be represented in the current code page
/wd4800 forcing value to bool 'true' or 'false' (performance warning)
/wd4996 'function': was declared deprecated
Used the “C7 Compatible” Debug Information (/Z7) compiler switch, which puts the debugging information in the .obj files. That way we don’t have to worry about also supplying .pdb files. See /Z7, /Zi, /ZI (Debug Information Format) for more information.
Added Projects for the following new training applications:
ambiguous_words
classifier_tester
dawg2wordlist
shapeclustering
Moved mathfix.h from vs2008\include to the vs2008\port directory.
Removed Visual Studio 2010 support. See Using Visual Studio 2010 for the rationale.
Created a python script called tesshelper.py, that eases some maintenance tasks related to releasing future VS2008 Solutions.
The list of “public” header files that are required to build “external” applications is now limited to the following 13 files:
api\apitypes.h
api\baseapi.h
ccmain\thresholder.h
ccstruct\publictypes.h
ccutil\errcode.h
ccutil\fileerr.h
ccutil\host.h
ccutil\memry.h
ccutil\platform.h
ccutil\serialis.h
ccutil\strngs.h
ccutil\tesscallback.h
ccutil\unichar.h