Commit 84c67ed2 authored by Rashad Kanavath's avatar Rashad Kanavath

Merge remote-tracking branch 'origin/develop' into update_pkg

parents a48259b7 2a117240
......@@ -116,7 +116,7 @@ find_library(
OPENCV_core_LIBRARY
NAMES ${opencv_core_NAMES}
PATHS ${OPENCV_SEARCH_PATH}
PATH_SUFFIXES "lib" "lib64" "lib/x86_64-linux-gnu"
PATH_SUFFIXES "lib" "lib64" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
NO_DEFAULT_PATH
DOC "Path to opencv_core library")
......@@ -124,7 +124,7 @@ find_library(
OPENCV_ml_LIBRARY
NAMES ${opencv_ml_NAMES}
PATHS ${OPENCV_SEARCH_PATH}
PATH_SUFFIXES "lib" "lib64" "lib/x86_64-linux-gnu"
PATH_SUFFIXES "lib" "lib64" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
NO_DEFAULT_PATH
DOC "Path to opencv_ml library")
......
......@@ -18,6 +18,9 @@
# limitations under the License.
#
# DEPRECATED: Not used in OTB cmake configuration
# DEPRECATED: should be removed after 6.2 release
include(CheckCXXSourceCompiles)
set(CMAKE_REQUIRED_FLAGS ${CMAKE_CXX_FLAGS})
......
......@@ -200,11 +200,6 @@ set(OTB_MODULES_ENABLED "")
set(OTB_MODULES_DISABLED "")
foreach(otb-module ${OTB_MODULES_ALL})
if(${otb-module}_ENABLED)
# check cxx11 requirement after all enable/disable macros have been passed
if(OTB_MODULE_${otb-module}_REQUIRES_CXX11 AND NOT OTB_HAS_CXX11)
message(FATAL_ERROR "Module ${otb-module} requires C++11 support. Consider adding -std=c++11 to your compiler flags or disabling it.")
endif()
list(APPEND OTB_MODULES_ENABLED ${otb-module})
# We will sort modules according to their dependency graph,
......
......@@ -23,6 +23,8 @@
# OTB before including OTBModuleMacros. This is the preferred way to build an
# OTB module outside of the OTB source tree.
option(OTB_BUILD_MODULE_AS_STANDALONE "Build module as a standalone cmake project" OFF)
if(NOT OTB_FOUND)
message(FATAL_ERROR "OTB must be found before module macros can be used.")
endif()
......@@ -30,80 +32,89 @@ if(NOT OTB_VERSION VERSION_GREATER "5.2")
message(FATAL_ERROR "Requires OTB 5.4 or later to work.")
endif()
if(NOT EXISTS ${OTB_CMAKE_DIR}/OTBModuleMacros.cmake)
message(FATAL_ERROR "Modules can only be built against an OTB build tree; they cannot be built against an OTB install tree.")
if(NOT OTB_BUILD_MODULE_AS_STANDALONE)
message(FATAL_ERROR "Modules can only be built against an OTB build tree; they cannot be built against an OTB install tree. You can build your module as a standalone CMake project instead, by activating the BUILD_MODULE_AS_STANDALONE option. Beware that dependency between remote modules will NOT be tracked.")
endif()
endif()
# Setup build locations.
if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OTB_DIR}/bin)
endif()
if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OTB_DIR}/lib)
endif()
if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OTB_DIR}/lib)
endif()
if(OTB_BUILD_MODULE_AS_STANDALONE)
message(STATUS "You are building this module as a standalone CMake project. Beware that dependencies to other remote modules will not be tracked.")
include(OTBStandaloneModuleMacros)
otb_module_impl()
else()
# Setup build locations.
if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OTB_DIR}/bin)
endif()
if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OTB_DIR}/lib)
endif()
if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OTB_DIR}/lib)
endif()
# OTB installation structure
if(NOT OTB_INSTALL_RUNTIME_DIR)
set(OTB_INSTALL_RUNTIME_DIR bin)
endif()
if(NOT OTB_INSTALL_LIBRARY_DIR)
set(OTB_INSTALL_LIBRARY_DIR lib)
endif()
if(NOT OTB_INSTALL_ARCHIVE_DIR)
set(OTB_INSTALL_ARCHIVE_DIR lib)
endif()
if(NOT OTB_INSTALL_INCLUDE_DIR)
set(OTB_INSTALL_INCLUDE_DIR include/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR})
endif()
if(NOT OTB_INSTALL_DATA_DIR)
set(OTB_INSTALL_DATA_DIR share/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR})
endif()
if(NOT OTB_INSTALL_DOC_DIR)
set(OTB_INSTALL_DOC_DIR share/doc/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR})
endif()
if(NOT OTB_INSTALL_PACKAGE_DIR)
set(OTB_INSTALL_PACKAGE_DIR "lib/cmake/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}")
endif()
# OTB installation structure
if(NOT OTB_INSTALL_RUNTIME_DIR)
set(OTB_INSTALL_RUNTIME_DIR bin)
endif()
if(NOT OTB_INSTALL_LIBRARY_DIR)
set(OTB_INSTALL_LIBRARY_DIR lib)
endif()
if(NOT OTB_INSTALL_ARCHIVE_DIR)
set(OTB_INSTALL_ARCHIVE_DIR lib)
endif()
if(NOT OTB_INSTALL_INCLUDE_DIR)
set(OTB_INSTALL_INCLUDE_DIR include/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR})
endif()
if(NOT OTB_INSTALL_DATA_DIR)
set(OTB_INSTALL_DATA_DIR share/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR})
endif()
if(NOT OTB_INSTALL_DOC_DIR)
set(OTB_INSTALL_DOC_DIR share/doc/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR})
endif()
if(NOT OTB_INSTALL_PACKAGE_DIR)
set(OTB_INSTALL_PACKAGE_DIR "lib/cmake/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}")
endif()
# Use OTB's flags.
set(CMAKE_C_FLAGS "${OTB_REQUIRED_C_FLAGS} ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${OTB_REQUIRED_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS}")
set(CMAKE_MODULE_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_MODULE_LINKER_FLAGS}")
option(BUILD_SHARED_LIBS "Build OTB with shared libraries." ${OTB_BUILD_SHARED})
# Use OTB's flags.
set(CMAKE_C_FLAGS "${OTB_REQUIRED_C_FLAGS} ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${OTB_REQUIRED_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS}")
set(CMAKE_MODULE_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_MODULE_LINKER_FLAGS}")
option(BUILD_SHARED_LIBS "Build OTB with shared libraries." ${OTB_BUILD_SHARED})
# Add the OTB_MODULES_DIR to the CMAKE_MODULE_PATH and then use the binary
# directory for the project to write out new ones to.
if(OTB_MODULES_DIR)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${OTB_MODULES_DIR})
endif()
set(OTB_MODULES_DIR "${OTB_DIR}/${OTB_INSTALL_PACKAGE_DIR}/Modules")
# Add the OTB_MODULES_DIR to the CMAKE_MODULE_PATH and then use the binary
# directory for the project to write out new ones to.
if(OTB_MODULES_DIR)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${OTB_MODULES_DIR})
endif()
set(OTB_MODULES_DIR "${OTB_DIR}/${OTB_INSTALL_PACKAGE_DIR}/Modules")
#include(OTBExternalData)
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt)
include(CTest)
include(OTBModuleTest)
endif()
#include(OTBExternalData)
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt)
include(CTest)
include(OTBModuleTest)
endif()
include(OTBModuleMacros)
include(otb-module.cmake)
set(${otb-module}-targets ${otb-module}Targets)
set(${otb-module}-targets-install "\${OTB_INSTALL_PREFIX}/${OTB_INSTALL_PACKAGE_DIR}/${otb-module}Targets.cmake")
set(${otb-module}_TARGETS_FILE_INSTALL "${${otb-module}-targets-install}")
set(${otb-module}-targets-build "${OTB_DIR}/${OTB_INSTALL_PACKAGE_DIR}/Modules/${otb-module}Targets.cmake")
set(${otb-module}_TARGETS_FILE_BUILD "${${otb-module}-targets-build}")
otb_module_impl()
include(OTBModuleMacros)
include(otb-module.cmake)
set(${otb-module}-targets ${otb-module}Targets)
set(${otb-module}-targets-install "\${OTB_INSTALL_PREFIX}/${OTB_INSTALL_PACKAGE_DIR}/${otb-module}Targets.cmake")
set(${otb-module}_TARGETS_FILE_INSTALL "${${otb-module}-targets-install}")
set(${otb-module}-targets-build "${OTB_DIR}/${OTB_INSTALL_PACKAGE_DIR}/Modules/${otb-module}Targets.cmake")
set(${otb-module}_TARGETS_FILE_BUILD "${${otb-module}-targets-build}")
otb_module_impl()
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt AND NOT ${otb-module}_NO_SRC AND "${${otb-module}-targets}")
install(EXPORT ${${otb-module}-targets} DESTINATION "${OTB_INSTALL_PACKAGE_DIR}/Modules"
COMPONENT Development)
endif()
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt AND NOT ${otb-module}_NO_SRC AND "${${otb-module}-targets}")
install(EXPORT ${${otb-module}-targets} DESTINATION "${OTB_INSTALL_PACKAGE_DIR}/Modules"
COMPONENT Development)
endif()
set(OTB_TEST_OUTPUT_DIR "${CMAKE_BINARY_DIR}/Testing/Temporary")
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
add_subdirectory(test)
endif()
set(OTB_TEST_OUTPUT_DIR "${CMAKE_BINARY_DIR}/Testing/Temporary")
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
add_subdirectory(test)
endif()
endif()
......@@ -230,9 +230,12 @@ macro(otb_module_impl)
if (BUILD_SHARED_LIBS)
# export flags are only added when building shared libs, they cause
# mismatched visibility warnings when building statically.
add_compiler_export_flags(my_abi_flags)
set_property(TARGET ${otb-module} APPEND
PROPERTY COMPILE_FLAGS "${my_abi_flags}")
if (USE_COMPILER_HIDDEN_VISIBILITY)
# Prefer to use target properties supported by newer cmake
set_target_properties(${otb-module} PROPERTIES CXX_VISIBILITY_PRESET hidden)
set_target_properties(${otb-module} PROPERTIES C_VISIBILITY_PRESET hidden)
set_target_properties(${otb-module} PROPERTIES VISIBILITY_INLINES_HIDDEN 1)
endif()
endif()
endif()
......@@ -356,5 +359,6 @@ macro(otb_module_target _name)
endmacro()
macro(otb_module_requires_cxx11)
message(WARNING "otb_module_requires_cxx11 is deprecated since OTB version 6.2 which build with c++14 by default. You can safely remove the call to this macro.")
set(OTB_MODULE_${otb-module}_REQUIRES_CXX11 1)
endmacro()
This diff is collapsed.
......@@ -18,7 +18,7 @@
# limitations under the License.
#
cmake_minimum_required(VERSION 2.8.11)
cmake_minimum_required(VERSION 3.1.0)
foreach(p
CMP0025 # CMake 3.0
......@@ -43,6 +43,10 @@ endif()
project(OTB)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
include(CMakeDependentOption)
#
# use ExternalProject
......@@ -227,9 +231,6 @@ set(CMAKE_EXE_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}
set(CMAKE_SHARED_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS}")
set(CMAKE_MODULE_LINKER_FLAGS "${OTB_REQUIRED_LINK_FLAGS} ${CMAKE_MODULE_LINKER_FLAGS}")
# detect some C++11 keywords
include(OTBCheckCpp11Keywords)
# TODO BUILD_TESTING is created by default by CTest.cmake, and is ON by default.
option(BUILD_TESTING "Build the testing tree." OFF)
......@@ -332,12 +333,7 @@ if(OTB_WRAP_PYTHON)
set(OTB_CONFIG_CODE "${OTB_CONFIG_CODE}
set(OTB_PYTHONPATH \"${OTB_BINARY_DIR}/${OTB_INSTALL_PYTHON_DIR}\")")
endif()
if(OTB_HAS_CXX11)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR
"${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(OTB_REQUIRED_CXX_FLAGS " -std=c++11")
endif()
endif()
set(OTB_CONFIG_APPLICATION_PATH "${OTB_BINARY_DIR}/${OTB_INSTALL_APP_DIR}")
set(OTB_CONFIG_TARGETS_CONDITION " AND NOT OTB_BINARY_DIR")
set(OTB_CONFIG_TARGETS_FILE "${OTB_BINARY_DIR}/OTBTargets.cmake")
......@@ -385,6 +381,8 @@ install(FILES ${OTB_BINARY_DIR}/CMakeFiles/OTBConfig.cmake
${OTB_BINARY_DIR}/OTBConfigVersion.cmake
CMake/OTBApplicationMacros.cmake
CMake/OTBModuleAPI.cmake
CMake/OTBStandaloneModuleMacros.cmake
CMake/OTBModuleExternal.cmake
CMake/UseOTB.cmake
DESTINATION ${OTB_INSTALL_PACKAGE_DIR}
COMPONENT Development)
......@@ -502,7 +500,6 @@ foreach(otb_option
CMAKE_BUILD_TYPE
CMAKE_C_FLAGS
CMAKE_CXX_FLAGS
OTB_HAS_CXX11
${option_list}
OTB_WRAP_PYTHON
OTB_WRAP_JAVA
......
......@@ -13,7 +13,7 @@ if(BUILD_TESTING)
endif()
string(TIMESTAMP OTB_COPYRIGHT_YEAR "%Y")
set(OTB_COPYRIGHT_TEXT "${OTB_COPYRIGHT_YEAR}, OTB Team")
set(OTB_COPYRIGHT_TEXT "${OTB_COPYRIGHT_YEAR} CNES.The OTB CookBook is licensed under a Creative Commons Attribution-ShareAlike 4.0 International license (CC-BY-SA)")
#find OTB
find_package(OTB REQUIRED)
......
......@@ -144,8 +144,8 @@ def FindLengthOfLargestColumnText(app,paramlist):
if colLength[0] < lenp:
colLength[0] = lenp
lenpdescr = len(choicename)
if colLength[2] < lenpdescr:
colLength[2] = lenpdescr
if colLength[1] < lenpdescr:
colLength[1] = lenpdescr
else:
if colLength[0] < len(param):
colLength[0] = len(param)
......@@ -194,8 +194,8 @@ def GenerateParametersTable(app,paramlist):
if app.GetParameterType(param) == otbApplication.ParameterType_Choice:
for (choicekey,choicename) in zip(app.GetChoiceKeys(param),app.GetChoiceNames(param)):
output += MakeText(param + " " + choicekey, colLength[0])
output += MakeText(" *Choice*" ,colLength[1])
output += MakeText(choicename, colLength[2])
output += MakeText(choicename,colLength[1])
output += MakeText(" *Choice*", colLength[2])
output += '|' + linesep
output += RstTableHeaderLine(headerlist, colLength, '-')
return output
......@@ -422,8 +422,11 @@ def GetApplicationExamplePython(app,idx):
output+= linesep
return output
def RstHeading(text, delimiter):
heading = text + linesep
def RstHeading(text, delimiter, ref=None):
heading = ""
if ref:
heading += ".. _" + ref + ":" + linesep + linesep
heading += text + linesep
heading += delimiter * len(text) + linesep
heading += linesep
return heading
......@@ -491,8 +494,8 @@ def GetApplicationTags(appname):
import shutil
def RstPageHeading(text, maxdepth):
output = RstHeading(text, "=") + linesep
def RstPageHeading(text, maxdepth, ref=None):
output = RstHeading(text, "=", ref=ref) + linesep
output += ".. toctree::" + linesep
output += "\t:maxdepth: " + maxdepth + linesep
output += linesep + linesep
......@@ -502,53 +505,30 @@ def GenerateRstForApplications():
out = ""
blackList = ["TestApplication", "Example", "ApplicationExample"]
allApps = None
try:
try:
allApps = otbApplication.Registry.GetAvailableApplications( )
except e:
print 'error in otbApplication.Registry.GetAvailableApplications()'
sys.exit(1)
# appNames = [app for app in otbApplication.Registry.GetAvailableApplications() if app not in blackList]
if not allApps:
print 'No OTB applications available. Please check OTB_APPLICATION_PATH env variable'
sys.exit(1)
# sectionTags = ["Image Manipulation",
# "Vector Data Manipulation",
# "Calibration","Geometry", "Image Filtering","Feature Extraction",
# "Stereo","Learning","Segmentation", "Miscellaneous"]
# for tag in sectionTags:
# #directory= "Applications/" + tag
# # if not os.path.exists(directory):
# # os.makedirs(directory)
# appIndexFile.write('\tApplications/' + tag.replace(' ', '_') + '.rst' + linese)
# #chapterIndexFile = open('Applications/' + tag + '.rst', 'w')
# #chapterIndexFile.write(RstPageHeading(tag))
# #print linesep + RstHeading(tag, '=')
#miscFile = open('Applications/Miscellaneous.rst', 'w')
# misctag = "Miscellaneous" #should this be Utilities
# if not os.path.exists("Applications/" + misctag):
# os.makedirs("Applications/" + misctag)
# appIndexFile.write('\tApplications/' + misctag + linesep)
writtenTags = []
writtenTags = []
appNames = [app for app in allApps if app not in blackList]
print "All apps: %s" % (appNames,)
appIndexFile = open(RST_DIR + '/Applications.rst', 'w')
appIndexFile.write(RstPageHeading("Applications", "2"))
appIndexFile = open(RST_DIR + '/Applications.rst', 'w')
appIndexFile.write(RstPageHeading("Applications Reference Documentation", "2", ref="apprefdoc"))
for appName in appNames:
tags = GetApplicationTags(appName)
if not tags:
print "No tags for application: " + appName
sys.exit(1)
tag = tags[0]
tag_ = tag
......@@ -557,11 +537,11 @@ def GenerateRstForApplications():
if not tag_:
print 'empty tag found for ' + appName
if not tag_ in writtenTags:
appIndexFile.write('\tApplications/' + tag_ + '.rst' + linesep)
writtenTags.append(tag_)
tagFileName = RST_DIR + '/Applications/' + tag_ + '.rst'
if os.path.isfile(tagFileName):
tagFile = open(tagFileName, 'a')
......@@ -572,15 +552,13 @@ def GenerateRstForApplications():
tagFile.write( RstPageHeading(tag, "1") )
tagFile.write("\tapp_" + appName + linesep)
tagFile.close()
print "Generating " + appName + ".rst" + " on tag " + tag_
appFile = open(RST_DIR + '/Applications/app_' + appName + '.rst', 'w')
out = ApplicationToRst(appName)
appFile.write(out)
appFile.close()
appIndexFile.close()
return out
......
Applications
============
This chapter is the reference documentation for applications delivered
with OTB. It provides detailed description of the application behaviour and
parameters, as well as python and bash snippets describing how to use them.
.. toctree::
:maxdepth: 3
Applications/Image_Manipulation.rst
Applications/Vector_Data_Manipulation.rst
Applications/Calibration.rst
Applications/Geometry.rst
Applications/Image_Filtering.rst
Applications/Feature_Extraction.rst
Applications/Stereo.rst
Applications/Learning.rst
Applications/Segmentation.rst
Applications/Miscellaneous.rst
This diff is collapsed.
......@@ -4,7 +4,7 @@ Download it from `OTB's download page
<https://www.orfeo-toolbox.org/download>`__.
This package is a self-extractible archive. You may uncompress it with a
double-click on the file, or with the command line :
double-click on the file, or with the command line:
.. parsed-literal::
......@@ -20,27 +20,27 @@ Please note that the resulting installation is not meant to be moved,
you should uncompress the archive in its final location. Once the
archive is extracted, the directory structure is made of:
- ``monteverdi.sh`` : A launcher script for Monteverdi
- ``monteverdi.sh``: A launcher script for Monteverdi
- ``mapla.sh`` : A launcher script for Mapla
- ``mapla.sh``: A launcher script for Mapla
- ``otbenv.profile`` : A script to initialize the environment for OTB
- ``otbenv.profile``: A script to initialize the environment for OTB
executables
- ``bin`` : A folder containing application launchers (otbcli.sh,
- ``bin``: A folder containing application launchers (otbcli.sh,
otbgui.sh), Monteverdi and Mapla.
- ``lib`` : A folder containing all shared libraries and OTB
- ``lib``: A folder containing all shared libraries and OTB
applications.
- ``share`` : A folder containing common resources and copyright
- ``share``: A folder containing common resources and copyright
mentions.
In order to run the command line launchers, this package doesn’t require
any special library that is not present in most modern Linux
distributions. There is a small caveat for "expat" though. The binaries depend
on "libexpat.so", which can be supplied by most package managers (apt, yum, ...).
If not already present, look for one of the following packages :
If not already present, look for one of the following packages:
::
......@@ -48,7 +48,7 @@ If not already present, look for one of the following packages :
The graphical executable (otbgui launchers, Monteverdi
and Mapla) use the X11 libraries, which are widely used in a lot of
distributions :
distributions:
::
......@@ -63,7 +63,8 @@ use the otbcli and otbgui launchers, you can initialize your environment
with ``source otbenv.profile``.
Python bindings
---------------
~~~~~~~~~~~~~~~
Starting from OTB 5.8.0, OTB python bindings are distributed with binary package.
currently only Python 2.x is supported. If no compatible python is found, installation
notify you about it. If everything works fine, you will be given information about
......@@ -86,11 +87,12 @@ Notes:
- Multiple installation of OTB can exists in same system without one conflicting the other!
FAQ for Packaging
-----------------
FAQ
~~~
Q: I am getting an error message...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+++++++++++++++++++++++++++++++++++
::
Cannot mix incompatible Qt library (version 0x40806) with this library (version 0x40807)
......@@ -104,7 +106,7 @@ A: This is due to a conflict with system Qt4 (usually seen on KDE) and Qt4 + gtk
rm -f lib/libQt* && rm -fr lib/gtk
Q: Monteverdi and Mapla applications look different from my other applications.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A: By default, Monteverdi, Mapla and otbapplication (otbgui\_\*) uses a the
system gtk theme. If you can't install GTK on your system you can use the
......
We provide for MacOS X through a standalone package. This package is a
self-extractible archive, quite similar to the Linux one. You may
uncompress it with the command line :
uncompress it with the command line:
.. parsed-literal::
......@@ -12,21 +12,22 @@ the same direcrtory along with OTB-|release|-Darwin64.run
Contents of OTB-|release|-Darwin64 is briefly listed below:
- ``Monteverdi.app`` : A Mac OSX .app for Monteverdi
- ``Monteverdi.app``: A Mac OSX .app for Monteverdi
- ``Mapla.app`` : A Mac OSX .app for Mapla.
- ``Mapla.app``: A Mac OSX .app for Mapla.
- ``bin`` : A folder containing application launchers (otbcli.sh,
- ``bin``: A folder containing application launchers (otbcli.sh,
otbgui.sh), monteverdi and mapla binaries.
- ``lib`` : A folder containing all shared libraries and OTB
- ``lib``: A folder containing all shared libraries and OTB
applications.
- ``share`` : A folder containing common resources and copyright
- ``share``: A folder containing common resources and copyright
mentions.
Python bindings
---------------
~~~~~~~~~~~~~~~
Starting from OTB 5.8.0, OTB python bindings are distributed with binary package.
currently only Python 2.x is supported. If no compatible python is found, installation
notify you about it. If everything works fine, you will be given information about
......@@ -49,3 +50,23 @@ Notes:
- You are allowed to move these .app files and refrain from moving or
deleting OTB-|release|-Darwin64 after extraction. In case you need to have OTB
installed in some other directory. Extract the .run file there.
FAQ
~~~
Q: I am getting an error message...
+++++++++++++++++++++++++++++++++++
::
xcrun: error: invalid active developer path
(/Library/Developer/CommandLineTools), missing xcrun at:
/Library/Developer/CommandLineTools/usr/bin/xcrun
A: You can get this error at startup running Monteverdi.app or Mapla.app. The
solution is to run in a terminal the following command:
::
xcode-select --install
And then try to restart Monteverdi or Mapla.
......@@ -6,24 +6,25 @@ Pick the correct version (32 bit or 64 bit) depending on your system.
Extract the archive and use one of the launchers, they contain all applications
and their launchers (both command line and graphical launchers are provided):
- ``monteverdi.bat`` : A launcher script for Monteverdi
- ``monteverdi.bat``: A launcher script for Monteverdi
- ``mapla.bat`` : A launcher script for Mapla
- ``mapla.bat``: A launcher script for Mapla
- ``otbenv.bat`` : A script to initialize the environment for OTB
- ``otbenv.bat``: A script to initialize the environment for OTB
executables
- ``bin`` : A folder containing application launchers (otbcli.bat,
- ``bin``: A folder containing application launchers (otbcli.bat,
otbgui.bat) and the DLLs.
- ``lib`` : A folder containing application DLLs.
- ``lib``: A folder containing application DLLs.
The applications can be launched from the Mapla launcher. If you want to
use the otbcli and otbgui launchers, you can initialize a command prompt
with ``otbenv.bat``.
Python bindings
---------------
~~~~~~~~~~~~~~~
Starting from OTB 5.8.0, OTB python bindings are distributed with binary package.
currently only Python 2.x is supported. If no compatible python is found, installation
notify you about it. If everything works fine, you will be given information about
......@@ -33,9 +34,10 @@ You must have python numpy bindings installed in your system. you can install it
without admin rights with "pip install --user numpy". This is to give users to choose
their own existing python installation rather than distributing one in OTB package
Notes:
~~~~~~
Notes
~~~~~
- You must have "Visual C++ Redistributable for Visual Studio 2015" installed for using this package.
It can be downloaded freely from `microsoft <https://www.microsoft.com/en-us/download/details.aspx?id=48145>`_
......@@ -56,14 +56,14 @@ The top toolbar is made up of ten icons; from left to right:
#. gives/changes the current projection, used as reference of the view
#. selects the effect to be applied to the selected layer :
#. selects the effect to be applied to the selected layer:
chessboard, local constrast, local translucency, normal, spectral
angle, swipe (horizontal and vertical)
#. a parameter used for the following effects : chessboard, local
#. a parameter used for the following effects: chessboard, local
contrast, local translucency, spectral angle
#. a parameter used for the following effects : local constrast,
#. a parameter used for the following effects: local constrast,
spectral angle
Image displaying
......@@ -74,7 +74,7 @@ the user. There are many nice keyboard shortcuts or mouse tricks that
let the user have a better experience in navigating throughout the
loaded images. These shortcuts and tricks are given within the Help item
of the main menu, by clicking Keymap; here is a short list of the most
useful ones :
useful ones:
The classical ones:
......@@ -106,22 +106,22 @@ In the layer stack part:
Right side dock
~~~~~~~~~~~~~~~
The dock on the right side is divided into four tabs :
The dock on the right side is divided into four tabs:
- Quicklook : gives the user a degraded view of the whole extent,
- Quicklook: gives the user a degraded view of the whole extent,
letting him/her easily select the area to be displayed
- Histogram : gives the user information about the value distribution
- Histogram: gives the user information about the value distribution
of the selected channels. By clicking the mouse’s left button, user
can sample their values.
- Color Setup : lets the user map the image channels to the RGB
- Color Setup: lets the user map the image channels to the RGB
channels. Also lets him/her set the alpha parameter (translucency).