2020-11-13 03:12:24 +00:00
|
|
|
# CMake 最低版本号要求
|
|
|
|
cmake_minimum_required (VERSION 2.8)
|
|
|
|
project(huagotwainds)
|
2021-06-30 14:15:14 +00:00
|
|
|
if (MSVC_VERSION GREATER_EQUAL "1900")
|
|
|
|
include(CheckCXXCompilerFlag)
|
|
|
|
CHECK_CXX_COMPILER_FLAG("/std:c++17" _cpp_latest_flag_supported)
|
|
|
|
if (_cpp_latest_flag_supported)
|
|
|
|
add_compile_options("/std:c++17")
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2020-11-13 03:12:24 +00:00
|
|
|
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})
|
2021-10-20 05:47:08 +00:00
|
|
|
#string (REGEX REPLACE "[\n\t\r]" "" GIT_VERSION ${GIT_VERSION})
|
2020-11-13 03:12:24 +00:00
|
|
|
|
|
|
|
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
|
2021-07-31 07:19:12 +00:00
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/cyusb/inc
|
2020-11-13 03:12:24 +00:00
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/libtiff/include
|
2021-10-20 05:47:08 +00:00
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/hgOCR/include/ccstruct
|
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/hgOCR/include/ccmain
|
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/hgOCR/include/ccutil
|
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/hgOCR/leptonica
|
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/hgOCR/include/api
|
2020-11-13 03:12:24 +00:00
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/opencv/include
|
2021-04-13 09:30:05 +00:00
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/log4cplus/include
|
2020-11-13 03:12:24 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
message($ENV{windir})
|
|
|
|
|
2021-10-20 05:47:08 +00:00
|
|
|
link_directories(
|
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/opencv/x86/staticlib/
|
2020-11-13 03:12:24 +00:00
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/libtiff/
|
2021-04-13 09:30:05 +00:00
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/log4cplus/lib/
|
2021-07-31 07:19:12 +00:00
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/cyusb/lib/windows/x86/
|
2021-10-20 05:47:08 +00:00
|
|
|
${PROJECT_SOURCE_DIR}/../3rdparty/hgOCR/x86/staticlib/
|
|
|
|
)
|
2020-11-13 03:12:24 +00:00
|
|
|
|
|
|
|
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()
|
|
|
|
|
2021-10-20 05:47:08 +00:00
|
|
|
MACRO(RW_LINK_OCR_LIBRARY FULL_LIBRARY_NAME)
|
|
|
|
link_libraries(optimized ${FULL_LIBRARY_NAME})
|
|
|
|
link_libraries(debug ${FULL_LIBRARY_NAME})
|
|
|
|
ENDMACRO()
|
|
|
|
|
2020-11-13 03:12:24 +00:00
|
|
|
IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
|
|
MESSAGE(STATUS "current platform: Linux ")
|
|
|
|
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows")
|
2021-08-23 10:14:17 +00:00
|
|
|
RW_LINK_3RD_PART_LIBRARY(opencv_world3414)
|
2020-11-13 03:12:24 +00:00
|
|
|
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)
|
2021-10-20 05:47:08 +00:00
|
|
|
#link_libraries(libwebp)
|
|
|
|
RW_LINK_3RD_PART_LIBRARY(quirc)
|
|
|
|
RW_LINK_OCR_LIBRARY(leptonica)
|
|
|
|
RW_LINK_OCR_LIBRARY(HG_OCR)
|
2021-07-31 07:19:12 +00:00
|
|
|
link_libraries(CyAPI)
|
2021-06-30 14:15:14 +00:00
|
|
|
RW_LINK_3RD_PART_LIBRARY(log4cplusS)
|
2020-11-13 03:12:24 +00:00
|
|
|
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})
|
2020-12-09 08:02:51 +00:00
|
|
|
add_custom_command(TARGET huagaotwain POST_BUILD COMMAND copy ${huagaotwain_path} $ENV{windir}\\twain_32\\huagoscan\\huagaotwain.ds)
|