# 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 "$<$:${LIBRARY_OUTPUT_PATH}\\Debug\\huagaotwain.dll>" "$<$:${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)