-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCMakeLists.txt
97 lines (94 loc) · 4.9 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
cmake_minimum_required(VERSION 3.21)
project(libocr)
# mabye you need proxy
# message(STATUS "ENV{ALL_PROXY}: $ENV{ALL_PROXY}")
# set(ENV{ALL_PROXY} "http://127.0.0.1:1080")
#=======================================================================================================================
# 设置dll输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
# 设置安装目录
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install)
#=======================================================================================================================
include(cmake/find_onnxruntime.cmake)
# include(cmake/find_opencv.cmake)
include(cmake/find_deps.cmake)
# set(opencv_dir "${CMAKE_SOURCE_DIR}/deps/opencv" CACHE STRING "opencv dir")
set(onnxruntime_dir "${CMAKE_SOURCE_DIR}/deps/onnxruntime" CACHE STRING "onnxruntime dir")
# if(NOT EXISTS ${opencv_dir})
# message(STATUS "opencv dir not found, auto download deps...")
# find_opencv(opencv_dir)
# endif()
if(NOT EXISTS ${onnxruntime_dir})
message(STATUS "onnxruntime dir not found, auto download deps...")
find_onnxruntime(onnxruntime_dir)
endif()
# set(opencv_include_dir "${opencv_dir}/include")
set(onnxruntime_include_dir "${onnxruntime_dir}/include")
#=======================================================================================================================
include(cmake/parse_version.cmake)
auto_increment_version_file("resource/version_hash.hash" "resource/version.ver")
parse_version_file("resource/version.ver")
get_commit_hash(PROJECT_VERSION_HASH)
get_git_branch(PROJECT_VERSION_BRANCH)
#=======================================================================================================================
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#=======================================================================================================================
set(BUILD_TARGET_NAME libocr CACHE STRING "Build target_name" FORCE)
set(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libs")
set(BUILD_TESTING OFF CACHE BOOL "Build test")
set(ENABLE_LINKEDRESOURCE "not embed file" CACHE STRING "embed file status")
#=======================================================================================================================
set(include_dir ${CMAKE_SOURCE_DIR}/include)
set(resource_dir ${CMAKE_SOURCE_DIR}/resource)
set(model_det_file "${resource_dir}/model_det.onnx")
set(model_cls_file "${resource_dir}/model_cls.onnx")
set(model_rec_file "${resource_dir}/model_rec.onnx")
set(model_rec_dict_file "${resource_dir}/model_rec_dict.txt")
if(NOT EXISTS ${model_det_file})
set(model_det_file "not found")
endif()
if(NOT EXISTS ${model_cls_file})
set(model_cls_file "not found")
endif()
if(NOT EXISTS ${model_rec_file})
set(model_rec_file "not found")
endif()
if(NOT EXISTS ${model_rec_dict_file})
set(model_rec_dict_file "not found")
endif()
#=======================================================================================================================
find_static_library(onnxruntime ${onnxruntime_dir})
# find_static_library(opencv ${opencv_dir})
# find_package(ONNXRuntime REQUIRED)
find_package(OpenCV CONFIG REQUIRED)
#=======================================================================================================================
add_subdirectory(resource)
add_subdirectory(source)
if (BUILD_TESTING)
enable_testing()
add_subdirectory(test)
endif ()
#=======================================================================================================================
message(STATUS "==============================================================")
message(STATUS "Config : ")
message(STATUS " Version : ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
message(STATUS " BUILD_TARGET_NAME : ${BUILD_TARGET_NAME}")
message(STATUS " BUILD_SHARED_LIBS : ${BUILD_SHARED_LIBS}")
message(STATUS " BUILD_TESTING : ${BUILD_TESTING}")
message(STATUS "Model : ")
message(STATUS " enable linked resource : ${ENABLE_LINKEDRESOURCE}")
message(STATUS " model_rec_file : ${model_rec_file}")
message(STATUS " model_cls_file : ${model_cls_file}")
message(STATUS " model_det_file : ${model_det_file}")
message(STATUS " model_rec_dict_file : ${model_rec_dict_file}")
message(STATUS "Library : ")
message(STATUS " onnxruntime_include_dir : ${onnxruntime_include_dir}")
message(STATUS " opencv_include_dir : ${opencv_include_dir}")
message(STATUS "Include : ")
message(STATUS " include_dir : ${include_dir}")
message(STATUS "Install : ")
message(STATUS " CMAKE_INSTALL_PREFIX : ${CMAKE_INSTALL_PREFIX}")
message(STATUS "==============================================================\n")