add SupeBuild for odm modules (only opencv and pcl)

pull/249/head
edgarriba 2015-11-11 19:25:26 +01:00
rodzic 4f376bb0b4
commit fd338c40c3
4 zmienionych plików z 152 dodań i 29 usunięć

Wyświetl plik

@ -1,34 +1,14 @@
cmake_minimum_required(VERSION 2.8.9)
cmake_minimum_required(VERSION 2.8)
project(OpenDroneMap)
set(ODM_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
set(ODM_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
set(ODM_BINARY_DIR ${PROJECT_BINARY_DIR}/bin)
set(ODM_LIBRARY_DIR ${PROJECT_BINARY_DIR}/lib)
#TODO(edgar): add option in order to point to CMAKE_PREFIX_PATH
# e.g. ODM_SB_INSTALL_PATH
set(ODM_THIRD_PARTY_DIR ${ODM_SOURCE_DIR}/third_party)
# Add ODM sub-modules
add_subdirectory(modules/odm_extract_utm)
add_subdirectory(modules/odm_georef)
add_subdirectory(modules/odm_meshing)
add_subdirectory(modules/odm_orthophoto)
add_subdirectory(modules/odm_texturing)
set(URL http://ftp.gnu.org/gnu/parallel/parallel-20141022.tar.bz2)
set(FILE_NAME parallel.tar.bz2)
set(FILE_DIR ${ODM_THIRD_PARTY_DIR}/parallel)
set(FILE_PATH ${FILE_DIR}/${FILE_NAME})
message(STATUS "downloading ... ${FILE_NAME}")
file(DOWNLOAD ${URL} ${FILE_PATH}
EXPECTED_MD5 c01f53f9f6cc721a81591308f9e689c4
STATUS status
LOG log)
message(STATUS "downloading ... done")
message(STATUS "extracting ... ${FILE_PATH}")
if(NOT EXISTS "${FILE_PATH}")
message(FATAL_ERROR "error: file to extract does not exist: '${FILE_NAME}'")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xjf ${FILE_PATH}
WORKING_DIRECTORY ${FILE_DIR}
RESULT_VARIABLE rv)

Wyświetl plik

@ -0,0 +1,45 @@
ExternalProject_Add(opencv
URL https://github.com/Itseez/opencv/archive/2.4.11.zip
URL_MD5 b517e83489c709eee1d8be76b16976a7
BINARY_DIR ${SB_BUILD_DIR}
INSTALL_DIR ${SB_INSTALL_PREFIX}
DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
CMAKE_ARGS
-DBUILD_opencv_core=ON
-DBUILD_opencv_imgproc=ON
-DBUILD_opencv_highgui=ON
-DWITH_CUDA=OFF
-DWITH_GTK=OFF
-DWITH_VTK=OFF
-DWITH_EIGEN=OFF
-DWITH_OPENNI=OFF
-DBUILD_EXAMPLES=OFF
-DBUILD_TESTS=OFF
-DBUILD_PERF_TESTS=OFF
-DBUILD_DOCS=OFF
-DBUILD_opencv_apps=OFF
-DBUILD_opencv_flann=OFF
-DBUILD_opencv_legacy=OFF
-DBUILD_opencv_photo=OFF
-DBUILD_opencv_video=OFF
-DBUILD_opencv_calib3d=OFF
-DBUILD_opencv_gpu=OFF
-DBUILD_opencv_ml=OFF
-DBUILD_opencv_python=OFF
-DBUILD_opencv_videostab=OFF
-DBUILD_opencv_contrib=OFF
-DBUILD_opencv_nonfree=OFF
-DBUILD_opencv_stitching=OFF
-DBUILD_opencv_world=OFF
-DBUILD_opencv_objdetect=OFF
-DBUILD_opencv_superres=OFF
-DBUILD_opencv_features2d=OFF
-DBUILD_opencv_java=OFF
-DBUILD_opencv_ocl=OFF
-DBUILD_opencv_ts=OFF
-DCMAKE_BUILD_TYPE:STRING=Release
-DCMAKE_INSTALL_PREFIX:PATH=${SB_INSTALL_PREFIX}
)
set(OPENCV_DIR ${SB_INSTALL_PREFIX}/share)

Wyświetl plik

@ -0,0 +1,38 @@
ExternalProject_Add(pcl
URL https://github.com/PointCloudLibrary/pcl/archive/pcl-1.7.2.tar.gz
URL_MD5 02c72eb6760fcb1f2e359ad8871b9968
BINARY_DIR ${SB_BUILD_DIR}
INSTALL_DIR ${SB_INSTALL_PREFIX}
DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
CMAKE_ARGS
-DBUILD_features=OFF
-DBUILD_filters=OFF
-DBUILD_geometry=OFF
-DBUILD_keypoints=OFF
-DBUILD_outofcore=OFF
-DBUILD_people=OFF
-DBUILD_recognition=OFF
-DBUILD_registration=OFF
-DBUILD_sample_consensus=OFF
-DBUILD_segmentation=OFF
-DBUILD_features=OFF
-DBUILD_surface_on_nurbs=OFF
-DBUILD_tools=OFF
-DBUILD_tracking=OFF
-DBUILD_visualization=OFF
-DWITH_QT=OFF
-DBUILD_OPENNI=OFF
-DBUILD_OPENNI2=OFF
-DWITH_OPENNI=OFF
-DWITH_OPENNI2=OFF
-DWITH_FZAPI=OFF
-DWITH_LIBUSB=OFF
-DWITH_PCAP=OFF
-DWITH_PXCAPI=OFF
-DCMAKE_BUILD_TYPE=Release
-DPCL_VERBOSITY_LEVEL=Error
-DCMAKE_INSTALL_PREFIX:PATH=${SB_INSTALL_PREFIX}
)
set(PCL_DIR ${SB_INSTALL_PREFIX}/share)

Wyświetl plik

@ -0,0 +1,60 @@
cmake_minimum_required(VERSION 2.8)
project(ODM-SuperBuild)
# Path to additional CMake modules
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake)
include(ExternalProject)
# Setup location where source tar-balls are downloaded
set (DOWNLOAD_LOCATION "${CMAKE_SOURCE_DIR}/Downloads"
CACHE PATH "Location where source tar-balls are (to be) downloaded.")
mark_as_advanced(DOWNLOAD_LOCATION)
set(SB_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
# Check if CMAKE_INSTALL_PREFIX is set by default
if(CMAKE_INSTALL_PREFIX STREQUAL "/usr/local")
message(WARNING
"The CMAKE_INSTALL_PREFIX variable seems to be set by default : "
"${CMAKE_INSTALL_PREFIX}. Be aware that this directory will be used"
" during the build (even without calling the install target). Please "
"make sure you want to use this directory as the SuperBuild output.")
endif()
#############################
# Download third party libs #
#############################
# ---------------------------------------------------------------------------------------------
# OpenCV
#
set(ODM_OpenCV_RequiredVersion 2.4.11)
find_package( OpenCV ${ODM_OpenCV_RequiredVersion} EXACT QUIET)
if(${OpenCV_FOUND})
message(STATUS "OpenCV found --- ${OpenCV_VERSION} ( < ${ODM_OpenCV_RequiredVersion} )")
set(OPENCV_DIR ${OpenCV_DIR})
else()
message(STATUS "OpenCV not found --> Adding External project - OpenCV ${ODM_OpenCV_RequiredVersion}")
include(External-OpenCV)
endif()
# ---------------------------------------------------------------------------------------------
# Point Cloud Library (PCL)
#
set(ODM_PCL_RequiredVersion 1.7.2)
find_package( PCL ${ODM_PCL_RequiredVersion} EXACT QUIET)
if(${PCL_FOUND})
message(STATUS "PCL found --- ${PCL_VERSION} ( < ${ODM_PCL_RequiredVersion} )")
set(PCL_DIR ${PCL_DIR})
else()
message(STATUS "PCL not found --> Adding External project - PCL ${ODM_PCL_RequiredVersion}")
include(External-PCL)
endif()