Commit 4842f48c authored by Laurențiu Nicola's avatar Laurențiu Nicola
Browse files

Merge branch 'rm-systemcheckup' into 'develop'

ENH: Remove SystemCheckup

Closes #1740

See merge request !785
parents c7b181b4 53798004
Pipeline #6782 passed with stage
in 10 minutes and 59 seconds
#
# Copyright (C) 2005-2020 Centre National d'Etudes Spatiales (CNES)
#
# This file is part of Orfeo Toolbox
#
# https://www.orfeo-toolbox.org/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Script to analyse the OTB dependencies already present
cmake_minimum_required(VERSION 3.10.2)
project(SystemCheckup)
if (EXISTS ${CMAKE_SOURCE_DIR}/../../../CMake)
set(CMAKE_MODULE_PATH
${CMAKE_SOURCE_DIR}/../../../CMake
${CMAKE_MODULE_PATH})
endif()
# macro to encapsulate a find_package(XXX QUIET)
# output variables are :
# _SB_CHECKUP_XXX_FOUND : lib is found ?
# _SB_CHECKUP_XXX_VERSION : version found
# _SB_CHECKUP_XXX_NAME : name found
macro(SB_CHECKUP_FIND_PACKAGE var)
find_package(${var} QUIET)
string(TOUPPER ${var} _uppervar)
set(_SB_CHECKUP_${_uppervar}_VERSION NOTFOUND)
set(_SB_CHECKUP_${_uppervar}_FOUND FALSE)
set(_SB_CHECKUP_${_uppervar}_NAME NOTFOUND)
if(${_uppervar}_FOUND)
set(_SB_CHECKUP_${_uppervar}_FOUND TRUE)
set(_SB_CHECKUP_${_uppervar}_NAME ${_uppervar})
elseif(${var}_FOUND)
set(_SB_CHECKUP_${_uppervar}_FOUND TRUE)
set(_SB_CHECKUP_${_uppervar}_NAME ${var})
endif()
if(_SB_CHECKUP_${_uppervar}_FOUND)
set(_var_name ${_SB_CHECKUP_${_uppervar}_NAME})
if(DEFINED ${_var_name}_VERSION)
set(_SB_CHECKUP_${_uppervar}_VERSION ${${_var_name}_VERSION})
elseif(DEFINED ${_var_name}_VERSION_STRING)
set(_SB_CHECKUP_${_uppervar}_VERSION ${${_var_name}_VERSION_STRING})
elseif(DEFINED ${_var_name}_VERSION_MAJOR AND DEFINED ${_var_name}_VERSION_MINOR AND DEFINED ${_var_name}_VERSION_PATCH)
set(_SB_CHECKUP_${_uppervar}_VERSION "${${_var_name}_VERSION_MAJOR}.${${_var_name}_VERSION_MINOR}.${${_var_name}_VERSION_PATCH}")
elseif(DEFINED ${_var_name}_MAJOR_VERSION AND DEFINED ${_var_name}_MINOR_VERSION AND DEFINED ${_var_name}_BUILD_VERSION)
set(_SB_CHECKUP_${_uppervar}_VERSION "${${_var_name}_MAJOR_VERSION}.${${_var_name}_MINOR_VERSION}.${${_var_name}_BUILD_VERSION}")
endif()
# fix incomplete version numbers -> add trailing '.0'
if(_SB_CHECKUP_${_uppervar}_VERSION MATCHES "^[0-9]+\\.[0-9]+\$")
set(_SB_CHECKUP_${_uppervar}_VERSION "${_SB_CHECKUP_${_uppervar}_VERSION}.0")
endif()
# fix version numbers with 4 components -> keep first 3 components
if(_SB_CHECKUP_${_uppervar}_VERSION MATCHES "^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\$")
set(_tmp_ver_num_ ${_SB_CHECKUP_${_uppervar}_VERSION})
string(REGEX REPLACE "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.[0-9]+\$" "\\1"
_SB_CHECKUP_${_uppervar}_VERSION
${_tmp_ver_num_})
endif()
endif()
endmacro(SB_CHECKUP_FIND_PACKAGE)
macro(SB_CHECKUP_SPLIT_VERSION var)
string(TOUPPER ${var} _upperlib)
if(_SB_CHECKUP_${_upperlib}_VERSION)
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1"
_SB_CHECKUP_${_upperlib}_VERSION_MAJOR
${_SB_CHECKUP_${_upperlib}_VERSION})
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2"
_SB_CHECKUP_${_upperlib}_VERSION_MINOR
${_SB_CHECKUP_${_upperlib}_VERSION})
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3"
_SB_CHECKUP_${_upperlib}_VERSION_PATCH
${_SB_CHECKUP_${_upperlib}_VERSION})
math(EXPR _SB_CHECKUP_${_upperlib}_VERSION_NUMBER
"((${_SB_CHECKUP_${_upperlib}_VERSION_MAJOR})*100+${_SB_CHECKUP_${_upperlib}_VERSION_MINOR})*100+${_SB_CHECKUP_${_upperlib}_VERSION_PATCH}")
endif()
endmacro(SB_CHECKUP_SPLIT_VERSION)
macro(SB_CHECKUP_FIND_VERSIONS lib header major_name minor_name patch_name)
string(TOUPPER ${lib} _upperlib)
if(_SB_CHECKUP_${_upperlib}_FOUND)
foreach(inc_path ${${_upperlib}_INCLUDE_DIRS})
if(EXISTS "${inc_path}/${header}")
unset(_header_content)
set(_major_regex ".*# *define +${major_name} +([0-9]+).*")
set(_minor_regex ".*# *define +${minor_name} +([0-9]+).*")
set(_patch_regex ".*# *define +${patch_name} +([0-9]+).*")
file(READ "${inc_path}/${header}" _header_content)
string(REGEX REPLACE ${_major_regex} "\\1"
_SB_CHECKUP_${_upperlib}_VERSION_MAJOR
${_header_content})
string(REGEX REPLACE ${_minor_regex} "\\1"
_SB_CHECKUP_${_upperlib}_VERSION_MINOR
${_header_content})
string(REGEX REPLACE ${_patch_regex} "\\1"
_SB_CHECKUP_${_upperlib}_VERSION_PATCH
${_header_content})
math(EXPR _SB_CHECKUP_${_upperlib}_VERSION_NUMBER
"((${_SB_CHECKUP_${_upperlib}_VERSION_MAJOR})*100+${_SB_CHECKUP_${_upperlib}_VERSION_MINOR})*100+${_SB_CHECKUP_${_upperlib}_VERSION_PATCH}")
set(_SB_CHECKUP_${_upperlib}_VERSION "${_SB_CHECKUP_${_upperlib}_VERSION_MAJOR}.${_SB_CHECKUP_${_upperlib}_VERSION_MINOR}.${_SB_CHECKUP_${_upperlib}_VERSION_PATCH}")
break()
endif()
endforeach()
endif()
endmacro(SB_CHECKUP_FIND_VERSIONS)
macro(SB_CHECKUP_WRITE_RESULT lib)
string(TOUPPER ${lib} _upperlib)
if (_SB_CHECKUP_${_upperlib}_FOUND)
if (${_SB_CHECKUP_${_upperlib}_NAME}_DIR)
set(_OUTPUT_LOCATION ${${_SB_CHECKUP_${_upperlib}_NAME}_DIR})
elseif (${lib}_DIR)
set(_OUTPUT_LOCATION ${${lib}_DIR})
elseif (${_SB_CHECKUP_${_upperlib}_NAME}_LIBRARY)
set(_OUTPUT_LOCATION ${${_SB_CHECKUP_${_upperlib}_NAME}_LIBRARY})
elseif (${_SB_CHECKUP_${_upperlib}_NAME}_LIBRARIES)
set(_OUTPUT_LOCATION ${${_SB_CHECKUP_${_upperlib}_NAME}_LIBRARIES})
elseif (${lib}_LIBRARIES)
set(_OUTPUT_LOCATION ${${lib}_LIBRARIES})
else()
set(_OUTPUT_LOCATION "(unknown)")
endif()
file(APPEND "${CMAKE_BINARY_DIR}/SystemCheckupResult.txt" "${lib}\t(${_SB_CHECKUP_${_upperlib}_VERSION}) \t: ${_OUTPUT_LOCATION}\n")
endif()
endmacro(SB_CHECKUP_WRITE_RESULT)
# TODO clear output file
file(WRITE "${CMAKE_BINARY_DIR}/SystemCheckupResult.txt" "")
# Boost
SB_CHECKUP_FIND_PACKAGE(Boost)
if(_SB_CHECKUP_BOOST_VERSION MATCHES "^[0-9]+\$")
set(_SB_CHECKUP_BOOST_VERSION_NUMBER ${_SB_CHECKUP_BOOST_VERSION})
math(EXPR _SB_CHECKUP_BOOST_VERSION_PATCH "(${_SB_CHECKUP_BOOST_VERSION_NUMBER})%100")
math(EXPR _SB_CHECKUP_BOOST_VERSION_MINOR "((${_SB_CHECKUP_BOOST_VERSION_NUMBER})/100)%1000")
math(EXPR _SB_CHECKUP_BOOST_VERSION_MAJOR "(${_SB_CHECKUP_BOOST_VERSION_NUMBER})/100000")
set(_SB_CHECKUP_BOOST_VERSION "${_SB_CHECKUP_BOOST_VERSION_MAJOR}.${_SB_CHECKUP_BOOST_VERSION_MINOR}.${_SB_CHECKUP_BOOST_VERSION_PATCH}")
endif()
SB_CHECKUP_WRITE_RESULT(Boost)
# Curl
SB_CHECKUP_FIND_PACKAGE(CURL)
SB_CHECKUP_SPLIT_VERSION(CURL)
SB_CHECKUP_WRITE_RESULT(CURL)
# GDAL
SB_CHECKUP_FIND_PACKAGE(GDAL)
if(NOT _SB_CHECKUP_GDAL_VERSION)
SB_CHECKUP_FIND_VERSIONS(GDAL
gdal_version.h
GDAL_VERSION_MAJOR
GDAL_VERSION_MINOR
GDAL_VERSION_REV)
endif()
SB_CHECKUP_WRITE_RESULT(GDAL)
# GeoTIFF
SB_CHECKUP_FIND_PACKAGE(GeoTIFF)
SB_CHECKUP_WRITE_RESULT(GeoTIFF)
# ITK
SB_CHECKUP_FIND_PACKAGE(ITK)
SB_CHECKUP_WRITE_RESULT(ITK)
# libkml
SB_CHECKUP_FIND_PACKAGE(LibKML)
if(NOT _SB_CHECKUP_LIBKML_VERSION)
SB_CHECKUP_FIND_VERSIONS(LibKML
kml/base/version.h
LIBKML_MAJOR_VERSION
LIBKML_MINOR_VERSION
LIBKML_MICRO_VERSION)
endif()
SB_CHECKUP_WRITE_RESULT(LibKML)
# LibSVM
SB_CHECKUP_FIND_PACKAGE(LibSVM)
SB_CHECKUP_SPLIT_VERSION(LibSVM)
SB_CHECKUP_WRITE_RESULT(LibSVM)
# muParser
SB_CHECKUP_FIND_PACKAGE(MuParser)
SB_CHECKUP_WRITE_RESULT(MuParser)
# muParserX
SB_CHECKUP_FIND_PACKAGE(MuParserX)
SB_CHECKUP_WRITE_RESULT(MuParserX)
# OpenCV
SB_CHECKUP_FIND_PACKAGE(OpenCV)
SB_CHECKUP_SPLIT_VERSION(OpenCV)
SB_CHECKUP_WRITE_RESULT(OpenCV)
# OpenJPEG
SB_CHECKUP_FIND_PACKAGE(OpenJPEG)
if(NOT _SB_CHECKUP_OPENJPEG_VERSION)
SB_CHECKUP_FIND_VERSIONS(OpenJPEG
opj_config.h
OPJ_VERSION_MAJOR
OPJ_VERSION_MINOR
OPJ_VERSION_BUILD)
endif()
SB_CHECKUP_WRITE_RESULT(OpenJPEG)
# OpenThreads
SB_CHECKUP_FIND_PACKAGE(OpenThreads)
SB_CHECKUP_WRITE_RESULT(OpenThreads)
# OSSIM
SB_CHECKUP_FIND_PACKAGE(Ossim)
SB_CHECKUP_WRITE_RESULT(Ossim)
# PNG
SB_CHECKUP_FIND_PACKAGE(PNG)
SB_CHECKUP_WRITE_RESULT(PNG)
# Qt5
SB_CHECKUP_FIND_PACKAGE(Qt5)
if(_SB_CHECKUP_QT5_FOUND)
set(_SB_CHECKUP_QT5_VERSION "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}")
SB_CHECKUP_SPLIT_VERSION(Qt5)
endif()
SB_CHECKUP_WRITE_RESULT(Qt5)
# TinyXML
SB_CHECKUP_FIND_PACKAGE(TinyXML)
SB_CHECKUP_WRITE_RESULT(TinyXML)
......@@ -355,26 +355,6 @@ option(OTB_WRAP_PYTHON "Enable python wrappers for OTB applications (requires SW
configure_file(${CMAKE_SOURCE_DIR}/CMake/CTestCustom.cmake.in
${CMAKE_BINARY_DIR}/CTestCustom.cmake @ONLY)
# do a system checkup
if (NOT EXISTS "${CMAKE_BINARY_DIR}/CMake/SystemCheckup")
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/CMake/SystemCheckup")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR}/CMake/SystemCheckup
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/CMake/SystemCheckup
OUTPUT_QUIET
ERROR_QUIET)
file(STRINGS "${CMAKE_BINARY_DIR}/CMake/SystemCheckup/SystemCheckupResult.txt" _SYSTEM_CHECKUP_CONTENT)
message(STATUS "|----------------------------------------------------------")
message(STATUS "|----------------- System checkup results -----------------")
message(STATUS "| The following libraries have been found on your system.")
message(STATUS "| You can choose to use them (instead of superbuild versions)")
message(STATUS "| by setting the corresponding option USE_SYSTEM_XXX.")
message(STATUS "|----------------------------------------------------------")
foreach(lib ${_SYSTEM_CHECKUP_CONTENT})
message(STATUS "| ${lib}")
message(STATUS "|----------------------------------------------------------")
endforeach()
# Python
# This should set the following variables (and more):
# -PYTHON_EXECUTABLE
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment