Skip to content

Commit 5e3b8d3

Browse files
committed
Add source groups.
1 parent 56a5195 commit 5e3b8d3

File tree

4 files changed

+219
-65
lines changed

4 files changed

+219
-65
lines changed

CMakeLists.txt

+44-65
Original file line numberDiff line numberDiff line change
@@ -95,28 +95,16 @@ configure_file(
9595
#
9696
###############################################################################
9797

98-
########################################
99-
# FUNCTION build_dir
100-
########################################
101-
function(build_dir target_name)
102-
if (${ARGC} GREATER 1)
103-
set(dir ${ARGV1})
104-
else()
105-
set(dir ${target_name})
106-
endif()
107-
file(GLOB ${dir}_src "${dir}/*.cpp")
108-
file(GLOB ${dir}_hdr "${dir}/*.h")
109-
add_library(${target_name} ${${dir}_src} ${${dir}_hdr})
110-
endfunction(build_dir)
111-
########################################
98+
include(BuildFunctions)
99+
include(SourceGroups)
112100

113101
add_definitions(-D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS=1)
114102
add_definitions(-DUSE_STD_NAMESPACE=1)
115103
add_definitions(-DWINDLLNAME="libtesseract${VERSION_MAJOR}${VERSION_MINOR}.dll")
116-
add_definitions(-DTESS_EXPORTS)
117104

118105
include_directories(${Leptonica_INCLUDE_DIRS})
119106

107+
include_directories(api)
120108
include_directories(ccmain)
121109
include_directories(ccstruct)
122110
include_directories(ccutil)
@@ -132,65 +120,52 @@ include_directories(viewer)
132120
include_directories(wordrec)
133121

134122
########################################
135-
# LIBRARY api
123+
# LIBRARY tesseract
136124
########################################
137125

138-
set(api_src
126+
127+
file(GLOB tesseract_src
128+
"ccmain/*.cpp"
129+
"ccstruct/*.cpp"
130+
"ccutil/*.cpp"
131+
"classify/*.cpp"
132+
"cube/*.cpp"
133+
"cutil/*.cpp"
134+
"dict/*.cpp"
135+
"neural_networks/runtime/*.cpp"
136+
"opencl/*.cpp"
137+
"textord/*.cpp"
138+
"viewer/*.cpp"
139+
"vs2010/port/*.cpp"
140+
"wordrec/*.cpp"
141+
)
142+
file(GLOB tesseract_hdr
143+
"api/*.h"
144+
"ccmain/*.h"
145+
"ccstruct/*.h"
146+
"ccutil/*.h"
147+
"classify/*.h"
148+
"cube/*.h"
149+
"cutil/*.h"
150+
"dict/*.h"
151+
"neural_networks/runtime/*.h"
152+
"opencl/*.h"
153+
"textord/*.h"
154+
"viewer/*.h"
155+
"vs2010/port/*.h"
156+
"wordrec/*.h"
157+
)
158+
159+
set(tesseract_src ${tesseract_src}
139160
api/baseapi.cpp
140161
api/capi.cpp
141162
api/renderer.cpp
142163
api/pdfrenderer.cpp
143164
)
144-
file(GLOB api_hdr "api/*.h")
145-
add_library(api ${api_src} ${api_hdr})
146-
147-
148-
########################################
149-
150-
########################################
151-
# LIBRARIES tesseract
152-
########################################
153-
154-
build_dir(main ccmain)
155-
build_dir(struct ccstruct)
156-
build_dir(ccutil)
157-
build_dir(classify)
158-
build_dir(cube)
159-
build_dir(cutil)
160-
build_dir(dict)
161-
build_dir(neural neural_networks/runtime)
162-
build_dir(opencl)
163-
build_dir(textord)
164-
build_dir(viewer)
165-
build_dir(port vs2010/port)
166-
build_dir(wordrec)
167-
168-
169-
########################################
170-
# LIBRARY tesseract
171-
########################################
172165

173166
add_library (tesseract ${LIBRARY_TYPE} ${tesseract_src} ${tesseract_hdr})
174-
target_link_libraries (tesseract
175-
PRIVATE
176-
main
177-
struct
178-
ccutil
179-
classify
180-
cube
181-
cutil
182-
dict
183-
neural
184-
opencl
185-
textord
186-
viewer
187-
port
188-
wordrec
189-
190-
PUBLIC
191-
${Leptonica_LIBRARIES}
192-
Ws2_32
193-
)
167+
target_compile_definitions (tesseract PUBLIC -DTESS_EXPORTS)
168+
target_link_libraries (tesseract ${Leptonica_LIBRARIES} Ws2_32)
194169
set_target_properties (tesseract PROPERTIES OUTPUT_NAME libtesseract${VERSION_MAJOR}${VERSION_MINOR})
195170
set_target_properties (tesseract PROPERTIES DEBUG_OUTPUT_NAME libtesseract${VERSION_MAJOR}${VERSION_MINOR}d)
196171
export(TARGETS tesseract FILE ${CMAKE_BINARY_DIR}/TesseractTargets.cmake)
@@ -208,4 +183,8 @@ set(tesseractmain_src
208183
add_executable (tesseractmain ${tesseractmain_src})
209184
target_link_libraries (tesseractmain tesseract)
210185

186+
########################################
187+
188+
add_subdirectory(training)
189+
211190
###############################################################################

cmake/BuildFunctions.cmake

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
################################################################################
2+
#
3+
# macros and functions
4+
#
5+
################################################################################
6+
7+
########################################
8+
# FUNCTION project_group
9+
########################################
10+
function(project_group target name)
11+
set_target_properties(${target} PROPERTIES FOLDER ${name})
12+
endfunction(project_group)
13+
14+
################################################################################

cmake/SourceGroups.cmake

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#include(SourceGroups)
2+
3+
set(SSRC ${CMAKE_SOURCE_DIR})
4+
set(BSRC ${CMAKE_BINARY_DIR})
5+
6+
set(_CPP ".*\\.cpp")
7+
set(CPP "${_CPP}$")
8+
9+
set(_H ".*\\.h")
10+
set(H "${_H}$")
11+
12+
set(H_CPP "(${H}|${CPP})")
13+
14+
source_group("Resource files" ".*\\.(rc|ico)")
15+
16+
source_group("api" "${SSRC}/api/${H_CPP}")
17+
source_group("ccmain" "${SSRC}/ccmain/${H_CPP}")
18+
source_group("ccstruct" "${SSRC}/ccstruct/${H_CPP}")
19+
source_group("ccutil" "${SSRC}/ccutil/${H_CPP}")
20+
source_group("classify" "${SSRC}/classify/${H_CPP}")
21+
source_group("cube" "${SSRC}/cube/${H_CPP}")
22+
source_group("cutil" "${SSRC}/cutil/${H_CPP}")
23+
source_group("dict" "${SSRC}/dict/${H_CPP}")
24+
source_group("neural" "${SSRC}/neural_networks/runtime/${H_CPP}")
25+
source_group("opencl" "${SSRC}/opencl/${H_CPP}")
26+
source_group("textord" "${SSRC}/textord/${H_CPP}")
27+
source_group("viewer" "${SSRC}/viewer/${H_CPP}")
28+
source_group("port" "${SSRC}/vs2010/port/${H_CPP}")
29+
source_group("wordrec" "${SSRC}/wordrec/${H_CPP}")

training/CMakeLists.txt

+132
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
#
2+
# tesseract
3+
#
4+
5+
########################################
6+
# LIBRARY tessopt
7+
########################################
8+
9+
add_library (tessopt tessopt.cpp tessopt.h)
10+
project_group (tessopt "Training Tools")
11+
12+
13+
########################################
14+
# LIBRARY training
15+
########################################
16+
17+
set(training_src
18+
boxchar.cpp commandlineflags.cpp commontraining.cpp degradeimage.cpp
19+
fileio.cpp ligature_table.cpp normstrngs.cpp pango_font_info.cpp
20+
stringrenderer.cpp tlog.cpp unicharset_training_utils.cpp
21+
)
22+
set(training_hdr
23+
boxchar.h commandlineflags.h commontraining.h degradeimage.h
24+
fileio.h icuerrorcode.h ligature_table.h normstrngs.h
25+
mergenf.h pango_font_info.h stringrenderer.h
26+
tessopt.h tlog.h unicharset_training_utils.h util.h
27+
)
28+
add_library (training ${training_src} ${training_hdr})
29+
#target_link_libraries (training port)
30+
project_group (training "Training Tools")
31+
32+
33+
########################################
34+
# EXECUTABLE ambiguous_words
35+
########################################
36+
37+
add_executable (ambiguous_words ambiguous_words.cpp)
38+
target_link_libraries (ambiguous_words tesseract training tessopt)
39+
project_group (ambiguous_words "Training Tools")
40+
41+
42+
########################################
43+
# EXECUTABLE classifier_tester
44+
########################################
45+
46+
add_executable (classifier_tester classifier_tester.cpp)
47+
target_link_libraries (classifier_tester tesseract training tessopt)
48+
project_group (classifier_tester "Training Tools")
49+
50+
51+
########################################
52+
# EXECUTABLE combine_tessdata
53+
########################################
54+
55+
add_executable (combine_tessdata combine_tessdata.cpp)
56+
target_link_libraries (combine_tessdata tesseract)
57+
project_group (combine_tessdata "Training Tools")
58+
59+
60+
########################################
61+
# EXECUTABLE cntraining
62+
########################################
63+
64+
add_executable (cntraining cntraining.cpp)
65+
target_link_libraries (cntraining tesseract training tessopt)
66+
project_group (cntraining "Training Tools")
67+
68+
69+
########################################
70+
# EXECUTABLE dawg2wordlist
71+
########################################
72+
73+
add_executable (dawg2wordlist dawg2wordlist.cpp)
74+
target_link_libraries (dawg2wordlist tesseract training tessopt)
75+
project_group (dawg2wordlist "Training Tools")
76+
77+
78+
########################################
79+
# EXECUTABLE mftraining
80+
########################################
81+
82+
add_executable (mftraining mftraining.cpp mergenf.cpp)
83+
target_link_libraries (mftraining tesseract training tessopt)
84+
project_group (mftraining "Training Tools")
85+
86+
87+
########################################
88+
# EXECUTABLE set_unicharset_properties
89+
########################################
90+
91+
add_executable (set_unicharset_properties set_unicharset_properties.cpp)
92+
target_link_libraries (set_unicharset_properties tesseract training tessopt)
93+
project_group (set_unicharset_properties "Training Tools")
94+
95+
96+
########################################
97+
# EXECUTABLE shapeclustering
98+
########################################
99+
100+
add_executable (shapeclustering shapeclustering.cpp)
101+
target_link_libraries (shapeclustering tesseract training tessopt)
102+
project_group (shapeclustering "Training Tools")
103+
104+
105+
########################################
106+
# EXECUTABLE text2image
107+
########################################
108+
109+
add_executable (text2image text2image.cpp)
110+
target_link_libraries (text2image tesseract training tessopt)
111+
project_group (text2image "Training Tools")
112+
113+
114+
########################################
115+
# EXECUTABLE unicharset_extractor
116+
########################################
117+
118+
add_executable (unicharset_extractor unicharset_extractor.cpp)
119+
target_link_libraries (unicharset_extractor tesseract tessopt)
120+
project_group (unicharset_extractor "Training Tools")
121+
122+
123+
########################################
124+
# EXECUTABLE wordlist2dawg
125+
########################################
126+
127+
add_executable (wordlist2dawg wordlist2dawg.cpp)
128+
target_link_libraries (wordlist2dawg tesseract tessopt)
129+
project_group (wordlist2dawg "Training Tools")
130+
131+
132+
###############################################################################

0 commit comments

Comments
 (0)