Spaces:
Running
on
Zero
Running
on
Zero
File size: 13,832 Bytes
5f9d349 |
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 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 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 |
# Copyright (C) 2020, Inria
# GRAPHDECO research group, https://team.inria.fr/graphdeco
# All rights reserved.
#
# This software is free for non-commercial, research and evaluation use
# under the terms of the LICENSE.md file.
#
# For inquiries contact [email protected] and/or [email protected]
## Included once for all sub project.
## It contain the whole cmake instructions to find necessary common dependencies.
## 3rdParty (provided by sibr_addlibrary win3rdParty or from external packages) are then available in cmake sub projects.
##
## Do not include this file more than once but you can modify it to fit to your own project.
## So please, read it carefully because you can use on of these dependencies for your project or appen new one.
##
## As it is included after camke options, you can use conditional if(<CMAKE_PROJ_OPT>)/endif() to encapsulate your 3rdParty.
##
## win3rdParty function allowing to auto check/download/update binaries dependencies for current windows compiler
## Please open this file in order to get more documentation and usage examples.
include(Win3rdParty)
include(sibr_library)
Win3rdPartyGlobalCacheAction()
find_package(OpenGL REQUIRED)
set(OpenGL_GL_PREFERENCE "GLVND")
############
## Find GLEW
############
##for headless rendering
find_package(EGL QUIET)
if(EGL_FOUND)
add_definitions(-DGLEW_EGL)
message("Activating EGL support for headless GLFW/GLEW")
else()
message("EGL not found : EGL support for headless GLFW/GLEW is disabled")
endif()
if (MSVC11 OR MSVC12)
set(glew_multiset_arguments
CHECK_CACHED_VAR GLEW_INCLUDE_DIR PATH "glew-1.10.0/include" DOC "default empty doc"
CHECK_CACHED_VAR GLEW_LIBRARIES STRING LIST "debug;glew-1.10.0/${LIB_BUILT_DIR}/glew32d.lib;optimized;glew-1.10.0/${LIB_BUILT_DIR}/glew32.lib" DOC "default empty doc"
)
elseif (MSVC14 OR MSVC17)
set(glew_multiset_arguments
CHECK_CACHED_VAR GLEW_INCLUDE_DIR PATH "glew-2.0.0/include" DOC "default empty doc"
CHECK_CACHED_VAR GLEW_SHARED_LIBRARY_RELEASE PATH "glew-2.0.0/${LIB_BUILT_DIR}/glew32.lib"
CHECK_CACHED_VAR GLEW_STATIC_LIBRARY_RELEASE PATH "glew-2.0.0/${LIB_BUILT_DIR}/glew32s.lib"
CHECK_CACHED_VAR GLEW_SHARED_LIBRARY_DEBUG PATH "glew-2.0.0/${LIB_BUILT_DIR}/glew32d.lib"
CHECK_CACHED_VAR GLEW_STATIC_LIBRARY_DEBUG PATH "glew-2.0.0/${LIB_BUILT_DIR}/glew32sd.lib"
)
else ()
message("There is no provided GLEW library for your compiler, relying on find_package to find it")
endif()
sibr_addlibrary(NAME GLEW #VERBOSE ON
MSVC11 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/glew-1.10.0.7z"
MSVC12 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/glew-1.10.0.7z"
MSVC14 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC15-splitted%20version/glew-2.0.0.7z" # using recompiled version of glew
MULTI_SET ${glew_multiset_arguments}
)
set(GLEW_VERBOSE ON)
FIND_PACKAGE(GLEW REQUIRED)
IF(GLEW_FOUND)
INCLUDE_DIRECTORIES(${GLEW_INCLUDE_DIR})
ELSE(GLEW_FOUND)
MESSAGE("GLEW not found. Set GLEW_DIR to base directory of GLEW.")
ENDIF(GLEW_FOUND)
##############
## Find ASSIMP
##############
if (MSVC11 OR MSVC12)
set(assimp_set_arguments
CHECK_CACHED_VAR ASSIMP_DIR PATH "Assimp_3.1_fix"
)
elseif (MSVC14 OR MSVC17)
set(assimp_set_arguments
CHECK_CACHED_VAR ASSIMP_DIR PATH "Assimp-4.1.0"
)
else ()
message("There is no provided ASSIMP library for your compiler, relying on find_package to find it")
endif()
sibr_addlibrary(NAME ASSIMP #VERBOSE ON
MSVC11 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/Assimp_3.1_fix.7z"
MSVC12 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/Assimp_3.1_fix.7z"
MSVC14 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC15-splitted%20version/Assimp-4.1.0.7z"
MULTI_SET
${assimp_set_arguments}
)
find_package(ASSIMP REQUIRED)
include_directories(${ASSIMP_INCLUDE_DIR})
################
## Find FFMPEG
################
sibr_addlibrary(NAME FFMPEG
MSVC11 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/ffmpeg.zip"
MSVC12 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/ffmpeg.zip"
MSVC14 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC15-splitted%20version/ffmpeg-4.0.2-win64-win3rdParty.7z"
SET CHECK_CACHED_VAR FFMPEG_DIR PATH ${FFMPEG_WIN3RDPARTY_DIR}
)
find_package(FFMPEG)
include_directories(${FFMPEG_INCLUDE_DIR})
## COMMENT OUT ALL FFMPEG FOR CLUSTER
###################
## Find embree3
###################
sibr_addlibrary(
NAME embree3
MSVC11 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/embree2.7.0.x64.windows.7z"
MSVC14 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC15-splitted%20version/embree-3.6.1.x64.vc14.windows.7z" # TODO SV: provide a valid version if required
)
# CLUSTER
#find_package(embree 3.0 REQUIRED PATHS "/data/graphdeco/share/embree/usr/local/lib64/cmake/" )
find_package(embree 3.0 )
###################
## Find eigen3
###################
sibr_addlibrary(
NAME eigen3
#MSVC11 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/eigen-eigen-dc6cfdf9bcec.7z"
#MSVC14 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/eigen-eigen-dc6cfdf9bcec.7z" # TODO SV: provide a valid version if required
MSVC11 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC15-splitted%20version/eigen3.7z"
MSVC14 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC15-splitted%20version/eigen3.7z"
SET CHECK_CACHED_VAR eigen3_DIR PATH "eigen/share/eigen3/cmake"
)
include_directories(/usr/include/eigen3)
add_definitions(-DEIGEN_INITIALIZE_MATRICES_BY_ZERO)
#############
## Find Boost
#############
set(Boost_REQUIRED_COMPONENTS "system;chrono;filesystem;date_time" CACHE INTERNAL "Boost Required Components")
if (WIN32)
# boost multiset arguments
if (MSVC11 OR MSVC12)
set(boost_multiset_arguments
CHECK_CACHED_VAR BOOST_ROOT PATH "boost_1_55_0"
CHECK_CACHED_VAR BOOST_INCLUDEDIR PATH "boost_1_55_0"
CHECK_CACHED_VAR BOOST_LIBRARYDIR PATH "boost_1_55_0/${LIB_BUILT_DIR}"
#CHECK_CACHED_VAR Boost_COMPILER STRING "-${Boost_WIN3RDPARTY_VCID}" DOC "vcid (eg: -vc110 for MSVC11)"
CHECK_CACHED_VAR Boost_COMPILER STRING "-vc110" DOC "vcid (eg: -vc110 for MSVC11)" # NOTE: if it doesnt work, uncomment this option and set the right value for VisualC id
)
elseif (MSVC14 OR MSVC17)
set(boost_multiset_arguments
CHECK_CACHED_VAR BOOST_ROOT PATH "boost-1.71"
CHECK_CACHED_VAR BOOST_INCLUDEDIR PATH "boost-1.71"
CHECK_CACHED_VAR BOOST_LIBRARYDIR PATH "boost-1.71/${LIB_BUILT_DIR}"
CHECK_CACHED_VAR Boost_COMPILER STRING "-vc141" DOC "vcid (eg: -vc110 for MSVC11)" # NOTE: if it doesnt work, uncomment this option and set the right value for VisualC id
)
option(BOOST_MINIMAL_VERSION "Only get minimal Boost dependencies" ON)
if(${BOOST_MINIMAL_VERSION})
set(BOOST_MSVC14_ZIP "boost-1.71-ibr-minimal.7z")
else()
set(BOOST_MSVC14_ZIP "boost-1.71.7z")
endif()
else ()
message("There is no provided Boost library for your compiler, relying on find_package to find it")
endif()
sibr_addlibrary(NAME Boost VCID TIMEOUT 600 #VERBOSE ON
MSVC11 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/boost_1_55_0.7z"
MSVC12 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC11-splitted%20version/boost_1_55_0.7z"
MSVC14 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC15-splitted%20version/${BOOST_MSVC14_ZIP}" # boost compatible with msvc14
MULTI_SET ${boost_multiset_arguments}
CHECK_CACHED_VAR Boost_NO_SYSTEM_PATHS BOOL ON DOC "Set to ON to disable searching in locations not specified by these boost cached hint variables"
CHECK_CACHED_VAR Boost_NO_BOOST_CMAKE BOOL ON DOC "Set to ON to disable the search for boost-cmake (package cmake config file if boost was built with cmake)"
)
if(NOT Boost_COMPILER AND Boost_WIN3RDPARTY_USE)
message(WARNING "Boost_COMPILER is not set and it's needed.")
endif()
endif()
find_package(Boost 1.65.0 REQUIRED COMPONENTS ${Boost_REQUIRED_COMPONENTS})
# for CLUSTER
##find_package(Boost 1.58.0 REQUIRED COMPONENTS ${Boost_REQUIRED_COMPONENTS})
if(WIN32)
add_compile_options("$<$<COMPILE_LANGUAGE:CXX>:/EHsc>")
#add_definitions(/EHsc)
endif()
if(Boost_LIB_DIAGNOSTIC_DEFINITIONS)
add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
endif()
#if(WIN32)
add_definitions(-DBOOST_ALL_DYN_LINK -DBOOST_ALL_NO_LIB)
#endif()
include_directories(${BOOST_INCLUDEDIR} ${Boost_INCLUDE_DIRS})
link_directories(${BOOST_LIBRARYDIR} ${Boost_LIBRARY_DIRS})
##############
## Find OpenMP
##############
find_package(OpenMP)
##############
## Find OpenCV
##############
if (WIN32)
if (${MSVC_TOOLSET_VERSION} EQUAL 143)
MESSAGE("SPECIAL OPENCV HANDLING")
set(opencv_set_arguments
CHECK_CACHED_VAR OpenCV_DIR PATH "install" ## see OpenCVConfig.cmake
)
elseif (MSVC11 OR MSVC12)
set(opencv_set_arguments
CHECK_CACHED_VAR OpenCV_DIR PATH "opencv/build" ## see OpenCVConfig.cmake
)
elseif (MSVC14)
set(opencv_set_arguments
CHECK_CACHED_VAR OpenCV_DIR PATH "opencv-4.5.0/build" ## see OpenCVConfig.cmake
)
else ()
message("There is no provided OpenCV library for your compiler, relying on find_package to find it")
endif()
else()
message("There is no provided OpenCV library for your compiler, relying on find_package to find it")
endif()
sibr_addlibrary(NAME OpenCV #VERBOSE ON
MSVC11 "https://repo-sam.inria.fr/fungraph/dependencies/sibr/~0.9/opencv.7z"
MSVC12 "https://repo-sam.inria.fr/fungraph/dependencies/sibr/~0.9/opencv.7z"
MSVC14 "https://repo-sam.inria.fr/fungraph/dependencies/sibr/~0.9/opencv-4.5.0.7z" # opencv compatible with msvc14 and with contribs
MSVC17 "https://repo-sam.inria.fr/fungraph/dependencies/sibr/~0.9/opencv4-8.7z"
SET ${opencv_set_arguments}
)
find_package(OpenCV 4.5 REQUIRED) ## Use directly the OpenCVConfig.cmake provided
## FOR CLUSTER
###find_package(OpenCV 4.5 REQUIRED PATHS "/data/graphdeco/share/opencv/usr/local/lib64/cmake/opencv4/" ) ## Use directly the OpenCVConfig.cmake provided
##https://stackoverflow.com/questions/24262081/cmake-relwithdebinfo-links-to-debug-libs
set_target_properties(${OpenCV_LIBS} PROPERTIES MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE)
add_definitions(-DOPENCV_TRAITS_ENABLE_DEPRECATED)
if(OpenCV_INCLUDE_DIRS)
foreach(inc ${OpenCV_INCLUDE_DIRS})
if(NOT EXISTS ${inc})
set(OpenCV_INCLUDE_DIR "" CACHE PATH "additional custom include DIR (in case of trouble to find it (fedora 17 opencv package))")
endif()
endforeach()
if(OpenCV_INCLUDE_DIR)
list(APPEND OpenCV_INCLUDE_DIRS ${OpenCV_INCLUDE_DIR})
include_directories(${OpenCV_INCLUDE_DIRS})
endif()
endif()
###################
## Find GLFW
###################
sibr_addlibrary(
NAME glfw3
MSVC11 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC15-splitted%20version/glfw-3.2.1.7z"
MSVC14 "https://repo-sam.inria.fr/fungraph/dependencies/ibr-common/win3rdParty-MSVC15-splitted%20version/glfw-3.2.1.7z" # TODO SV: provide a valid version if required
SET CHECK_CACHED_VAR glfw3_DIR PATH "glfw-3.2.1"
)
### FOR CLUSTER COMMENT OUT lines above, uncomment lines below
##find_package(GLFW REQUIRED 3.3 )
##message("***********=============> GLFW IS " ${GLFW_LIBRARY})
##message("***********=============> GLFW IS " ${GLFW_LIBRARIES})
find_package(glfw3 REQUIRED)
sibr_gitlibrary(TARGET imgui
GIT_REPOSITORY "https://gitlab.inria.fr/sibr/libs/imgui.git"
GIT_TAG "741fb3ab6c7e1f7cef23ad0501a06b7c2b354944"
)
## FOR CLUSTER COMMENT OUT nativefiledialog
sibr_gitlibrary(TARGET nativefiledialog
GIT_REPOSITORY "https://gitlab.inria.fr/sibr/libs/nativefiledialog.git"
GIT_TAG "ae2fab73cf44bebdc08d997e307c8df30bb9acec"
)
sibr_gitlibrary(TARGET mrf
GIT_REPOSITORY "https://gitlab.inria.fr/sibr/libs/mrf.git"
GIT_TAG "30c3c9494a00b6346d72a9e37761824c6f2b7207"
)
sibr_gitlibrary(TARGET nanoflann
GIT_REPOSITORY "https://gitlab.inria.fr/sibr/libs/nanoflann.git"
GIT_TAG "7a20a9ac0a1d34850fc3a9e398fc4a7618e8a69a"
)
sibr_gitlibrary(TARGET picojson
GIT_REPOSITORY "https://gitlab.inria.fr/sibr/libs/picojson.git"
GIT_TAG "7cf8feee93c8383dddbcb6b64cf40b04e007c49f"
)
sibr_gitlibrary(TARGET rapidxml
GIT_REPOSITORY "https://gitlab.inria.fr/sibr/libs/rapidxml.git"
GIT_TAG "069e87f5ec5ce1745253bd64d89644d6b894e516"
)
sibr_gitlibrary(TARGET xatlas
GIT_REPOSITORY "https://gitlab.inria.fr/sibr/libs/xatlas.git"
GIT_TAG "0fbe06a5368da13fcdc3ee48d4bdb2919ed2a249"
INCLUDE_DIRS "source/xatlas"
)
Win3rdPartyGlobalCacheAction()
|