Newer
Older
cmake_minimum_required(VERSION 3.10)
project(lidar2image_processing VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake/Modules/ ${CMAKE_MODULE_PATH} )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/)
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
if( CMAKE_COMPILER_IS_GNUCXX )
set( WARN_FLAG_ADDITIONS "-fno-strict-aliasing" )
endif( CMAKE_COMPILER_IS_GNUCXX )
include(SetupInstall)
include(SetupCTest)
include(SetupRPATH)
set(BOOST_ROOT /usr/local)
find_package(Boost 1.5 REQUIRED COMPONENTS system filesystem)
find_package(Cholmod REQUIRED)
find_package(Eigen3)
#find_package(OpenCV)
find_package(GDAL)
find_package(ISIS REQUIRED COMPONENTS isis)
find_package(Qt5 COMPONENTS
Core
Concurrent
Gui
Multimedia
MultimediaWidgets
Network
OpenGL # Needed to install mesa-common-dev for this!
PrintSupport
Qml
Quick
Script
ScriptTools
Sql
Svg
Test
WebChannel
Widgets
Xml
XmlPatterns
# Search this path explicitly for MacOS OpenGL Framework
PATHS /System/Library/Frameworks/ REQUIRED)
find_package(Qwt)
list( APPEND CMAKE_INSTALL_RPATH $ENV{ISISROOT}/lib )
if (APPLE)
#set(COMPILE_FLAGS "-std=c17 -pedantic -F${ISIS_3RD} -Wall -ansi -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.6 -DISIS_LITTLE_ENDIAN=1 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -fPIC -DGMM_USES_SUPERLU -O1 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -DENABLEJP2K=0")
set(COMPILE_FLAGS "-std=c17 -pedantic -F${ISIS_ROOT} -Wall -ansi -mmacosx-version-min=10.6 -DISIS_LITTLE_ENDIAN=1 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -fPIC -DGMM_USES_SUPERLU -O1 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -DENABLEJP2K=0")
#set(LINK_FLAGS "-L${ISIS_3RD} -F${ISIS_3RD} -headerpad_max_install_names -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.6 -bind_at_load -Wl,-rpath,${ISISROOT} -Wl,-w -Wl,-rpath,@loader_path/.. -lm -framework ApplicationServices -framework QtXmlPatterns -framework QtXml -framework QtNetwork -framework QtSql -framework QtGui -framework QtCore -framework QtSvg -framework QtTest -framework QtWebKit -framework QtOpenGL -framework qwt ${CHOLMODLIB_DEPS} -framework Accelerate ")
set(LINK_FLAGS "-L$ENV{ISISROOT}/lib -F$ENV{ISISROOT}/ -headerpad_max_install_names -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.6 -bind_at_load -Wl,-rpath,$ENV{ISISROOT} -Wl,-w -Wl,-rpath,@loader_path/.. -lm -framework ApplicationServices ${CHOLMODLIB_LIBLIST} -framework Accelerate ")
else()
set(COMPILE_FLAGS " -Wall -ansi -DISIS_LITTLE_ENDIAN=1 -fPIC -DGMM_USES_SUPERLU -O1 -DENABLEJP2K=0")
set(LINK_FLAGS "-L$ENV{ISISROOT}/3rdParty/lib -Wl,-E -Xlinker -z -Xlinker origin -Xlinker -rpath -Xlinker $ENV{ISISROOT}/lib -pthread -lX11")
endif()
## We must add the in-source and out-of-source
## include paths
##--------------------------------------------
include_directories(
${CMAKE_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/..
${EIGEN3_INCLUDE_DIR}
#${OPENCV_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
${ISIS_INCLUDE_DIR}
${CSPICE_ROOT}/naif
${CSPICE_ROOT}/cspice
${CSPICE_ROOT}/Qt/QtCore
${CSPICE_ROOT}/Qt/QtXml
${CSPICE_ROOT}/Qt/QtXmlPatterns
${CSPICE_ROOT}/Qt
${CSPICE_ROOT}/gdal
${CSPICE_ROOT}/
${CSPICE_ROOT}/Qt/QtCore.framework/Headers
${CSPICE_ROOT}/Qt/QtAssistant.framework/Headers
${CSPICE_ROOT}/Qt/QtGui.framework/Headers
${CSPICE_ROOT}/Qt/QtNetwork.framework/Headers
${CSPICE_ROOT}/Qt/QtOpenGL.framework/Headers
${CSPICE_ROOT}/Qt/QtScript.framework/Headers
${CSPICE_ROOT}/Qt/QtScriptTools.framework/Headers
${CSPICE_ROOT}/Qt/QtSql.framework/Headers
${CSPICE_ROOT}/Qt/QtSvg.framework/Headers
${CSPICE_ROOT}/Qt/QtTest.framework/Headers
${CSPICE_ROOT}/Qt/QtWebKit.framework/Headers
${CSPICE_ROOT}/Qt/QtXml.framework/Headers
${CSPICE_ROOT}/Qt/QtXmlPatterns.framework/Headers
${CSPICE_ROOT}/qwt.framework/Headers
${CSPICE_ROOT}/xercesc
${CSPICE_ROOT}/tiff
${CSPICE_ROOT}/tnt
${CSPICE_ROOT}/jama
${CSPICE_ROOT}/geos
${CSPICE_ROOT}/gsl
${CSPICE_ROOT}/google
${CSPICE_ROOT}/superlu
)
## Set up RPATH after all find_package calls
##-----------------------------------------------
setup_rpath()
setup_ctest()
#lidar_image_align
add_executable(lidar_image_align
lidar_image_align.cpp
LidarImageAlign.cpp
../common/StringUtils.cpp
../common/FileListUtils.cpp
../common/ImageProcessing.cpp
../common/ReflectanceModels.cpp
../common/tiling.cpp
../camera_models/PVLRead.cpp ../camera_models/IsisInterfaceATK.cpp
../geotif_processing/CoordTransform.cpp
../geotif_processing/GeoUtils.cpp
../lidar_processing/TracksGCP.cpp
../lidar_processing/TracksLOLA.cpp
../lidar_processing/TracksFeatures.cpp)
target_compile_features(lidar_image_align PRIVATE cxx_std_17)
set_target_properties(lidar_image_align PROPERTIES
#COMPILE_FLAGS ${COMPILE_FLAGS}
LINK_FLAGS ${LINK_FLAGS}
)
target_link_directories(lidar_image_align
PRIVATE
$ENV{ISISROOT}
)
target_link_libraries(lidar_image_align
${GDAL_LIBRARY}
${Boost_LIBRARIES}
${ISIS_LIBRARIES}
${lib_cspice}
${lib_geos}
${lib_gsl}
${lib_gslcblas}
${lib_protobuf}
${lib_tiff}
${CHOLMOD_LIBRARY}
${CAMD_LIBRARY}
${AMD_LIBRARY}
${COLAMD_LIBRARY}
${lib_superlu}
${BLAS_LIBRARY}
${lib_z}
${lib_xerces-c}
Qt5::XmlPatterns
Qt5::Xml
Qt5::Network
Qt5::Sql
Qt5::Gui
Qt5::Core
Qt5::Svg
Qt5::Test
Qt5::OpenGL
${QWT_LIBRARY}
)
install_targets(/bin lidar_image_align)
if (CTEST_ENABLED)
add_test(lidar_image_align_test bash ./lidar_image_align_test.sh)
endif(CTEST_ENABLED)