Skip to content

Commit 099ccd0

Browse files
committed
Merge branch 'master' into update-gtest-version
* master: Update release notes Remove support for OpenCV v2 Patch Caffe Dependencies to prevent Caffe overwriting the HDF5 libs from find_package Create Caffe patch that overrides incorrect hdf5 lib search Update release notes Add VTK version 9.0.1 Use the tar.gz files from the download site. Remove VTK 6 Add HDF5 update, version 1.12.0
2 parents faa57d7 + ff9e64f commit 099ccd0

27 files changed

Lines changed: 263 additions & 6871 deletions

CMake/External_HDF5.cmake

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,31 @@ add_package_dependency(
77

88
if(fletch_ENABLE_ZLib)
99
get_system_library_name( zlib zlib_libname )
10-
set( HDF5_ZLIB_ARGS "-DZLIB_LIBRARY_RELEASE:PATH=${ZLIB_ROOT}/lib/${zlib_libname}"
10+
set(HDF5_ZLIB_ARGS
11+
"-DZLIB_LIBRARY_RELEASE:PATH=${ZLIB_ROOT}/lib/${zlib_libname}"
1112
"-DZLIB_INCLUDE_DIR:PATH=${ZLIB_ROOT}/include")
13+
endif()
1214

15+
set (HDF5_PATCH_DIR ${fletch_SOURCE_DIR}/Patches/HDF5/${HDF5_SELECT_VERSION})
16+
if(EXISTS ${HDF5_PATCH_DIR})
17+
set(HDF5_PATCH_COMMAND
18+
${CMAKE_COMMAND}
19+
-DHDF5_patch:PATH=${HDF5_PATCH_DIR}
20+
-DHDF5_source:PATH=${fletch_BUILD_PREFIX}/src/HDF5
21+
-P ${HDF5_PATCH_DIR}/Patch.cmake
22+
)
23+
else()
24+
set(HDF5_PATCH_COMMAND "")
1325
endif()
1426

1527
ExternalProject_Add(HDF5
1628
URL ${HDF5_url}
1729
URL_MD5 ${HDF5_md5}
1830
DEPENDS ${HDF5_DEPENDS}
31+
DOWNLOAD_NAME ${HDF5_dlname}
1932
${COMMON_EP_ARGS}
2033
${COMMON_CMAKE_EP_ARGS}
21-
PATCH_COMMAND ${CMAKE_COMMAND}
22-
-DHDF5_patch:PATH=${fletch_SOURCE_DIR}/Patches/HDF5
23-
-DHDF5_source:PATH=${fletch_BUILD_PREFIX}/src/HDF5
24-
-P ${fletch_SOURCE_DIR}/Patches/HDF5/Patch.cmake
34+
PATCH_COMMAND ${HDF5_PATCH_COMMAND}
2535
CMAKE_ARGS
2636
${COMMON_CMAKE_ARGS}
2737
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}

CMake/External_OpenCV.cmake

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,6 @@ set(fletch_ENABLE_OpenCV_VTK FALSE)
5656
# Set VTK dependency if we're locally building it
5757
if(fletch_ENABLE_OpenCV_VTK)
5858
message(STATUS "OpenCV depending on fletch VTK")
59-
60-
if (OpenCV_version VERSION_LESS 3.2.0 AND NOT VTK_version VERSION_LESS 7.0)
61-
message(FATAL_ERRROR "OpenCV versions before 3.2 can only handle pre 7.0 VTK versions")
62-
endif()
6359
list(APPEND OpenCV_DEPENDS VTK)
6460
list(APPEND OpenCV_EXTRA_BUILD_FLAGS -DWITH_VTK:BOOL=TRUE
6561
-DVTK_DIR:PATH=${VTK_DIR}

CMake/fletch-tarballs.cmake

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ list(APPEND fletch_external_sources Qt)
305305
# Support 2.4.13, 3.4, and 4.2 optionally
306306
if (fletch_ENABLE_OpenCV OR fletch_ENABLE_ALL_PACKAGES OR AUTO_ENABLE_CAFFE_DEPENDENCY)
307307
set(OpenCV_SELECT_VERSION 3.4.0 CACHE STRING "Select the version of OpenCV to build.")
308-
set_property(CACHE OpenCV_SELECT_VERSION PROPERTY STRINGS "2.4.13" "3.4.0" "4.2.0")
308+
set_property(CACHE OpenCV_SELECT_VERSION PROPERTY STRINGS "3.4.0" "4.2.0")
309309

310310
set(OpenCV_version ${OpenCV_SELECT_VERSION})
311311
set(OpenCV_url "http://github.com/Itseez/opencv/archive/${OpenCV_version}.zip")
@@ -329,8 +329,6 @@ if (fletch_ENABLE_OpenCV OR fletch_ENABLE_ALL_PACKAGES OR AUTO_ENABLE_CAFFE_DEPE
329329
elseif (OpenCV_version VERSION_EQUAL 3.4.0)
330330
set(OpenCV_md5 "ed60f8bbe7a448f325d0a0f58fcf2063")
331331
set(OpenCV_contrib_md5 "92c09ce6c837329f05802a8d17136148")
332-
elseif (OpenCV_version VERSION_EQUAL 2.4.13)
333-
set(OpenCV_md5 "886b0c511209b2f3129649928135967c")
334332
else()
335333
message(ERROR " OpenCV Version \"${OpenCV_version}\" Not Supported")
336334
endif()
@@ -429,23 +427,22 @@ list(APPEND fletch_external_sources CppDB)
429427
# VTK
430428
if (fletch_ENABLE_VTK OR fletch_ENABLE_ALL_PACKAGES)
431429
set(VTK_SELECT_VERSION 8.2 CACHE STRING "Select the version of VTK to build.")
432-
set_property(CACHE VTK_SELECT_VERSION PROPERTY STRINGS 6.2 8.0 8.2)
430+
set_property(CACHE VTK_SELECT_VERSION PROPERTY STRINGS 8.0 8.2 9.0)
433431
endif()
434432

435-
if (VTK_SELECT_VERSION VERSION_EQUAL 8.2)
433+
if (VTK_SELECT_VERSION VERSION_EQUAL 9.0)
434+
set(VTK_version 9.0.1)
435+
set(VTK_md5 "b3ba14d616c3b23583c42cffb585deac")
436+
elseif (VTK_SELECT_VERSION VERSION_EQUAL 8.2)
436437
set(VTK_version 8.2.0)
437-
set(VTK_md5 "94ba8959b56dcfa6bac996158669ac36")
438+
set(VTK_md5 "8af3307da0fc2ef8cafe4a312b821111")
438439
elseif (VTK_SELECT_VERSION VERSION_EQUAL 8.0)
439440
set(VTK_version 8.0.1)
440-
set(VTK_md5 "c248dbe8ffd9b74c6f41199e66d6c690") # v8.0.1
441-
elseif (VTK_SELECT_VERSION VERSION_EQUAL 6.2)
442-
# TODO: Remove when we remove support for OpenCV < 3.2
443-
set(VTK_version 6.2.0)
444-
set(VTK_md5 "2363432e25e6a2377e1c241cd2954f00") # v6.2
441+
set(VTK_md5 "692d09ae8fadc97b59d35cab429b261a") # v8.0.1
445442
elseif (fletch_ENABLE_VTK OR fletch_ENABLE_ALL_PACKAGES)
446443
message(ERROR "VTK Version ${VTK_SELECT_VERSION} Not Supported")
447444
endif()
448-
set(VTK_url "http://www.vtk.org/files/release/${VTK_SELECT_VERSION}/VTK-${VTK_version}.zip")
445+
set(VTK_url "http://www.vtk.org/files/release/${VTK_SELECT_VERSION}/VTK-${VTK_version}.tar.gz")
449446
list(APPEND fletch_external_sources VTK)
450447

451448
# VXL
@@ -472,11 +469,27 @@ if(NOT WIN32)
472469
endif()
473470

474471
# HDF5
475-
set(HDF5_major "1.8")
476-
set(HDF5_rev "17")
477-
set(HDF5_version "${HDF5_major}.${HDF5_rev}")
478-
set(HDF5_url "https://support.hdfgroup.org/ftp/HDF5/prev-releases/hdf5-${HDF5_major}/hdf5-${HDF5_version}/src/hdf5-${HDF5_version}.tar")
479-
set(HDF5_md5 "bdf0fc3d648679eeb5d7b4b78f92a83f")
472+
if (fletch_ENABLE_HDF5 OR fletch_ENABLE_ALL_PACKAGES)
473+
set(HDF5_SELECT_VERSION 1.12.0 CACHE STRING "Select the major version of HDF5 to build.")
474+
set_property(CACHE HDF5_SELECT_VERSION PROPERTY STRINGS "1.12.0" "1.8.17")
475+
if (HDF5_SELECT_VERSION VERSION_EQUAL 1.12.0)
476+
set(HDF5_major "1")
477+
set(HDF5_minor "12")
478+
set(HDF5_rev "0")
479+
set(HDF5_version_string "${HDF5_major}_${HDF5_minor}_${HDF5_rev}")
480+
set(HDF5_md5 "7181d12d1940b725248046077a849f54")
481+
elseif(HDF5_SELECT_VERSION VERSION_EQUAL 1.8.17)
482+
set(HDF5_major "1")
483+
set(HDF5_minor "8")
484+
set(HDF5_rev "17")
485+
set(HDF5_version_string "${HDF5_major}_${HDF5_minor}_${HDF5_rev}")
486+
set(HDF5_md5 "3ff8830763b0356408e1d454628fa25e")
487+
else()
488+
message(ERROR "HDF5 Version ${HDF5_SELECT_VERSION} Not Supported")
489+
endif()
490+
set(HDF5_url "https://github.com/HDFGroup/hdf5/archive/hdf5-${HDF5_version_string}.tar.gz")
491+
set(HDF5_dlname "hdf5-${HDF5_version_string}.tar.gz")
492+
endif()
480493
list(APPEND fletch_external_sources HDF5)
481494

482495
# SNAPPY

Doc/release-notes/master.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ Updates since v1.4.0
1616
* Update ZLib from 1.2.9 to 1.2.11
1717
* Update Eigen from 3.3.4 to 3.3.7
1818
* Update GTest from 1.8.1 to 1.10.0
19+
* Remove support for OpenCV 2
20+
* Add VTK version 9.0.1
1921

2022
Fixes since v1.4.0
2123
------------------

Patches/Caffe/527f97c0692f116ada7cb97eed8172ef7da05416/Patch.cmake

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ if(WIN32)
3131
DESTINATION
3232
${Caffe_source}/cmake/
3333
)
34-
34+
file(COPY
35+
${Caffe_patch}/cmake/Dependencies.cmake
36+
DESTINATION
37+
${Caffe_source}/cmake/
38+
)
3539
else()
3640
message(FATAL_ERROR "This caffe patch is only for windows")
3741
endif()
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
# This list is required for static linking and exported to CaffeConfig.cmake
2+
set(Caffe_LINKER_LIBS "")
3+
4+
# ---[ Boost
5+
find_package(Boost 1.46 REQUIRED COMPONENTS system thread filesystem)
6+
include_directories(SYSTEM ${Boost_INCLUDE_DIR})
7+
add_definitions(-DBOOST_ALL_NO_LIB)
8+
list(APPEND Caffe_LINKER_LIBS ${Boost_LIBRARIES})
9+
10+
if(DEFINED MSVC)
11+
# We should define this only when necessary,
12+
# i.e VS 2013 Update 4 or earlier.
13+
add_definitions(-DBOOST_NO_CXX11_TEMPLATE_ALIASES)
14+
endif()
15+
16+
# ---[ Threads
17+
find_package(Threads REQUIRED)
18+
list(APPEND Caffe_LINKER_LIBS ${CMAKE_THREAD_LIBS_INIT})
19+
20+
# ---[ Google-glog
21+
include("cmake/External/glog.cmake")
22+
include_directories(SYSTEM ${GLOG_INCLUDE_DIRS})
23+
list(APPEND Caffe_LINKER_LIBS ${GLOG_LIBRARIES})
24+
25+
# ---[ Google-gflags
26+
include("cmake/External/gflags.cmake")
27+
include_directories(SYSTEM ${GFLAGS_INCLUDE_DIRS})
28+
list(APPEND Caffe_LINKER_LIBS ${GFLAGS_LIBRARIES})
29+
30+
# ---[ Google-protobuf
31+
include(cmake/ProtoBuf.cmake)
32+
33+
# ---[ HDF5
34+
if(MSVC)
35+
# Find HDF5 using it's hdf5-config.cmake file with MSVC
36+
if(DEFINED HDF5_DIR)
37+
list(APPEND CMAKE_MODULE_PATH ${HDF5_DIR})
38+
endif()
39+
find_package(HDF5 COMPONENTS C HL REQUIRED)
40+
# set(HDF5_LIBRARIES hdf5-shared)
41+
# set(HDF5_HL_LIBRARIES hdf5_hl-shared)
42+
else()
43+
find_package(HDF5 COMPONENTS HL REQUIRED)
44+
endif()
45+
include_directories(SYSTEM ${HDF5_INCLUDE_DIRS} ${HDF5_HL_INCLUDE_DIR})
46+
list(APPEND Caffe_LINKER_LIBS ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES})
47+
48+
# ---[ LMDB
49+
if(USE_LMDB)
50+
find_package(LMDB REQUIRED)
51+
include_directories(SYSTEM ${LMDB_INCLUDE_DIR})
52+
list(APPEND Caffe_LINKER_LIBS ${LMDB_LIBRARIES})
53+
add_definitions(-DUSE_LMDB)
54+
if(ALLOW_LMDB_NOLOCK)
55+
add_definitions(-DALLOW_LMDB_NOLOCK)
56+
endif()
57+
endif()
58+
59+
# ---[ LevelDB
60+
if(USE_LEVELDB)
61+
find_package(LevelDB REQUIRED)
62+
include_directories(SYSTEM ${LevelDB_INCLUDE})
63+
list(APPEND Caffe_LINKER_LIBS ${LevelDB_LIBRARIES})
64+
add_definitions(-DUSE_LEVELDB)
65+
endif()
66+
67+
# ---[ Snappy
68+
if(USE_LEVELDB)
69+
find_package(Snappy REQUIRED)
70+
include_directories(SYSTEM ${Snappy_INCLUDE_DIR})
71+
list(APPEND Caffe_LINKER_LIBS ${Snappy_LIBRARIES})
72+
endif()
73+
74+
# ---[ CUDA
75+
include(cmake/Cuda.cmake)
76+
if(NOT HAVE_CUDA)
77+
if(CPU_ONLY)
78+
message(STATUS "-- CUDA is disabled. Building without it...")
79+
else()
80+
message(WARNING "-- CUDA is not detected by cmake. Building without it...")
81+
endif()
82+
83+
# TODO: remove this not cross platform define in future. Use caffe_config.h instead.
84+
add_definitions(-DCPU_ONLY)
85+
endif()
86+
87+
if(USE_NCCL)
88+
include("cmake/External/nccl.cmake")
89+
include_directories(SYSTEM ${NCCL_INCLUDE_DIR})
90+
list(APPEND Caffe_LINKER_LIBS ${NCCL_LIBRARIES})
91+
add_definitions(-DUSE_NCCL)
92+
endif()
93+
94+
# ---[ OpenCV
95+
if(USE_OPENCV)
96+
find_package(OpenCV QUIET COMPONENTS core highgui imgproc imgcodecs)
97+
if(NOT OpenCV_FOUND) # if not OpenCV 3.x, then imgcodecs are not found
98+
find_package(OpenCV REQUIRED COMPONENTS core highgui imgproc)
99+
endif()
100+
include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS})
101+
list(APPEND Caffe_LINKER_LIBS ${OpenCV_LIBS})
102+
message(STATUS "OpenCV found (${OpenCV_CONFIG_PATH})")
103+
add_definitions(-DUSE_OPENCV)
104+
endif()
105+
106+
# ---[ BLAS
107+
if(NOT APPLE)
108+
set(BLAS "Atlas" CACHE STRING "Selected BLAS library")
109+
set_property(CACHE BLAS PROPERTY STRINGS "Atlas;Open;MKL")
110+
111+
if(BLAS STREQUAL "Atlas" OR BLAS STREQUAL "atlas")
112+
find_package(Atlas REQUIRED)
113+
include_directories(SYSTEM ${Atlas_INCLUDE_DIR})
114+
list(APPEND Caffe_LINKER_LIBS ${Atlas_LIBRARIES})
115+
elseif(BLAS STREQUAL "Open" OR BLAS STREQUAL "open")
116+
find_package(OpenBLAS REQUIRED)
117+
include_directories(SYSTEM ${OpenBLAS_INCLUDE_DIR})
118+
list(APPEND Caffe_LINKER_LIBS ${OpenBLAS_LIB})
119+
elseif(BLAS STREQUAL "MKL" OR BLAS STREQUAL "mkl")
120+
find_package(MKL REQUIRED)
121+
include_directories(SYSTEM ${MKL_INCLUDE_DIR})
122+
list(APPEND Caffe_LINKER_LIBS ${MKL_LIBRARIES})
123+
add_definitions(-DUSE_MKL)
124+
endif()
125+
elseif(APPLE)
126+
find_package(vecLib REQUIRED)
127+
include_directories(SYSTEM ${vecLib_INCLUDE_DIR})
128+
list(APPEND Caffe_LINKER_LIBS ${vecLib_LINKER_LIBS})
129+
130+
if(VECLIB_FOUND)
131+
if(NOT vecLib_INCLUDE_DIR MATCHES "^/System/Library/Frameworks/vecLib.framework.*")
132+
add_definitions(-DUSE_ACCELERATE)
133+
endif()
134+
endif()
135+
endif()
136+
137+
# ---[ Python
138+
if(BUILD_python)
139+
if(NOT "${python_version}" VERSION_LESS "3.0.0")
140+
# use python3
141+
find_package(PythonInterp 3.0)
142+
find_package(PythonLibs 3.0)
143+
find_package(NumPy 1.7.1)
144+
# Find the matching boost python implementation
145+
set(version ${PYTHONLIBS_VERSION_STRING})
146+
147+
STRING( REGEX REPLACE "[^0-9]" "" boost_py_version ${version} )
148+
find_package(Boost 1.46 COMPONENTS "python-py${boost_py_version}")
149+
set(Boost_PYTHON_FOUND ${Boost_PYTHON-PY${boost_py_version}_FOUND})
150+
151+
while(NOT "${version}" STREQUAL "" AND NOT Boost_PYTHON_FOUND)
152+
STRING( REGEX REPLACE "([0-9.]+).[0-9]+" "\\1" version ${version} )
153+
154+
STRING( REGEX REPLACE "[^0-9]" "" boost_py_version ${version} )
155+
find_package(Boost 1.46 COMPONENTS "python-py${boost_py_version}")
156+
set(Boost_PYTHON_FOUND ${Boost_PYTHON-PY${boost_py_version}_FOUND})
157+
158+
STRING( REGEX MATCHALL "([0-9.]+).[0-9]+" has_more_version ${version} )
159+
if("${has_more_version}" STREQUAL "")
160+
break()
161+
endif()
162+
endwhile()
163+
if(NOT Boost_PYTHON_FOUND)
164+
find_package(Boost 1.46 COMPONENTS python)
165+
endif()
166+
else()
167+
# disable Python 3 search
168+
find_package(PythonInterp 2.7)
169+
find_package(PythonLibs 2.7)
170+
find_package(NumPy 1.7.1)
171+
find_package(Boost 1.46 COMPONENTS python)
172+
endif()
173+
if(PYTHONLIBS_FOUND AND NUMPY_FOUND AND Boost_PYTHON_FOUND)
174+
set(HAVE_PYTHON TRUE)
175+
if(Boost_USE_STATIC_LIBS AND MSVC)
176+
add_definitions(-DBOOST_PYTHON_STATIC_LIB)
177+
endif()
178+
if(BUILD_python_layer)
179+
add_definitions(-DWITH_PYTHON_LAYER)
180+
include_directories(SYSTEM ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIR} ${Boost_INCLUDE_DIRS})
181+
list(APPEND Caffe_LINKER_LIBS ${PYTHON_LIBRARIES} ${Boost_LIBRARIES})
182+
endif()
183+
endif()
184+
endif()
185+
186+
# ---[ Matlab
187+
if(BUILD_matlab)
188+
if(MSVC)
189+
find_package(Matlab COMPONENTS MAIN_PROGRAM MX_LIBRARY)
190+
if(MATLAB_FOUND)
191+
set(HAVE_MATLAB TRUE)
192+
endif()
193+
else()
194+
find_package(MatlabMex)
195+
if(MATLABMEX_FOUND)
196+
set(HAVE_MATLAB TRUE)
197+
endif()
198+
endif()
199+
# sudo apt-get install liboctave-dev
200+
find_program(Octave_compiler NAMES mkoctfile DOC "Octave C++ compiler")
201+
202+
if(HAVE_MATLAB AND Octave_compiler)
203+
set(Matlab_build_mex_using "Matlab" CACHE STRING "Select Matlab or Octave if both detected")
204+
set_property(CACHE Matlab_build_mex_using PROPERTY STRINGS "Matlab;Octave")
205+
endif()
206+
endif()
207+
208+
# ---[ Doxygen
209+
if(BUILD_docs)
210+
find_package(Doxygen)
211+
endif()

Patches/OpenCV/2.4.13/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)