Skip to content

Commit c0c3d5e

Browse files
committed
Merge branch 'master' into release
2 parents 3ecb504 + 1faba93 commit c0c3d5e

56 files changed

Lines changed: 10131 additions & 3737 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: Bug report
3+
about: Guidelines to submit a detailed new bug report issue
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Configure '...'
16+
2. Build '...'
17+
3. Experience error '...'
18+
19+
**Provide error log**
20+
1. Start with a new build directory
21+
2. Configure your build with CMake and note your configuration settings (you will need to report these)
22+
3. Run `make -j4 -k` ... you can change the 4 to something reflective of how may cores you want to use. The -k is critical as well.
23+
4. Once the build fails run `make &> log_failure.txt` and provide that log.
24+
25+
**Machine details (please complete the following information):**
26+
- OS: [e.g. Ubuntu 16.04)
27+
- CMake version
28+
- Compiler and version [e.g. GCC 4.8.1]
29+
- Fletch version or branch with commit hash
30+
- Exact Fletch CMake options
31+
32+
**Additional context**
33+
Add any other context about the problem can go here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea or improvement for Fletch
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

CMake/External_Darknet.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ else()
3131
unset(fletch_ENABLE_Darknet_CUDNN CACHE)
3232
endif()
3333
if(fletch_ENABLE_Darknet_CUDA)
34-
set( DARKNET_GPU_ARGS -DUSE_GPU:BOOL=ON -DCUDA_TOOLKIT_ROOT_DIR:PATH=${CUDA_TOOLKIT_ROOT_DIR})
34+
set( DARKNET_GPU_ARGS -DUSE_GPU:BOOL=ON -DCUDA_TOOLKIT_ROOT_DIR:PATH=${CUDA_TOOLKIT_ROOT_DIR} -DCMAKE_LIBRARY_PATH=${CUDA_TOOLKIT_ROOT_DIR}/lib64/stubs)
3535
if (fletch_ENABLE_Darknet_CUDNN)
3636
set(DARKNET_CUDNN_ARGS -DUSE_CUDNN:BOOL=ON -DCUDNN_ROOT_DIR:PATH=${CUDNN_ROOT_DIR})
3737
else()

CMake/External_GDAL.cmake

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ if(fletch_LTIDSDK_ROOT)
2525
endif()
2626

2727
if (WIN32)
28-
2928
if(fletch_ENABLE_PNG)
3029
set(_GDAL_ARGS_PNG)
3130
set(_GDAL_ARGS_PNG PNGDIR=${fletch_BUILD_INSTALL_PREFIX}/include PNG_LIB=${fletch_BUILD_INSTALL_PREFIX}/lib/libpng.lib)
@@ -46,10 +45,11 @@ if (WIN32)
4645
set (GDAL_PKG_ARGS ${_GDAL_MSVC_ARGS_LTISDK} ${_GDAL_ARGS_PNG} ${_GDAL_TIFF_ARGS} ${_GDAL_GEOTIFF_ARGS})
4746
file(TO_NATIVE_PATH ${fletch_BUILD_INSTALL_PREFIX} _gdal_native_fletch_BUILD_INSTALL_PREFIX)
4847
set (GDAL_ARGS MSVC_VER=${MSVC_VERSION}
49-
DATADIR=${_gdal_native_fletch_BUILD_INSTALL_PREFIX}\\share\\gdal
50-
GDAL_HOME=${_gdal_native_fletch_BUILD_INSTALL_PREFIX}
51-
${_gdal_msvc_win64_option}
52-
${GDAL_PKG_ARGS})
48+
DATADIR=${_gdal_native_fletch_BUILD_INSTALL_PREFIX}\\share\\gdal
49+
GDAL_HOME=${_gdal_native_fletch_BUILD_INSTALL_PREFIX}
50+
${_gdal_msvc_win64_option}
51+
${GDAL_PKG_ARGS}
52+
)
5353

