@@ -64,12 +64,19 @@ if (STATIC)
64
64
set (LIBRARY_TYPE)
65
65
endif ()
66
66
67
+ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
68
+ set (CLANG 1)
69
+ endif ()
70
+
67
71
if (WIN32 )
68
72
if (MSVC )
69
73
add_definitions (-D_CRT_SECURE_NO_WARNINGS)
70
74
add_definitions (-DNOMINMAX)
71
-
72
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /openmp /utf-8" )
75
+ if (CLANG)
76
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Xclang -fopenmp /utf-8" )
77
+ else ()
78
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /openmp /utf-8" )
79
+ endif ()
73
80
endif ()
74
81
75
82
set (LIB_Ws2_32 Ws2_32)
@@ -226,19 +233,21 @@ if (WIN32)
226
233
${tesseract_hdr}
227
234
${CMAKE_CURRENT_SOURCE_DIR} /src/vs2010/tesseract/resource .h)
228
235
set (tesseract_rsc ${CMAKE_CURRENT_BINARY_DIR} /vs2010/tesseract/libtesseract.rc)
229
- set_source_files_properties (
230
- ${CMAKE_CURRENT_SOURCE_DIR} /src/arch/dotproductsse.cpp
231
- PROPERTIES COMPILE_DEFINITIONS __SSE4_1__)
232
- set_source_files_properties (
233
- ${CMAKE_CURRENT_SOURCE_DIR} /src/arch/intsimdmatrixsse.cpp
234
- PROPERTIES COMPILE_DEFINITIONS __SSE4_1__)
235
- set_source_files_properties (
236
- ${CMAKE_CURRENT_SOURCE_DIR} /src/arch/dotproductavx.cpp
237
- PROPERTIES COMPILE_FLAGS "/arch:AVX" )
238
- set_source_files_properties (
239
- ${CMAKE_CURRENT_SOURCE_DIR} /src/arch/intsimdmatrixavx2.cpp
240
- PROPERTIES COMPILE_FLAGS "/arch:AVX2" )
241
- endif ()
236
+ if (NOT CLANG)
237
+ set_source_files_properties (
238
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/arch/dotproductsse.cpp
239
+ PROPERTIES COMPILE_DEFINITIONS __SSE4_1__)
240
+ set_source_files_properties (
241
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/arch/intsimdmatrixsse.cpp
242
+ PROPERTIES COMPILE_DEFINITIONS __SSE4_1__)
243
+ set_source_files_properties (
244
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/arch/dotproductavx.cpp
245
+ PROPERTIES COMPILE_FLAGS "/arch:AVX" )
246
+ set_source_files_properties (
247
+ ${CMAKE_CURRENT_SOURCE_DIR} /src/arch/intsimdmatrixavx2.cpp
248
+ PROPERTIES COMPILE_FLAGS "/arch:AVX2" )
249
+ endif () # NOT CLANG
250
+ endif () # MSVC
242
251
else ()
243
252
set_source_files_properties (
244
253
${CMAKE_CURRENT_SOURCE_DIR} /src/arch/dotproductsse.cpp
@@ -283,6 +292,13 @@ else()
283
292
export (TARGETS libtesseract APPEND FILE ${CMAKE_CURRENT_BINARY_DIR} /TesseractTargets.cmake)
284
293
endif ()
285
294
295
+ if (WIN32 AND CLANG)
296
+ # Workaround for "libomp.lib is not automatically added on Windows"
297
+ # see: http://lists.llvm.org/pipermail/openmp-dev/2015-August/000857.html
298
+ # TODO: Find better way how to set Clang OpenMP library for linking on Windows
299
+ target_link_libraries (libtesseract "c:\\ Program Files\\ LLVM\\ lib\\ libomp.lib" )
300
+ endif ()
301
+
286
302
########################################
287
303
# EXECUTABLE tesseractmain
288
304
########################################
0 commit comments