Skip to content

Commit 23a7150

Browse files
committed
Add opencv_file
1 parent cd0cfff commit 23a7150

2 files changed

Lines changed: 402 additions & 0 deletions

File tree

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
cmake_minimum_required (VERSION 3.8)
2+
project (main)
3+
MESSAGE( STATUS "PROJECT_NAME: " ${PROJECT_NAME} )
4+
find_package(OpenCV REQUIRED)
5+
6+
if (CMAKE_HOST_WIN32)
7+
set(WINDOWS 1)
8+
elseif(CMAKE_HOST_APPLE)
9+
set(mac 1)
10+
elseif(CMAKE_HOST_UNIX)
11+
set(LINUX 1)
12+
endif()
13+
14+
# Check compiler architecture
15+
if(CMAKE_CL_64)
16+
MESSAGE( STATUS ">>>>>>>> 64-bit")
17+
else()
18+
MESSAGE( STATUS ">>>>>>>> 32-bit")
19+
endif()
20+
21+
# Check compilers
22+
MESSAGE( STATUS ">>>>>>>> ${CMAKE_CXX_COMPILER_ID}")
23+
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
24+
MESSAGE( STATUS "Using Clang" )
25+
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
26+
MESSAGE( STATUS "Using GNU" )
27+
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
28+
MESSAGE( STATUS "Using Intel" )
29+
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
30+
MESSAGE( STATUS "Using MSVC" )
31+
endif()
32+
33+
# Set RPATH
34+
if(CMAKE_HOST_UNIX)
35+
if(CMAKE_HOST_APPLE)
36+
SET(CMAKE_CXX_FLAGS "-std=c++11 -O3 -Wl,-rpath,@loader_path")
37+
SET(CMAKE_INSTALL_RPATH "@loader_path")
38+
else()
39+
SET(CMAKE_CXX_FLAGS "-std=c++11 -O3 -Wl,-rpath=$ORIGIN")
40+
SET(CMAKE_INSTALL_RPATH "$ORIGIN")
41+
endif()
42+
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
43+
endif()
44+
45+
# Add search path for include and lib files
46+
MESSAGE( STATUS "CPU architecture ${CMAKE_SYSTEM_PROCESSOR}" )
47+
if(WINDOWS)
48+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
49+
link_directories("${PROJECT_SOURCE_DIR}/../../dcv/lib/win")
50+
else()
51+
link_directories("${PROJECT_SOURCE_DIR}/../../dcv/lib/win")
52+
endif()
53+
elseif(LINUX)
54+
if (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64)
55+
MESSAGE( STATUS "Link directory: ${PROJECT_SOURCE_DIR}/../../dcv/lib/linux/x64" )
56+
link_directories("${PROJECT_SOURCE_DIR}/../../dcv/lib/linux/x64")
57+
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64)
58+
MESSAGE( STATUS "Link directory: ${PROJECT_SOURCE_DIR}/../../dcv/lib/linux/arm64/" )
59+
link_directories("${PROJECT_SOURCE_DIR}/../../dcv/lib/linux/arm64/")
60+
endif()
61+
elseif(mac)
62+
MESSAGE( STATUS "Link directory: ${PROJECT_SOURCE_DIR}/../../dcv/lib/mac/" )
63+
link_directories("${PROJECT_SOURCE_DIR}/../../dcv/lib/mac/")
64+
endif()
65+
include_directories("${PROJECT_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/../../dcv/include/")
66+
67+
# Add the executable
68+
add_executable(${PROJECT_NAME} main.cxx)
69+
if(WINDOWS)
70+
if(CMAKE_CL_64)
71+
target_link_libraries (${PROJECT_NAME} "DynamsoftCorex64" "DynamsoftLicensex64" "DynamsoftCaptureVisionRouterx64" "DynamsoftUtilityx64" ${OpenCV_LIBS})
72+
endif()
73+
else()
74+
target_link_libraries (${PROJECT_NAME} "DynamsoftCore" "DynamsoftLicense" "DynamsoftCaptureVisionRouter" "DynamsoftUtility" pthread ${OpenCV_LIBS})
75+
endif()
76+
77+
if(WINDOWS)
78+
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
79+
COMMAND ${CMAKE_COMMAND} -E copy_directory
80+
"${PROJECT_SOURCE_DIR}/../../dcv/lib/win"
81+
$<TARGET_FILE_DIR:main>)
82+
elseif(LINUX)
83+
if (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64)
84+
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
85+
COMMAND ${CMAKE_COMMAND} -E copy_directory
86+
"${PROJECT_SOURCE_DIR}/../../dcv/lib/linux/x64"
87+
$<TARGET_FILE_DIR:main>)
88+
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64)
89+
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
90+
COMMAND ${CMAKE_COMMAND} -E copy_directory
91+
"${PROJECT_SOURCE_DIR}/../../dcv/lib/linux/arm64"
92+
$<TARGET_FILE_DIR:main>)
93+
endif()
94+
elseif(mac)
95+
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
96+
COMMAND ${CMAKE_COMMAND} -E copy_directory
97+
"${PROJECT_SOURCE_DIR}/../../dcv/lib/mac/"
98+
$<TARGET_FILE_DIR:main>)
99+
endif()
100+
101+
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
102+
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:main>/Templates
103+
COMMAND ${CMAKE_COMMAND} -E copy_directory
104+
"${PROJECT_SOURCE_DIR}/../../dcv/resource/Templates"
105+
$<TARGET_FILE_DIR:main>/Templates)
106+
107+
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
108+
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:main>/Models
109+
COMMAND ${CMAKE_COMMAND} -E copy_directory
110+
"${PROJECT_SOURCE_DIR}/../../dcv/resource/Models"
111+
$<TARGET_FILE_DIR:main>/Models)

0 commit comments

Comments
 (0)