forked from tesseract-ocr/tesseract
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
405 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -69,3 +69,6 @@ training/wordlist2dawg | |
tesseract_opencl_profile_devices.dat | ||
kernel*.bin | ||
|
||
# build dirs | ||
/build* | ||
/win* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,211 @@ | ||
# | ||
# tesseract | ||
# | ||
|
||
############################################################################### | ||
# | ||
# cmake settings | ||
# | ||
############################################################################### | ||
|
||
cmake_minimum_required(VERSION 2.8.12) | ||
|
||
# In-source builds are disabled. | ||
if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) | ||
message(FATAL_ERROR | ||
"CMake generation is not possible within the source directory!" | ||
"\n Remove the CMakeCache.txt file and try again from another folder, e.g.:" | ||
"\n " | ||
"\n rm CMakeCache.txt" | ||
"\n mkdir build" | ||
"\n cd build" | ||
"\n cmake .." | ||
) | ||
endif() | ||
|
||
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_SOURCE_DIR}/cmake") | ||
|
||
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin") | ||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${EXECUTABLE_OUTPUT_PATH}") | ||
|
||
# Use solution folders. | ||
set_property(GLOBAL PROPERTY USE_FOLDERS ON) | ||
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake Targets") | ||
|
||
############################################################################### | ||
# | ||
# project settings | ||
# | ||
############################################################################### | ||
|
||
project(tesseract C CXX) | ||
|
||
set(VERSION_MAJOR 3) | ||
set(VERSION_MINOR 05) | ||
set(VERSION_PLAIN ${VERSION_MAJOR}.${VERSION_MINOR}) | ||
|
||
find_package(Leptonica 1.72 REQUIRED) | ||
|
||
############################################################################### | ||
# | ||
# compiler and linker | ||
# | ||
############################################################################### | ||
|
||
set(LIBRARY_TYPE SHARED) | ||
if (STATIC) | ||
set(LIBRARY_TYPE) | ||
endif() | ||
|
||
if (WIN32) | ||
if (MSVC) | ||
add_definitions(-D_SCL_SECURE_NO_WARNINGS) | ||
add_definitions(-D_CRT_SECURE_NO_WARNINGS) | ||
|
||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W0") | ||
endif() | ||
endif() | ||
|
||
############################################################################### | ||
# | ||
# configure | ||
# | ||
############################################################################### | ||
|
||
set(AUTOCONFIG_SRC ${CMAKE_BINARY_DIR}/config_auto.h.in) | ||
set(AUTOCONFIG ${CMAKE_BINARY_DIR}/src/config_auto.h) | ||
|
||
include(Configure) | ||
|
||
configure_file(${AUTOCONFIG_SRC} ${AUTOCONFIG} @ONLY) | ||
|
||
set(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/api) | ||
|
||
configure_file( | ||
${CMAKE_SOURCE_DIR}/cmake/templates/TesseractConfig-version.cmake.in | ||
${CMAKE_BINARY_DIR}/TesseractConfig-version.cmake @ONLY) | ||
configure_file( | ||
${CMAKE_SOURCE_DIR}/cmake/templates/TesseractConfig.cmake.in | ||
${CMAKE_BINARY_DIR}/TesseractConfig.cmake @ONLY) | ||
|
||
############################################################################### | ||
# | ||
# build | ||
# | ||
############################################################################### | ||
|
||
######################################## | ||
# FUNCTION build_dir | ||
######################################## | ||
function(build_dir target_name) | ||
if (${ARGC} GREATER 1) | ||
set(dir ${ARGV1}) | ||
else() | ||
set(dir ${target_name}) | ||
endif() | ||
file(GLOB ${dir}_src "${dir}/*.cpp") | ||
file(GLOB ${dir}_hdr "${dir}/*.h") | ||
add_library(${target_name} ${${dir}_src} ${${dir}_hdr}) | ||
endfunction(build_dir) | ||
######################################## | ||
|
||
add_definitions(-D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS=1) | ||
add_definitions(-DUSE_STD_NAMESPACE=1) | ||
add_definitions(-DWINDLLNAME="libtesseract${VERSION_MAJOR}${VERSION_MINOR}.dll") | ||
add_definitions(-DTESS_EXPORTS) | ||
|
||
include_directories(${Leptonica_INCLUDE_DIRS}) | ||
|
||
include_directories(ccmain) | ||
include_directories(ccstruct) | ||
include_directories(ccutil) | ||
include_directories(classify) | ||
include_directories(cube) | ||
include_directories(cutil) | ||
include_directories(dict) | ||
include_directories(neural_networks/runtime) | ||
include_directories(opencl) | ||
include_directories(textord) | ||
include_directories(vs2010/port) | ||
include_directories(viewer) | ||
include_directories(wordrec) | ||
|
||
######################################## | ||
# LIBRARY api | ||
######################################## | ||
|
||
set(api_src | ||
api/baseapi.cpp | ||
api/capi.cpp | ||
api/renderer.cpp | ||
api/pdfrenderer.cpp | ||
) | ||
file(GLOB api_hdr "api/*.h") | ||
add_library(api ${api_src} ${api_hdr}) | ||
|
||
|
||
######################################## | ||
|
||
######################################## | ||
# LIBRARIES tesseract | ||
######################################## | ||
|
||
build_dir(main ccmain) | ||
build_dir(struct ccstruct) | ||
build_dir(ccutil) | ||
build_dir(classify) | ||
build_dir(cube) | ||
build_dir(cutil) | ||
build_dir(dict) | ||
build_dir(neural neural_networks/runtime) | ||
build_dir(opencl) | ||
build_dir(textord) | ||
build_dir(viewer) | ||
build_dir(port vs2010/port) | ||
build_dir(wordrec) | ||
|
||
|
||
######################################## | ||
# LIBRARY tesseract | ||
######################################## | ||
|
||
add_library (tesseract ${LIBRARY_TYPE} ${tesseract_src} ${tesseract_hdr}) | ||
target_link_libraries (tesseract | ||
PRIVATE | ||
main | ||
struct | ||
ccutil | ||
classify | ||
cube | ||
cutil | ||
dict | ||
neural | ||
opencl | ||
textord | ||
viewer | ||
port | ||
wordrec | ||
|
||
PUBLIC | ||
${Leptonica_LIBRARIES} | ||
Ws2_32 | ||
) | ||
set_target_properties (tesseract PROPERTIES OUTPUT_NAME libtesseract${VERSION_MAJOR}${VERSION_MINOR}) | ||
set_target_properties (tesseract PROPERTIES DEBUG_OUTPUT_NAME libtesseract${VERSION_MAJOR}${VERSION_MINOR}d) | ||
export(TARGETS tesseract FILE ${CMAKE_BINARY_DIR}/TesseractTargets.cmake) | ||
|
||
|
||
######################################## | ||
# EXECUTABLE tesseractmain | ||
######################################## | ||
|
||
set(tesseractmain_src | ||
api/tesseractmain.cpp | ||
vs2010/tesseract/resource.h | ||
vs2010/tesseract/tesseract.rc | ||
) | ||
add_executable (tesseractmain ${tesseractmain_src}) | ||
target_link_libraries (tesseractmain tesseract) | ||
|
||
############################################################################### |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
################################################################################ | ||
# | ||
# configure | ||
# | ||
################################################################################ | ||
|
||
######################################## | ||
# FUNCTION check_includes | ||
######################################## | ||
function(check_includes files) | ||
foreach(F ${${files}}) | ||
set(name ${F}) | ||
string(REPLACE "-" "_" name ${name}) | ||
string(REPLACE "." "_" name ${name}) | ||
string(REPLACE "/" "_" name ${name}) | ||
string(TOUPPER ${name} name) | ||
check_include_files(${F} HAVE_${name}) | ||
file(APPEND ${AUTOCONFIG_SRC} "/* Define to 1 if you have the <${F}> header file. */\n") | ||
file(APPEND ${AUTOCONFIG_SRC} "#cmakedefine HAVE_${name} 1\n") | ||
file(APPEND ${AUTOCONFIG_SRC} "\n") | ||
endforeach() | ||
endfunction(check_includes) | ||
|
||
######################################## | ||
# FUNCTION check_functions | ||
######################################## | ||
function(check_functions functions) | ||
foreach(F ${${functions}}) | ||
set(name ${F}) | ||
string(TOUPPER ${name} name) | ||
check_function_exists(${F} HAVE_${name}) | ||
file(APPEND ${AUTOCONFIG_SRC} "/* Define to 1 if you have the `${F}' function. */\n") | ||
file(APPEND ${AUTOCONFIG_SRC} "#cmakedefine HAVE_${name} 1\n") | ||
file(APPEND ${AUTOCONFIG_SRC} "\n") | ||
endforeach() | ||
endfunction(check_functions) | ||
|
||
######################################## | ||
|
||
file(WRITE ${AUTOCONFIG_SRC}) | ||
|
||
include(CheckCSourceCompiles) | ||
include(CheckCSourceRuns) | ||
include(CheckCXXSourceCompiles) | ||
include(CheckCXXSourceRuns) | ||
include(CheckFunctionExists) | ||
include(CheckIncludeFiles) | ||
include(CheckLibraryExists) | ||
include(CheckPrototypeDefinition) | ||
include(CheckStructHasMember) | ||
include(CheckSymbolExists) | ||
include(CheckTypeSize) | ||
include(TestBigEndian) | ||
|
||
set(include_files_list | ||
dlfcn.h | ||
inttypes.h | ||
memory.h | ||
stdint.h | ||
stdlib.h | ||
strings.h | ||
string.h | ||
sys/stat.h | ||
sys/types.h | ||
unistd.h | ||
|
||
openjpeg-2.0/openjpeg.h | ||
openjpeg-2.1/openjpeg.h | ||
openjpeg-2.2/openjpeg.h | ||
) | ||
check_includes(include_files_list) | ||
|
||
set(functions_list | ||
fmemopen | ||
) | ||
check_functions(functions_list) | ||
|
||
test_big_endian(WORDS_BIGENDIAN) | ||
|
||
set(STDC_HEADERS 1) | ||
|
||
if (GIF_FOUND) | ||
set(HAVE_LIBGIF 1) | ||
endif() | ||
|
||
if (JPEG_FOUND) | ||
set(HAVE_LIBJPEG 1) | ||
endif() | ||
|
||
if (PNG_FOUND) | ||
set(HAVE_LIBPNG 1) | ||
endif() | ||
|
||
if (TIFF_FOUND) | ||
set(HAVE_LIBTIFF 1) | ||
endif() | ||
|
||
if (ZLIB_FOUND) | ||
set(HAVE_LIBZ 1) | ||
endif() | ||
|
||
file(APPEND ${AUTOCONFIG_SRC} " | ||
/* Define to 1 if you have the ANSI C header files. */ | ||
#cmakedefine STDC_HEADERS 1 | ||
/* Define to 1 if you have giflib. */ | ||
#cmakedefine HAVE_LIBGIF 1 | ||
/* Define to 1 if you have libopenjp2. */ | ||
#cmakedefine HAVE_LIBJP2K 1 | ||
/* Define to 1 if you have jpeg. */ | ||
#cmakedefine HAVE_LIBJPEG 1 | ||
/* Define to 1 if you have libpng. */ | ||
#cmakedefine HAVE_LIBPNG 1 | ||
/* Define to 1 if you have libtiff. */ | ||
#cmakedefine HAVE_LIBTIFF 1 | ||
/* Define to 1 if you have libwebp. */ | ||
#cmakedefine HAVE_LIBWEBP 1 | ||
/* Define to 1 if you have zlib. */ | ||
#cmakedefine HAVE_LIBZ 1 | ||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most | ||
significant byte first (like Motorola and SPARC, unlike Intel). */ | ||
#cmakedefine WORDS_BIGENDIAN 1 | ||
") | ||
|
||
######################################## | ||
|
||
################################################################################ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
set(Tesseract_VERSION @VERSION_PLAIN@) | ||
set(PACKAGE_VERSION ${Tesseract_VERSION}) | ||
|
||
set(PACKAGE_VERSION_EXACT False) | ||
set(PACKAGE_VERSION_COMPATIBLE False) | ||
|
||
if(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) | ||
set(PACKAGE_VERSION_EXACT True) | ||
set(PACKAGE_VERSION_COMPATIBLE True) | ||
endif() | ||
|
||
if(PACKAGE_FIND_VERSION VERSION_LESS PACKAGE_VERSION) | ||
set(PACKAGE_VERSION_COMPATIBLE True) | ||
endif() |
Oops, something went wrong.