5454
ExternalProject_Add(GDAL
5555
DEPENDS ${_GDAL_DEPENDS}
@@ -118,6 +118,10 @@ else()
118118
set(_GDAL_ARGS_XML2 "--with-xml2=${LIBXML2_ROOT}/bin/xml2-config")
119119
endif()
120120

121+
# GDAL has a tendency to pick up old libkml versions and fail.
122+
# Thus, disable GDAL with libkml.
123+
set(_GDAL_ARGS_libKML "--with-libkml=no")
124+
121125
#+
122126
# GDAL Python dosen't work well for GDAL 1, nor does it work well on Apple at the moment
123127
#-
@@ -128,17 +132,18 @@ else()
128132
# If we're not using LTIDSDK and we are building openjpeg, use that for jpeg2k decoding
129133
# OpenJPEG support is not valid for GDAL 1, it requires an older version than we provide.
130134
if (fletch_ENABLE_openjpeg AND NOT fletch_LTIDSDK_ROOT AND NOT GDAL_SELECT_VERSION VERSION_LESS 2.0)
131-
set(JPEG_ARG "--with-openjpeg=${openjpeg_ROOT}")
132-
list(APPEND _GDAL_DEPENDS openjpeg)
133-
set( _GDAL_PKG_CONFIG_PATH "PKG_CONFIG_PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/pkgconfig" )
134-
endif()
135+
set(JPEG_ARG "--with-openjpeg=${openjpeg_ROOT}")
136+
list(APPEND _GDAL_DEPENDS openjpeg)
137+
set( _GDAL_PKG_CONFIG_PATH "PKG_CONFIG_PATH=${fletch_BUILD_INSTALL_PREFIX}/lib/pkgconfig" )
138+
else()
139+
set(JPEG_ARG "--without-openjpeg")
140+
endif()
135141

136142
# Here is where you add any new package related args for tiff, so we don't keep repeating them below.
137143
set (GDAL_PKG_ARGS
138144
${_GDAL_ARGS_PYTHON} ${_GDAL_PNG_ARGS} ${_GDAL_GEOTIFF_ARGS} ${_GDAL_ARGS_PG}
139145
${_GDAL_ARGS_PROJ4} ${_GDAL_ARGS_XML2} ${_GDAL_TIFF_ARGS} ${_GDAL_ARGS_SQLITE}
140-
${_GDAL_ARGS_ZLIB} ${_GDAL_ARGS_LTIDSDK} ${JPEG_ARG}
141-
--without-jasper
146+
${_GDAL_ARGS_ZLIB} ${_GDAL_ARGS_LTIDSDK} ${JPEG_ARG} ${_GDAL_ARGS_libKML} --without-jasper
142147
)
143148

144149

CMake/External_GTest.cmake

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
2+
if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
3+
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
4+
set(Gtest_CXX_STANDARD_ARGS "-DCMAKE_CXX_STANDARD:STRING=98")
5+
else()
6+
set(Gtest_CXX_STANDARD_ARGS "-DCMAKE_CXX_STANDARD:STRING=11")
7+
endif()
8+
endif()
9+
110
ExternalProject_Add(GTest
211
URL ${GTest_url}
312
URL_MD5 ${GTest_md5}
@@ -10,6 +19,7 @@ ExternalProject_Add(GTest
1019
-P ${fletch_SOURCE_DIR}/Patches/GTest/Patch.cmake
1120
CMAKE_ARGS
1221
${COMMON_CMAKE_ARGS}
22+
${Gtest_CXX_STANDARD_ARGS}
1323
)
1424

1525
set(GTEST_ROOT ${fletch_BUILD_INSTALL_PREFIX} CACHE STRING "")

CMake/External_OpenCV.cmake

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,12 +202,12 @@ else()
202202
list(APPEND OpenCV_EXTRA_BUILD_FLAGS -DBUILD_JPEG=ON)
203203
endif()
204204

205-
set(OpenCV_PYTHON_FLAGS
205+
set(OpenCV_PYTHON_FLAGS
206206
-DBUILD_opencv_python2:BOOL=OFF
207207
-DBUILD_opencv_python3:BOOL=OFF
208208
)
209209
if(fletch_BUILD_WITH_PYTHON)
210-
set(OpenCV_PYTHON_FLAGS
210+
set(OpenCV_PYTHON_FLAGS
211211
-DBUILD_opencv_python2:BOOL=${fletch_python2}
212212
-DBUILD_opencv_python3:BOOL=${fletch_python3}
213213
-DPYTHON${fletch_PYTHON_MAJOR_VERSION}_PACKAGES_PATH:PATH=${fletch_python_install}
@@ -219,6 +219,36 @@ if(fletch_BUILD_WITH_PYTHON)
219219
message(STATUS "Configuring OpenCV Python : ${OpenCV_PYTHON_FLAGS}")
220220
endif()
221221

222+
# Qt
223+
add_package_dependency(
224+
PACKAGE OpenCV
225+
PACKAGE_DEPENDENCY Qt
226+
PACKAGE_DEPENDENCY_ALIAS Qt4
227+
OPTIONAL
228+
)
229+
230+
if ( fletch_ENABLE_Qt )
231+
option(fletch_ENABLE_OpenCV_Qt "Build OpenCV with FFMPEG support" TRUE )
232+
mark_as_advanced(fletch_ENABLE_OpenCV_Qt)
233+
else()
234+
unset(fletch_ENABLE_OpenCV_Qt CACHE)
235+
endif()
236+
237+
if (fletch_ENABLE_OpenCV_Qt)
238+
if (Qt_version VERSION_LESS 5.0.0)
239+
list(APPEND OpenCV_EXTRA_BUILD_FLAGS
240+
-DWITH_QT:BOOL=4
241+
-DQT_QMAKE_EXECUTABLE:PATH=${QT_QMAKE_EXECUTABLE})
242+
else()
243+
list(APPEND OpenCV_EXTRA_BUILD_FLAGS
244+
-DWITH_QT:BOOL=5
245+
-DQT_QMAKE_EXECUTABLE:PATH=${QT_QMAKE_EXECUTABLE})
246+
endif()
247+
else()
248+
list(APPEND OpenCV_EXTRA_BUILD_FLAGS
249+
-DWITH_QT:BOOL=OFF)
250+
endif()
251+
222252
# If a patch file exists for this version, apply it
223253
set (OpenCV_patch ${fletch_SOURCE_DIR}/Patches/OpenCV/${OpenCV_version})
224254
if (EXISTS ${OpenCV_patch})
@@ -245,7 +275,7 @@ if (fletch_ENABLE_OpenCV_contrib)
245275
endif()
246276

247277
# In newer GCC we need to disable precompiled headers.
248-
if (CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6)
278+
if (CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
249279
list(APPEND OpenCV_EXTRA_BUILD_FLAGS -DENABLE_PRECOMPILED_HEADERS:BOOL=OFF)
250280
endif()
251281

CMake/External_PDAL.cmake

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
2+
# If a patch file exists for this version, apply it
3+
set (PDAL_patch ${fletch_SOURCE_DIR}/Patches/PDAL/${PDAL_version})
4+
if (EXISTS ${PDAL_patch})
5+
set(PDAL_PATCH_COMMAND ${CMAKE_COMMAND}
6+
-DPDAL_patch:PATH=${PDAL_patch}
7+
-DPDAL_source:PATH=${fletch_BUILD_PREFIX}/src/PDAL
8+
-P ${PDAL_patch}/Patch.cmake
9+
)
10+
endif()
11+
12+
13+
# Set GDAL dependency
14+
if (fletch_ENABLE_GDAL)
15+
message(STATUS "PDAL depending on internal GDAL")
16+
list(APPEND PDAL_DEPENDS GDAL)
17+
if(WIN32)
18+
set(GDAL_LIB_NAME "gdal_i.lib")
19+
else()
20+
set(GDAL_LIB_NAME "${CMAKE_SHARED_LIBRARY_PREFIX}gdal${CMAKE_SHARED_LIBRARY_SUFFIX}")
21+
endif()
22+
list(APPEND PDAL_EXTRA_BUILD_FLAGS
23+
-DGDAL_LIBRARY=${fletch_BUILD_INSTALL_PREFIX}/lib/${GDAL_LIB_NAME}
24+
-DGDAL_INCLUDE_DIR=${fletch_BUILD_INSTALL_PREFIX}/include
25+
)
26+
else()
27+
message(FATAL_ERROR "GDAL is required for PDAL, please enable")
28+
endif()
29+
30+
# Set GeoTiff dependency
31+
if (fletch_ENABLE_libgeotiff)
32+
message(STATUS "PDAL depending on internal libgeotiff")
33+
list(APPEND PDAL_DEPENDS libgeotiff)
34+
if(WIN32)
35+
set(GEOTIFF_LIB_NAME "geotiff_i.lib")
36+
else()
37+
set(GEOTIFF_LIB_NAME "${CMAKE_SHARED_LIBRARY_PREFIX}geotiff${CMAKE_SHARED_LIBRARY_SUFFIX}")
38+
endif()
39+
list(APPEND PDAL_EXTRA_BUILD_FLAGS
40+
-DGEOTIFF_LIBRARY=${fletch_BUILD_INSTALL_PREFIX}/lib/${GEOTIFF_LIB_NAME}
41+
-DGEOTIFF_INCLUDE_DIR=${fletch_BUILD_INSTALL_PREFIX}/include
42+
)
43+
else()
44+
message(FATAL_ERROR "libgeotiff is required for PDAL, please enable")
45+
endif()
46+
47+
# Set Proj.4 dependency
48+
if (fletch_ENABLE_PROJ4)
49+
message(STATUS "PDAL depending on internal PROJ4")
50+
list(APPEND PDAL_DEPENDS PROJ4)
51+
else()
52+
message(FATAL_ERROR "PROJ4 is required for PDAL, please enable")
53+
endif()
54+
55+
# Set libxml2 dependency
56+
if (fletch_ENABLE_libxml2)
57+
message(STATUS "PDAL depending on internal libxml2")
58+
list(APPEND PDAL_DEPENDS libxml2)
59+
list(APPEND PDAL_EXTRA_BUILD_FLAGS
60+
-Dpkgcfg_lib_PC_LIBXML_xml2=${fletch_BUILD_INSTALL_PREFIX}/lib/libxml2${CMAKE_SHARED_LIBRARY_SUFFIX}
61+
)
62+
else()
63+
list(APPEND PDAL_EXTRA_BUILD_FLAGS
64+
-DBUILD_PLUGIN_PGPOINTCLOUD:BOOL=OFF
65+
)
66+
endif()
67+
68+
# Set GEOS dependency
69+
if (fletch_ENABLE_GEOS)
70+
message(STATUS "PDAL depending on internal GEOS")
71+
list(APPEND PDAL_DEPENDS GEOS)
72+
if(WIN32)
73+
set(GEOS_LIB_NAME "geos_c.lib")
74+
else()
75+
set(GEOS_LIB_NAME "${CMAKE_SHARED_LIBRARY_PREFIX}geos_c${CMAKE_SHARED_LIBRARY_SUFFIX}")
76+
endif()
77+
list(APPEND PDAL_EXTRA_BUILD_FLAGS
78+
-DGEOS_LIBRARY=${fletch_BUILD_INSTALL_PREFIX}/lib/${GEOS_LIB_NAME}
79+
-DGEOS_INCLUDE_DIR=${fletch_BUILD_INSTALL_PREFIX}/include)
80+
else()
81+
message(FATAL_ERROR "GEOS is required for PDAL, please enable")
82+
endif()
83+
84+
if(WIN32)
85+
# Windows needs help finding dependency libs/includes
86+
list(APPEND PDAL_EXTRA_BUILD_FLAGS
87+
-DZLIB_LIBRARY_RELEASE=${fletch_BUILD_INSTALL_PREFIX}/lib/zlib.lib
88+
-DZLIB_INCLUDE_DIR=${fletch_BUILD_INSTALL_PREFIX}/include
89+
)
90+
endif()
91+
92+
ExternalProject_Add(PDAL
93+
DEPENDS ${PDAL_DEPENDS}
94+
URL ${PDAL_file}
95+
URL_MD5 ${PDAL_md5}
96+
${COMMON_EP_ARGS}
97+
${COMMON_CMAKE_EP_ARGS}
98+
PATCH_COMMAND ${PDAL_PATCH_COMMAND}
99+
CMAKE_ARGS
100+
${COMMON_CMAKE_ARGS}
101+
-DBUILD_SHARED_LIBS:BOOL=ON
102+
${PDAL_EXTRA_BUILD_FLAGS}
103+
)
104+
105+
106+
fletch_external_project_force_install(PACKAGE PDAL)
107+
108+
set(PDAL_ROOT ${fletch_BUILD_INSTALL_PREFIX} CACHE STRING "")
109+
110+
file(APPEND ${fletch_CONFIG_INPUT} "
111+
########################################
112+
# PDAL
113+
########################################
114+
set(PDAL_ROOT \${fletch_ROOT})
115+
set(PDAL_DIR \${fletch_ROOT}/lib/pdal/cmake)
116+
set(PDAL_INCLUDE_DIR \${fletch_ROOT}/include)
117+
118+
set(fletch_ENABLED_PDAL TRUE)
119+
")
120+

CMake/External_Qt.cmake

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,24 @@
11
# The Qt external project for fletch
22

3+
option(BUILD_Qt_MINIMAL "Build a reduced set of Qt packages. Removes webkit, javascipt and script" TRUE)
34
if (Qt_version VERSION_LESS 5.0.0)
4-
option(BUILD_Qt_MINIMAL "Build a reduced set of Qt packages. Removes webkit, javascipt and script" TRUE)
5-
65
if(BUILD_Qt_MINIMAL)
76
set(Qt_args_package -no-webkit -no-openssl)
87
else()
98
set(Qt_args_package -webkit)
109
endif()
11-
endif()
12-
13-
# We need python for Qt 5's Qt_Qml
14-
if (NOT Qt_version VERSION_LESS 5.0.0)
15-
message(STATUS "Building Qt 5")
16-
if (fletch_BUILD_WITH_PYTHON)
17-
get_filename_component(PYTHON_EXEC_PATH ${PYTHON_EXECUTABLE} DIRECTORY)
18-
list(APPEND Qt_ADDITIONAL_PATH ${PYTHON_EXEC_PATH})
10+
elseif(Qt_version VERSION_LESS 5.12 AND
11+
CMAKE_CXX_COMPILER_ID MATCHES GNU AND
12+
CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
13+
set(Qt_args_package -skip qtwebengine -no-qml-debug -skip wayland)
14+
else()
15+
if(BUILD_Qt_MINIMAL)
16+
set(Qt_args_package -skip qtwebengine -no-qml-debug)
1917
else()
20-
message(FATAL " Python is required for building Qt 5")
18+
set(Qt_args_package )
2119
endif()
22-
else()
23-
message(STATUS "Building Qt 4")
2420
endif()
2521

26-
2722
if(CMAKE_BUILD_TYPE)
2823
string(TOLOWER "${CMAKE_BUILD_TYPE}" QT_BUILD_TYPE)
2924
if(QT_BUILD_TYPE STREQUAL "debug")
@@ -210,7 +205,6 @@ else()
210205
set( Qt_DIR_NAME "qt5" )
211206
endif()
212207

213-
214208
list( APPEND Qt_configure
215209
-prefix ${fletch_BUILD_INSTALL_PREFIX}
216210
-docdir ${fletch_BUILD_INSTALL_PREFIX}/share/doc/${Qt_DIR_NAME}-${Qt_version}

0 commit comments

Comments
 (0)