--- /dev/null
+#!/bin/bash
+
+## ====================================
+## == Some base configuration values ==
+## ====================================
+
+cmake_min_version="3.0"
+qt_min_version="4.8"
+number_of_cores=`grep -c ^processor /proc/cpuinfo`
+number_of_threads=`expr $number_of_cores / 2`
+
+## =================================
+## == Compare two version strings ==
+## =================================
+
+function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; }
+
+## ==============================
+## == Try to locate base tools ==
+## ==============================
+
+gpp_exe=`which g++`
+if [ -z "gpp_exe" ]; then
+ echo "ERROR: \"g++\" program was not found."
+ echo "ERROR: Please install \"g++\""
+fi
+
+make_exe=`which make`
+if [ -z "$make_exe" ]; then
+ echo "ERROR: \"make\" program was not found."
+ echo "ERROR: Please install \"make\""
+fi
+
+## ===============
+## == Verify Qt ==
+## ===============
+
+read -p "Do you want to use Qt4.8? [y/N] " -n 1 -r
+echo
+if [[ $REPLY =~ ^[Yy]$ ]]; then
+ cont=true
+ qmake_exe=`which qmake`
+ while [ $cont == true ]; do
+ if [ -z "$qmake_exe" ]; then
+ read -e -p "Please provide a valid location for qmake: " tmp
+ eval tmp=$tmp
+ qmake_exe=`readlink -f $tmp`
+ fi
+ read -p "I am going to use \"$qmake_exe\" as the entry tool for Qt. Is this ok? [y/N] " -n 1 -r
+ echo
+ if [[ $REPLY =~ ^[Nn]$ ]]; then
+ qmake_exe=""
+ else
+ cont=false
+ fi
+ done
+ qt_version=`$qmake_exe -v | grep Using\ Qt\ version | sed 's/Using\ Qt\ version\ //g'`
+ if version_gt $qt_min_version $qt_version; then
+ echo "FATAL ERROR: your Qt version is $qt_version, but needed version should be at least $qt_min_version"
+ fi
+fi
+
+## ==================
+## == Verify cmake ==
+## ==================
+
+cmake_qt_options="--no-qt-gui"
+if [ -x "$qmake_exe" ]; then
+ cmake_qt_options="--qt-gui --qt-qmake=$qmake_exe"
+fi
+
+cont=true
+cmake_exe=`which cmake`
+while [ $cont == true ]; do
+ if [ -z "$cmake_exe" ]; then
+ read -e -p "Please provide a valid location for cmake: " tmp
+ eval tmp=$tmp
+ cmake_exe=`readlink -f $tmp`
+ fi
+ read -p "I am going to use \"$cmake_exe\". Is this ok? [y/N] " -n 1 -r
+ echo
+ if [[ $REPLY =~ ^[Nn]$ ]]; then
+ cmake_exe=""
+ else
+ cont=false
+ fi
+done
+if [ -z $cmake_exe ]; then
+ echo "FATAL ERROR: cmake is really needed to build cpPlugins."
+ exit 1
+fi
+
+cmake_mime=`file -bzk --mime-type $cmake_exe`
+if [ "$cmake_mime" != "application/x-executable" ]; then
+ echo "WARNING: I will try to compile cmake..."
+ if [[ -f $cmake_exe ]]; then
+ if [ "$cmake_mime" == "application/x-tar" ]; then
+ sub_mime=`file -b --mime-type $cmake_exe`
+ if [ $sub_mime == "application/gzip" ]; then
+ cmake_source_dir=`dirname $cmake_exe`/`basename $cmake_exe .tar.gz`
+ cmake_binary_dir=`dirname $cmake_exe`/`basename $cmake_exe .tar.gz`-build
+ echo -n "==> Extracting cmake sources... "
+ rm -rf $cmake_source_dir $cmake_binary_dir
+ mkdir -p $cmake_source_dir $cmake_binary_dir
+ tar xzf $cmake_exe -C $cmake_source_dir --strip-components=1
+ echo "done."
+ fi
+ fi
+ elif [[ -d $cmake_exe ]]; then
+ cmake_source_dir="$cmake_exe"
+ cmake_binary_dir="$cmake_exe"-build
+ else
+ echo "FATAL ERROR: $cmake_exe is not a valid file/directory"
+ exit 1
+ fi
+
+ read -e -p "==> Please provide instalation location for \"cmake\": " tmp
+ eval tmp=$tmp
+ cmake_prefix=`readlink -f $tmp`
+
+ echo "==> Configuring sources... "
+ cd $cmake_binary_dir
+ $cmake_source_dir/bootstrap --prefix=$cmake_prefix $cmake_qt_options
+ echo "==> Configuring sources... done."
+
+ echo "==> Compiling sources..."
+ cd $cmake_binary_dir
+ make -j$number_of_threads
+ echo "==> Compiling sources... done."
+
+ echo "==> Installing package..."
+ cd $cmake_binary_dir
+ make -j install
+ echo "==> Installing package... done."
+ cmake_exe=$cmake_binary_dir/bin/cmake
+fi
+cmake_version=`$cmake_exe --version | grep version | sed 's/cmake\ version\ //g'`
+
+if version_gt $cmake_min_version $cmake_version; then
+ echo "FATAL ERROR: your cmake version is $cmake_version, but needed version should be at least $cmake_min_version"
+fi
+
+## ===============
+## == Build VTK ==
+## ===============
+
+cont=true
+vtk_sources=`which cmake`
+while [ $cont == true ]; do
+ if [ -z "$vtk_sources" ]; then
+ read -e -p "Please provide a valid location for VTK: " tmp
+ eval tmp=$tmp
+ vtk_sources=`readlink -f $tmp`
+ fi
+ read -p "I am going to use \"$vtk_sources\". Is this ok? [y/N] " -n 1 -r
+ echo
+ if [[ $REPLY =~ ^[Nn]$ ]]; then
+ vtk_sources=""
+ else
+ cont=false
+ fi
+done
+if [ -z $vtk_sources ]; then
+ echo "FATAL ERROR: VTK is really needed to build cpPlugins."
+ exit 1
+fi
+
+echo "Now, I will try to compile VTK..."
+vtk_mime=`file -bzk --mime-type $vtk_sources`
+if [[ -f $vtk_sources ]]; then
+ if [ "$vtk_mime" == "application/x-tar" ]; then
+ sub_mime=`file -b --mime-type $vtk_sources`
+ if [ $sub_mime == "application/gzip" ]; then
+ vtk_source_dir=`dirname $vtk_sources`/`basename $vtk_sources .tar.gz`
+ vtk_binary_dir=`dirname $vtk_sources`/`basename $vtk_sources .tar.gz`-build
+ echo -n "==> Extracting VTK sources... "
+ rm -rf $vtk_source_dir $vtk_binary_dir
+ mkdir -p $vtk_source_dir $vtk_binary_dir
+ tar xzf $vtk_sources -C $vtk_source_dir --strip-components=1
+ echo "done."
+ fi
+ fi
+elif [[ -d $vtk_sources ]]; then
+ vtk_source_dir="$vtk_sources"
+ vtk_binary_dir="$vtk_sources"-build
+else
+ echo "FATAL ERROR: $vtk_sources is not a valid file/directory"
+ exit 1
+fi
+
+read -e -p "==> Please provide instalation location for \"VTK\": " tmp
+eval tmp=$tmp
+vtk_prefix=`readlink -f $tmp`
+
+vtk_build_type=MinSizeRel
+
+echo "==> Configuring sources... "
+cd $vtk_binary_dir
+if [ -x "$qmake_exe" ]; then
+ $cmake_exe \
+ -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
+ -DBUILD_DOCUMENTATION:BOOL=OFF \
+ -DBUILD_EXAMPLES:BOOL=OFF \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DBUILD_TESTING:BOOL=OFF \
+ -DQT_QMAKE_EXECUTABLE:PATH=$qmake_exe \
+ -DCMAKE_BUILD_TYPE:STRING=$vtk_build_type \
+ -DModule_vtkGUISupportQt:BOOL=ON \
+ -DModule_vtkGUISupportQtOpenGL:BOOL=ON \
+ -DModule_vtkGUISupportQtSQL:BOOL=OFF \
+ -DModule_vtkGUISupportQtWebkit:BOOL=OFF \
+ -DCMAKE_INSTALL_PREFIX:PATH=$vtk_prefix \
+ $vtk_source_dir
+else
+ $cmake_exe \
+ -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
+ -DBUILD_DOCUMENTATION:BOOL=OFF \
+ -DBUILD_EXAMPLES:BOOL=OFF \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DBUILD_TESTING:BOOL=OFF \
+ -DCMAKE_BUILD_TYPE:STRING=$build_type \
+ -DCMAKE_INSTALL_PREFIX:PATH=$vtk_prefix \
+ $vtk_source_dir
+fi
+echo "==> Configuring sources... done."
+
+echo "==> Compiling sources..."
+cd $vtk_binary_dir
+make -j$number_of_threads
+echo "==> Compiling sources... done."
+
+echo "==> Installing package..."
+cd $vtk_binary_dir
+make -j install
+echo "==> Installing package... done."
+
+## ===============
+## == Build ITK ==
+## ===============
+
+cont=true
+itk_sources=`which cmake`
+while [ $cont == true ]; do
+ if [ -z "$itk_sources" ]; then
+ read -e -p "Please provide a valid location for ITK: " tmp
+ eval tmp=$tmp
+ itk_sources=`readlink -f $tmp`
+ fi
+ read -p "I am going to use \"$itk_sources\". Is this ok? [y/N] " -n 1 -r
+ echo
+ if [[ $REPLY =~ ^[Nn]$ ]]; then
+ itk_sources=""
+ else
+ cont=false
+ fi
+done
+if [ -z $itk_sources ]; then
+ echo "FATAL ERROR: ITK is really needed to build cpPlugins."
+ exit 1
+fi
+
+echo "Now, I will try to compile ITK..."
+itk_mime=`file -bzk --mime-type $itk_sources`
+if [[ -f $itk_sources ]]; then
+ if [ "$itk_mime" == "application/x-tar" ]; then
+ sub_mime=`file -b --mime-type $itk_sources`
+ if [ $sub_mime == "application/gzip" ]; then
+ itk_source_dir=`dirname $itk_sources`/`basename $itk_sources .tar.gz`
+ itk_binary_dir=`dirname $itk_sources`/`basename $itk_sources .tar.gz`-build
+ echo -n "==> Extracting ITK sources... "
+ rm -rf $itk_source_dir $itk_binary_dir
+ mkdir -p $itk_source_dir $itk_binary_dir
+ tar xzf $itk_sources -C $itk_source_dir --strip-components=1
+ echo "done."
+ fi
+ fi
+elif [[ -d $itk_sources ]]; then
+ itk_source_dir="$itk_sources"
+ itk_binary_dir="$itk_sources"-build
+else
+ echo "FATAL ERROR: $itk_sources is not a valid file/directory"
+ exit 1
+fi
+
+read -e -p "==> Please provide instalation location for \"ITK\": " tmp
+eval tmp=$tmp
+itk_prefix=`readlink -f $tmp`
+
+itk_build_type=MinSizeRel
+
+echo "==> Configuring sources... "
+cd $itk_binary_dir
+if [ -x "$qmake_exe" ]; then
+ $cmake_exe \
+ -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
+ -DBUILD_DOCUMENTATION:BOOL=OFF \
+ -DBUILD_EXAMPLES:BOOL=OFF \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DBUILD_TESTING:BOOL=OFF \
+ -DQT_QMAKE_EXECUTABLE:PATH=$qmake_exe \
+ -DCMAKE_BUILD_TYPE:STRING=$itk_build_type \
+ -DModule_itkGUISupportQt:BOOL=ON \
+ -DModule_itkGUISupportQtOpenGL:BOOL=ON \
+ -DModule_itkGUISupportQtSQL:BOOL=OFF \
+ -DModule_itkGUISupportQtWebkit:BOOL=OFF \
+ -DCMAKE_INSTALL_PREFIX:PATH=$itk_prefix \
+ $itk_source_dir
+else
+ $cmake_exe \
+ -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
+ -DBUILD_DOCUMENTATION:BOOL=OFF \
+ -DBUILD_EXAMPLES:BOOL=OFF \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DBUILD_TESTING:BOOL=OFF \
+ -DCMAKE_BUILD_TYPE:STRING=$build_type \
+ -DCMAKE_INSTALL_PREFIX:PATH=$itk_prefix \
+ $itk_source_dir
+fi
+echo "==> Configuring sources... done."
+
+echo "==> Compiling sources..."
+cd $itk_binary_dir
+make -j$number_of_threads
+echo "==> Compiling sources... done."
+
+echo "==> Installing package..."
+cd $itk_binary_dir
+make -j install
+echo "==> Installing package... done."
+
+
+
+## eof - $RCSfile$