Skip to content

Commit bd7f552

Browse files
authored
Merge branch 'master' into update-gtest-version
2 parents faa57d7 + 90675b1 commit bd7f552

File tree

7 files changed

+262
-20
lines changed

7 files changed

+262
-20
lines changed

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/fletch-tarballs.cmake

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -429,23 +429,22 @@ list(APPEND fletch_external_sources CppDB)
429429
# VTK
430430
if (fletch_ENABLE_VTK OR fletch_ENABLE_ALL_PACKAGES)
431431
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)
432+
set_property(CACHE VTK_SELECT_VERSION PROPERTY STRINGS 8.0 8.2 9.0)
433433
endif()
434434

435-
if (VTK_SELECT_VERSION VERSION_EQUAL 8.2)
435+
if (VTK_SELECT_VERSION VERSION_EQUAL 9.0)
436+
set(VTK_version 9.0.1)
437+
set(VTK_md5 "b3ba14d616c3b23583c42cffb585deac")
438+
elseif (VTK_SELECT_VERSION VERSION_EQUAL 8.2)
436439
set(VTK_version 8.2.0)
437-
set(VTK_md5 "94ba8959b56dcfa6bac996158669ac36")
440+
set(VTK_md5 "8af3307da0fc2ef8cafe4a312b821111")
438441
elseif (VTK_SELECT_VERSION VERSION_EQUAL 8.0)
439442
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
443+
set(VTK_md5 "692d09ae8fadc97b59d35cab429b261a") # v8.0.1
445444
elseif (fletch_ENABLE_VTK OR fletch_ENABLE_ALL_PACKAGES)
446445
message(ERROR "VTK Version ${VTK_SELECT_VERSION} Not Supported")
447446
endif()
448-
set(VTK_url "http://www.vtk.org/files/release/${VTK_SELECT_VERSION}/VTK-${VTK_version}.zip")
447+
set(VTK_url "http://www.vtk.org/files/release/${VTK_SELECT_VERSION}/VTK-${VTK_version}.tar.gz")
449448
list(APPEND fletch_external_sources VTK)
450449

451450
# VXL
@@ -472,11 +471,27 @@ if(NOT WIN32)
472471
endif()
473472

474473
# 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")
474+
if (fletch_ENABLE_HDF5 OR fletch_ENABLE_ALL_PACKAGES)
475+
set(HDF5_SELECT_VERSION 1.12.0 CACHE STRING "Select the major version of HDF5 to build.")
476+
set_property(CACHE HDF5_SELECT_VERSION PROPERTY STRINGS "1.12.0" "1.8.17")
477+
if (HDF5_SELECT_VERSION VERSION_EQUAL 1.12.0)
478+
set(HDF5_major "1")
479+
set(HDF5_minor "12")
480+
set(HDF5_rev "0")
481+
set(HDF5_version_string "${HDF5_major}_${HDF5_minor}_${HDF5_rev}")
482+
set(HDF5_md5 "7181d12d1940b725248046077a849f54")
483+
elseif(HDF5_SELECT_VERSION VERSION_EQUAL 1.8.17)
484+
set(HDF5_major "1")
485+
set(HDF5_minor "8")
486+
set(HDF5_rev "17")
487+
set(HDF5_version_string "${HDF5_major}_${HDF5_minor}_${HDF5_rev}")
488+
set(HDF5_md5 "3ff8830763b0356408e1d454628fa25e")
489+
else()
490+
message(ERROR "HDF5 Version ${HDF5_SELECT_VERSION} Not Supported")
491+
endif()
492+
set(HDF5_url "https://github.com/HDFGroup/hdf5/archive/hdf5-${HDF5_version_string}.tar.gz")
493+
set(HDF5_dlname "hdf5-${HDF5_version_string}.tar.gz")
494+
endif()
480495
list(APPEND fletch_external_sources HDF5)
481496

482497
# 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+
* Add VTK version 9.0.1
20+
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()

0 commit comments

Comments
 (0)