twain3.0/huagao/CMakeLists.txt

108 lines
4.1 KiB
CMake

# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
project(huagotwainds)
execute_process(
COMMAND git log -1 --format=%H
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_VERSION
)
execute_process(
COMMAND git remote -v
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_REMOTE_PATH
)
#string (REGEX REPLACE ".*\t| .*" "" GIT_PATH ${GIT_REMOTE_PATH})
string (REGEX REPLACE "[\n\t\r]" "" GIT_VERSION ${GIT_VERSION})
file(GLOB DEV_SRC ${PROJECT_SOURCE_DIR}/Device/*.h ${PROJECT_SOURCE_DIR}/Device/*.cpp)
file(GLOB IMGPROC_SRC ${PROJECT_SOURCE_DIR}/ImageProcess/*.h ${PROJECT_SOURCE_DIR}/ImageProcess/*.cpp)
file(GLOB SRC ${PROJECT_SOURCE_DIR}/*.h ${PROJECT_SOURCE_DIR}/*.cpp)
aux_source_directory(${PROJECT_SOURCE_DIR} DIR_SRCS)
aux_source_directory(${PROJECT_SOURCE_DIR}/Device DIR_DEVICE)
aux_source_directory(${PROJECT_SOURCE_DIR}/ImageProcess DIR_IMGPROC)
set(DIR_RC huagaotwds.rc)
source_group("RC Files" FILES ${DIR_RC})
include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/..
${PROJECT_SOURCE_DIR}/../twpp
${PROJECT_SOURCE_DIR}/../3rdparty/nick
${PROJECT_SOURCE_DIR}/../3rdparty/libtiff/include
${PROJECT_SOURCE_DIR}/../3rdparty/gpdf/
${PROJECT_SOURCE_DIR}/../3rdparty/opencv/include
)
message($ENV{windir})
link_directories(${PROJECT_SOURCE_DIR}/../3rdparty/opencv/x86/staticlib/
${PROJECT_SOURCE_DIR}/../3rdparty/libtiff/
${PROJECT_SOURCE_DIR}/../3rdparty/gpdf/x86/staticlib/
${PROJECT_SOURCE_DIR}/../3rdparty/gpdf/3rdparty/tesseract/staticlib/x86/)
MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")
MACRO(RW_LINK_3RD_PART_LIBRARY FULL_LIBRARY_NAME)
link_libraries(optimized ${FULL_LIBRARY_NAME})
link_libraries(debug ${FULL_LIBRARY_NAME}d)
ENDMACRO()
IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
MESSAGE(STATUS "current platform: Linux ")
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows")
link_libraries(hg_gpdf)
link_libraries(cvblob)
link_libraries(libjpeg)
RW_LINK_3RD_PART_LIBRARY(opencv_core343)
RW_LINK_3RD_PART_LIBRARY(opencv_highgui343)
RW_LINK_3RD_PART_LIBRARY(opencv_imgcodecs343)
RW_LINK_3RD_PART_LIBRARY(opencv_imgproc343)
RW_LINK_3RD_PART_LIBRARY(IlmImf)
RW_LINK_3RD_PART_LIBRARY(libjasper)
RW_LINK_3RD_PART_LIBRARY(libjpeg-turbo)
RW_LINK_3RD_PART_LIBRARY(libpng)
RW_LINK_3RD_PART_LIBRARY(libtiff)
RW_LINK_3RD_PART_LIBRARY(libwebp)
RW_LINK_3RD_PART_LIBRARY(zlib)
RW_LINK_3RD_PART_LIBRARY(ittnotify)
link_libraries(libwebp)
link_libraries(libleptonica)
link_libraries(libprotobuf)
link_libraries(quirc)
link_libraries(tesseract_api)
link_libraries(tesseract_arch)
link_libraries(tesseract_ccmain)
link_libraries(tesseract_ccstruct)
link_libraries(tesseract_ccutil)
link_libraries(tesseract_classify)
link_libraries(tesseract_cutil)
link_libraries(tesseract_dict)
link_libraries(tesseract_lstm)
link_libraries(tesseract_opencl)
link_libraries(tesseract_textord)
link_libraries(tesseract_viewer)
link_libraries(tesseract_wordrec)
MESSAGE(STATUS "current platform: Windows")
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
MESSAGE(STATUS "current platform: FreeBSD")
ELSE ()
MESSAGE(STATUS "other platform: ${CMAKE_SYSTEM_NAME}")
ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux")
add_definitions(-DTWPP_IS_DS -D_CRT_SECURE_NO_WARNINGS -D_DIRECT_BUILD -D_NOT_USE -D_AFXDLL -D_UNICODE -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_CRT_NON_CONFORMING_SWPRINTFS -D_WIN32)
add_definitions(-DGIT_VERSION=\"${GIT_VERSION}\")
# 指定生成目标
add_library(huagaotwain SHARED ${DIR_SRCS} ${PROJECT_SOURCE_DIR}/exports.def ${DEV_SRC} ${IMGPROC_SRC} ${SRC} ${DIR_RC})
#target_link_libraries(huagaotwain PRIVATE Qt5::Widgets ${Qt5_STATIC_LINK_LIBRARIES} gdev gimgproc)
#target_link_directories(huagaotwain PRIVATE ${Qt5_STATIC_LINK_DIR})
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/redistribute)
set(huagaotwain_path "$<$<CONFIG:Debug>:${LIBRARY_OUTPUT_PATH}\\Debug\\huagaotwain.dll>" "$<$<CONFIG:Release>:${LIBRARY_OUTPUT_PATH}\\Release\\huagaotwain.dll>")
string(REPLACE "/" "\\" huagaotwain_path ${huagaotwain_path})
#add_custom_command(TARGET huagaotwain POST_BUILD COMMAND copy ${huagaotwain_path} $ENV{windir}\\twain_32\\huagoscan\\huagaotwain.ds)