-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
122 lines (98 loc) · 4.05 KB
/
Copy pathCMakeLists.txt
File metadata and controls
122 lines (98 loc) · 4.05 KB
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
cmake_minimum_required(VERSION 3.5)
option( PLUGIN_STANDARD_3DMASC "Check to install q3DMASC plugin" OFF )
if (PLUGIN_STANDARD_3DMASC)
#New classification plugin (Dimitri Lague/OSUR)
project( Q3DMASC_PLUGIN )
AddPlugin( NAME ${PROJECT_NAME} )
set(Q3DMASC_PLUGIN_VERSION "1.1")
include( CMakePolicies NO_POLICY_SCOPE )
#need OpenCV
find_package( OpenCV REQUIRED )
#As we are going to re-use several components of the main qCC project
#we define its sources path relatively to the plugin's dir
set(CloudCompare_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../qCC)
#include the whole CC directory (easier)
include_directories( ${CloudCompare_SOURCE_DIR} )
#include_directories( ${OpenCV_INCLUDE_DIR} )
file( GLOB PLUGIN_HDR_LIST ${CMAKE_CURRENT_SOURCE_DIR}/*.h )
file( GLOB PLUGIN_SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp )
file( GLOB PLUGIN_UI_LIST ${CMAKE_CURRENT_SOURCE_DIR}/*.ui )
#we need the "order choice" dialog
file( GLOB CC_HDR_LIST ${CloudCompare_SOURCE_DIR}/ccOrderChoiceDlg*.h )
file( GLOB CC_SRC_LIST ${CloudCompare_SOURCE_DIR}/ccOrderChoiceDlg*.cpp )
set( CC_UI_LIST ${CloudCompare_SOURCE_DIR}/ui_templates/roleChoiceDlg.ui )
# add source files
target_sources( ${PROJECT_NAME}
PRIVATE
${PLUGIN_HDR_LIST}
${PLUGIN_SRC_LIST}
${PLUGIN_UI_LIST}
${CC_HDR_LIST}
${CC_SRC_LIST}
${CC_UI_LIST})
#include( CMakePluginTemplate )
#include( ../../CMakePluginTpl.cmake )
set_target_properties( ${PROJECT_NAME} PROPERTIES
# FIXME Remove after everything has moved to targets
AUTOUIC_SEARCH_PATHS "${CloudCompare_SOURCE_DIR}/ui_templates;${CMAKE_CURRENT_SOURCE_DIR}/ui")
# FIXME These are required because we have dependencies outside of the api
target_include_directories( ${PROJECT_NAME}
PRIVATE
${CloudCompare_SOURCE_DIR}
${CloudCompare_SOURCE_DIR}/../common)
target_link_libraries( ${PROJECT_NAME} ${OpenCV_LIBS} )
if (WIN32) # We need to copy the OpenCV "World" DLL file next to CloudCompare.exe
if(NOT DEFINED OpenCV_WORLD_DLL OR OpenCV_WORLD_DLL STREQUAL "")
message(SEND_ERROR
"${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}):error:"
"OpenCV_WORLD_DLL is not set. Please set it in your CMake configuration.")
endif()
copy_files("${OpenCV_WORLD_DLL}" "${CLOUDCOMPARE_DEST_FOLDER}" 1) #mind the quotes!
endif()
#================
# git commit hash
# Get the current working branch
execute_process(
COMMAND git rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_BRANCH_3DMASC
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Get the latest commit hash
execute_process(
COMMAND git rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH_3DMASC
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Get the latest commit hash
execute_process(
COMMAND git describe
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_TAG_3DMASC
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Get the current working branch
execute_process(
COMMAND git rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_BRANCH_CC
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Get the latest commit hash
execute_process(
COMMAND git rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH_CC
OUTPUT_STRIP_TRAILING_WHITESPACE)
message(${PROJECT_NAME} " " GIT_BRANCH_3DMASC " " ${GIT_BRANCH_3DMASC})
message(${PROJECT_NAME} " " GIT_COMMIT_HASH_3DMASC " " ${GIT_COMMIT_HASH_3DMASC})
message(${PROJECT_NAME} " " GIT_TAG_3DMASC " " ${GIT_TAG_3DMASC})
message(${PROJECT_NAME} " " GIT_BRANCH_CC " " ${GIT_BRANCH_CC})
message(${PROJECT_NAME} " " GIT_COMMIT_HASH_CC " " ${GIT_COMMIT_HASH_CC})
message(${PROJECT_NAME} " " Q3DMASC_VERSION " " ${Q3DMASC_PLUGIN_VERSION})
target_compile_definitions(${PROJECT_NAME} PRIVATE
GIT_BRANCH_CC="${GIT_BRANCH_CC}"
GIT_COMMMIT_HASH_CC="${GIT_COMMIT_HASH_CC}"
PUBLIC GIT_BRANCH_3DMASC="${GIT_BRANCH_3DMASC}"
GIT_COMMMIT_HASH_3DMASC="${GIT_COMMIT_HASH_3DMASC}"
GIT_TAG_3DMASC="${GIT_TAG_3DMASC}"
Q3DMASC_VERSION="${Q3DMASC_PLUGIN_VERSION}"
)
endif()