From c403d4c19120272cbeb96bebf453390ab4bf2a7d Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Mon, 17 Sep 2012 11:10:22 +0200
Subject: [PATCH] Compiles under "Visual Studio 2012 Express for Desktop".

Setup script modified to use newer Qt (4.7.4 -> 4.8.3), VTK (5.8 ->
5.10) and shapelib (1.3.0b2 -> 1.3.0).
---
 Gui/DataView/NetCdfConfigureDialog.h |   5 +-
 scripts/base/configure_win_vs.sh     |  30 ++-
 scripts/cmake/Find.cmake             |   4 +-
 scripts/setup/setup_libraries.sh     | 299 +++++++++++++--------------
 scripts/setup/setup_prerequisites.sh |   1 +
 5 files changed, 173 insertions(+), 166 deletions(-)

diff --git a/Gui/DataView/NetCdfConfigureDialog.h b/Gui/DataView/NetCdfConfigureDialog.h
index e42db6db4b1..d2dff7aaf22 100644
--- a/Gui/DataView/NetCdfConfigureDialog.h
+++ b/Gui/DataView/NetCdfConfigureDialog.h
@@ -4,11 +4,8 @@
 #ifndef NETCDFCONFIGUREDIALOG_H
 #define NETCDFCONFIGUREDIALOG_H
 
-#ifdef VTK_NETCDF_FOUND
-#include <vtknetcdf/netcdfcpp.h>
-#else
 #include <netcdfcpp.h>
-#endif
+
 #include <QDialog>
 #include "ui_NetCdfConfigure.h"
 
diff --git a/scripts/base/configure_win_vs.sh b/scripts/base/configure_win_vs.sh
index f01eb6f65d4..e3b1d20152e 100644
--- a/scripts/base/configure_win_vs.sh
+++ b/scripts/base/configure_win_vs.sh
@@ -1,20 +1,28 @@
 # Check Visual Studio version and setup CMake generator
-if [ -z "$VS100COMNTOOLS" ]; then
-	if [ -z "$VS90COMNTOOLS" ]; then
-		if [ -z "$VS80COMNTOOLS" ]; then
-			echo "Error: Visual Studio not found"
-			exit 1
+if [ -z "$VS110COMNTOOLS" ]; then
+	if [ -z "$VS100COMNTOOLS" ]; then
+		if [ -z "$VS90COMNTOOLS" ]; then
+			if [ -z "$VS80COMNTOOLS" ]; then
+				echo "Error: Visual Studio not found"
+				exit 1
+			else
+				WIN_DEVENV_PATH="$VS80COMNTOOLS..\\IDE"
+				CMAKE_GENERATOR="Visual Studio 8 2005"
+			fi
 		else
-			WIN_DEVENV_PATH="$VS80COMNTOOLS..\\IDE"
-			CMAKE_GENERATOR="Visual Studio 8 2005"
+			WIN_DEVENV_PATH="$VS90COMNTOOLS..\\IDE"
+			CMAKE_GENERATOR="Visual Studio 9 2008"
 		fi
 	else
-		WIN_DEVENV_PATH="$VS90COMNTOOLS..\\IDE"
-		CMAKE_GENERATOR="Visual Studio 9 2008"
+		WIN_DEVENV_PATH="$VS100COMNTOOLS..\\IDE\\"
+		CMAKE_GENERATOR="Visual Studio 10"
 	fi
 else
-	WIN_DEVENV_PATH="$VS100COMNTOOLS..\\IDE\\"
-	CMAKE_GENERATOR="Visual Studio 10"
+	WIN_DEVENV_PATH="$VS110COMNTOOLS..\\IDE\\"
+	CMAKE_GENERATOR="Visual Studio 11"
+	if [ "$ARCHITECTURE" == "x64" ]; then
+		WIN_ARCHITECTURE="x86_amd64"
+	fi
 fi
 
 if [ "$ARCHITECTURE" == "x64" ]; then
diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index 4f3564ed459..e34248bf231 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -92,7 +92,9 @@ ENDIF()
 
 IF(VTK_NETCDF_FOUND)
 	ADD_DEFINITIONS(-DVTK_NETCDF_FOUND)
-	INCLUDE_DIRECTORIES(${VTK_NETCDF_FOUND} ${VTK_DIR}/Utilities ${VTK_NETCDF_FOUND}/../..)
+	INCLUDE_DIRECTORIES(
+		${VTK_NETCDF_FOUND} ${VTK_DIR}/Utilities
+		${VTK_NETCDF_FOUND}/../.. ${VTK_NETCDF_FOUND}/../cxx)
 ELSE()
 	SET(NETCDF_CXX TRUE)
 	FIND_PACKAGE(NetCDF)
diff --git a/scripts/setup/setup_libraries.sh b/scripts/setup/setup_libraries.sh
index 7352465d9ee..1c545139d6c 100755
--- a/scripts/setup/setup_libraries.sh
+++ b/scripts/setup/setup_libraries.sh
@@ -9,161 +9,160 @@ mkdir -vp lib
 
 QMAKE_LOCATION=`which qmake`
 
-QT_VERSION="qt-everywhere-opensource-src-4.7.4"
-VTK_VERSION="vtk-5.8.0"
-SHAPELIB_VERSION="shapelib-1.3.0b2"
+QT_VERSION="qt-everywhere-opensource-src-4.8.3"
+VTK_VERSION="vtk-5.10.0"
+SHAPELIB_VERSION="shapelib-1.3.0"
 LIBGEOTIFF_VERSION="libgeotiff-1.3.0"
 INSTANTCLIENT_VERSION="instantclient_11_2"
 METIS_VERSION="metis-5.0.2"
 
 ## Windows specific
 if [ "$OSTYPE" == 'msys' ]; then
-#	if [ -z "$QMAKE_LOCATION" ]; then
-#		# Install Qt
-#		if [ ! -d qt ]; then
-#			# Download and extract
-#			download_file http://get.qt.nokia.com/qt/source/$QT_VERSION.zip ./$QT_VERSION.zip
-#			7za x $QT_VERSION.zip
-#			mv $QT_VERSION/ qt/
-#			rm $QT_VERSION.zip
-#
-#		elif [ -f qt/bin/qmake.exe -a -f qt/bin/QtGui4.dll -a -f qt/bin/QtGuid4.dll ]; then
-#			# Already installed
-#			QT_FOUND=true
-#		fi
-#
-#		if [ $QT_FOUND ]; then
-#			echo "Qt already installed in $LIBS_LOCATION/qt"
-#		else
-#			# Compile
-#			QT_CONFIGURATION="-debug-and-release"
-#
-#			# Get instantclient
-#			QT_SQL_ARGS=""
-#			if [ $QT_SQL ]; then
-#				if [ ! -d instantclient ]; then
-#					if [ "$ARCHITECTURE" == "x64" ]; then
-#						download_file http://dl.dropbox.com/u/5581063/instantclient_11_2_x64.zip ./instantclient_11_2_x64.zip 015bd1b163571988cacf70e7d6185cb5
-#						7za x instantclient_11_2_x64.zip
-#						mv instantclient_11_2/ instantclient/
-#						rm instantclient_11_2_x64.zip
-#					fi
-#				fi
-#				QT_SQL_ARGS="-qt-sql-oci -I %cd%\..\instantclient\sdk\include -L %cd%\..\instantclient\sdk\lib\msvc"
-#			fi
-#
-#			cd qt
-#
-#			echo " \
-#			\"$WIN_DEVENV_PATH\\..\\..\\VC\\vcvarsall.bat\" $WIN_ARCHITECTURE &&\
-#			echo y | configure -opensource -no-accessibility -no-dsp -no-vcproj -no-phonon -no-webkit -no-scripttools -nomake demos -nomake examples $QT_CONFIGURATION $QT_SQL_ARGS &&\
-#			jom && nmake clean &&\
-#			exit\
-#			" > build.bat
-#
-#			$COMSPEC \/k build.bat
-#			QT_WAS_BUILT=true
-#		fi
-#
-#		export PATH=$PATH:$LIBS_LOCATION/qt/bin
-#
-#	else
-#		echo "Qt already installed in $QMAKE_LOCATION"
-#	fi
-#
-#
-#	# Install VTK
-#	cd $LIBS_LOCATION
-#	if [ ! -d vtk ]; then
-#		# Download, extract, rename
-#		download_file http://www.vtk.org/files/release/5.8/$VTK_VERSION.tar.gz ./$VTK_VERSION.tar.gz
-#		tar -xf $VTK_VERSION.tar.gz
-#		rm $VTK_VERSION.tar.gz
-#	# Check for existing installation
-#	elif [ -f vtk/build/bin/Release/QVTK.lib -a -f vtk/build/bin/Release/vtkRendering.lib ]; then
-#		if [ $LIB_DEBUG ]; then
-#			if [ -f vtk/build/bin/Debug/QVTK.lib -a -f vtk/build/bin/Debug/vtkRendering.lib ]; then
-#				VTK_FOUND=true
-#			fi
-#		else
-#			VTK_FOUND=true
-#		fi
-#	fi
-#
-#	if [ $VTK_FOUND ]; then
-#		echo "VTK already installed in $LIBS_LOCATION/vtk"
-#	else
-#		# Compile
-#		cd vtk
-#		mkdir -vp build
-#		cd build
-#		cmake .. -DBUILD_TESTING=OFF -DVTK_USE_QT=ON -G "$CMAKE_GENERATOR"
-#		cmake ..
-#		#$COMSPEC \/c "echo %PATH%"
-#		$COMSPEC \/c "devenv VTK.sln /Build Release"
-#		$COMSPEC \/c "devenv VTK.sln /Build Release /Project QVTK"
-#		$COMSPEC \/c "devenv VTK.sln /Build Debug"
-#		$COMSPEC \/c "devenv VTK.sln /Build Debug /Project QVTK"
-#	fi
-#
-#	# Install shapelib
-#	cd $LIBS_LOCATION
-#	if [ ! -d shapelib ]; then
-#		# Download, extract
-#		download_file http://download.osgeo.org/shapelib/$SHAPELIB_VERSION.tar.gz ./$SHAPELIB_VERSION.tar.gz
-#		tar -xf $SHAPELIB_VERSION.tar.gz
-#		mv $SHAPELIB_VERSION/ shapelib/
-#		rm -rf $SHAPELIB_VERSION.tar.gz
-#	elif [ -f shapelib/shapelib.lib ]; then
-#		SHAPELIB_FOUND=true
-#	fi
-#
-#	if [ $SHAPELIB_FOUND ]; then
-#		echo "Shapelib already installed in $LIBS_LOCATION/shapelib"
-#	else
-#		# Compile
-#		cd shapelib
-#
-#		echo " \
-#		\"$WIN_DEVENV_PATH\\..\\..\\VC\\vcvarsall.bat\" $WIN_ARCHITECTURE &&\
-#		nmake /f makefile.vc &&\
-#		exit\
-#		" > build.bat
-#
-#		$COMSPEC \/k build.bat
-#	fi
-#
-#	# Install libgeotiff
-#	cd $LIBS_LOCATION
-#	if [ ! -d libgeotiff ]; then
-#		# Download, extract
-#		download_file http://download.osgeo.org/geotiff/libgeotiff/$LIBGEOTIFF_VERSION.tar.gz ./$LIBGEOTIFF_VERSION.tar.gz
-#		tar -xf $LIBGEOTIFF_VERSION.tar.gz
-#		mv $LIBGEOTIFF_VERSION/ libgeotiff/
-#		rm -rf $LIBGEOTIFF_VERSION.tar.gz
-#	elif [ -f libgeotiff/geotiff.lib ]; then
-#		LIBGEOTIFF_FOUND=true
-#	fi
-#
-#	if [ $LIBGEOTIFF_FOUND ]; then
-#		echo "Libgeotiff already installed in $LIBS_LOCATION/libgeotiff"
-#	else
-#		# Compile
-#		cd libgeotiff
-#
-#		# Download modified makefile
-#		if [ ! -f makefile_mod.vc ]; then
-#			download_file http://dl.dropbox.com/u/5581063/makefile_mod.vc ./makefile_mod.vc 14fb13a5bd04ffc298fee7825dc7679f
-#		fi
-#
-#		echo " \
-#		\"$WIN_DEVENV_PATH\\..\\..\\VC\\vcvarsall.bat\" $WIN_ARCHITECTURE &&\
-#		nmake /f makefile_mod.vc all&&\
-#		exit\
-#		" > build.bat
-#
-#		$COMSPEC \/k build.bat
-#	fi
+	if [ -z "$QMAKE_LOCATION" ]; then
+		# Install Qt
+		if [ ! -d qt ]; then
+			# Download and extract
+			download_file http://releases.qt-project.org/qt4/source/$QT_VERSION.zip ./$QT_VERSION.zip
+			7za x $QT_VERSION.zip
+			mv $QT_VERSION/ qt/
+			rm $QT_VERSION.zip
+
+		elif [ -f qt/bin/qmake.exe -a -f qt/bin/QtGui4.dll -a -f qt/bin/QtGuid4.dll ]; then
+			# Already installed
+			QT_FOUND=true
+		fi
+
+		if [ $QT_FOUND ]; then
+			echo "Qt already installed in $LIBS_LOCATION/qt"
+		else
+			# Compile
+			QT_CONFIGURATION="-debug-and-release"
+
+			# Get instantclient
+			QT_SQL_ARGS=""
+			if [ $QT_SQL ]; then
+				if [ ! -d instantclient ]; then
+					if [ "$ARCHITECTURE" == "x64" ]; then
+						download_file http://dl.dropbox.com/u/5581063/instantclient_11_2_x64.zip ./instantclient_11_2_x64.zip 015bd1b163571988cacf70e7d6185cb5
+						7za x instantclient_11_2_x64.zip
+						mv instantclient_11_2/ instantclient/
+						rm instantclient_11_2_x64.zip
+					fi
+				fi
+				QT_SQL_ARGS="-qt-sql-oci -I %cd%\..\instantclient\sdk\include -L %cd%\..\instantclient\sdk\lib\msvc"
+			fi
+
+			cd qt
+
+			echo " \
+			\"$WIN_DEVENV_PATH\\..\\..\\VC\\vcvarsall.bat\" $WIN_ARCHITECTURE &&\
+			echo y | configure -opensource -no-accessibility -no-dsp -no-vcproj -no-phonon -no-webkit -no-scripttools -nomake demos -nomake examples $QT_CONFIGURATION $QT_SQL_ARGS &&\
+			jom && nmake clean &&\
+			exit\
+			" > build.bat
+
+			$COMSPEC \/k build.bat
+			QT_WAS_BUILT=true
+		fi
+
+		export PATH=$PATH:$LIBS_LOCATION/qt/bin
+
+	else
+		echo "Qt already installed in $QMAKE_LOCATION"
+	fi
+
+
+	# Install VTK
+	cd $LIBS_LOCATION
+	if [ ! -d vtk ]; then
+		# Download, extract, rename
+		download_file http://www.vtk.org/files/release/5.10/$VTK_VERSION.tar.gz ./$VTK_VERSION.tar.gz
+		tar -xf $VTK_VERSION.tar.gz
+		rm $VTK_VERSION.tar.gz
+	# Check for existing installation
+	elif [ -f vtk/build/bin/Release/QVTK.lib -a -f vtk/build/bin/Release/vtkRendering.lib ]; then
+		if [ $LIB_DEBUG ]; then
+			if [ -f vtk/build/bin/Debug/QVTK.lib -a -f vtk/build/bin/Debug/vtkRendering.lib ]; then
+				VTK_FOUND=true
+			fi
+		else
+			VTK_FOUND=true
+		fi
+	fi
+
+	if [ $VTK_FOUND ]; then
+		echo "VTK already installed in $LIBS_LOCATION/vtk"
+	else
+		# Compile
+		cd vtk
+		mkdir -vp build
+		cd build
+		cmake .. -DBUILD_TESTING=OFF -DVTK_USE_QT=ON -G "$CMAKE_GENERATOR"
+		cmake ..
+		cmake --build . --config Release
+		cmake --build . --config Release --target QVTK
+		cmake --build . --config Debug
+		cmake --build . --config Debug --target QVTK
+	fi
+
+	# Install shapelib
+	cd $LIBS_LOCATION
+	if [ ! -d shapelib ]; then
+		# Download, extract
+		download_file http://download.osgeo.org/shapelib/$SHAPELIB_VERSION.tar.gz ./$SHAPELIB_VERSION.tar.gz
+		tar -xf $SHAPELIB_VERSION.tar.gz
+		mv $SHAPELIB_VERSION/ shapelib/
+		rm -rf $SHAPELIB_VERSION.tar.gz
+	elif [ -f shapelib/shapelib.lib ]; then
+		SHAPELIB_FOUND=true
+	fi
+
+	if [ $SHAPELIB_FOUND ]; then
+		echo "Shapelib already installed in $LIBS_LOCATION/shapelib"
+	else
+		# Compile
+		cd shapelib
+
+		echo " \
+		\"$WIN_DEVENV_PATH\\..\\..\\VC\\vcvarsall.bat\" $WIN_ARCHITECTURE &&\
+		nmake /f makefile.vc &&\
+		exit\
+		" > build.bat
+
+		$COMSPEC \/k build.bat
+	fi
+
+	# Install libgeotiff
+	cd $LIBS_LOCATION
+	if [ ! -d libgeotiff ]; then
+		# Download, extract
+		download_file http://download.osgeo.org/geotiff/libgeotiff/$LIBGEOTIFF_VERSION.tar.gz ./$LIBGEOTIFF_VERSION.tar.gz
+		tar -xf $LIBGEOTIFF_VERSION.tar.gz
+		mv $LIBGEOTIFF_VERSION/ libgeotiff/
+		rm -rf $LIBGEOTIFF_VERSION.tar.gz
+	elif [ -f libgeotiff/geotiff.lib ]; then
+		LIBGEOTIFF_FOUND=true
+	fi
+
+	if [ $LIBGEOTIFF_FOUND ]; then
+		echo "Libgeotiff already installed in $LIBS_LOCATION/libgeotiff"
+	else
+		# Compile
+		cd libgeotiff
+
+		# Download modified makefile
+		if [ ! -f makefile_mod.vc ]; then
+			download_file http://dl.dropbox.com/u/5581063/makefile_mod.vc ./makefile_mod.vc 14fb13a5bd04ffc298fee7825dc7679f
+		fi
+
+		echo " \
+		\"$WIN_DEVENV_PATH\\..\\..\\VC\\vcvarsall.bat\" $WIN_ARCHITECTURE &&\
+		nmake /f makefile_mod.vc all&&\
+		exit\
+		" > build.bat
+
+		$COMSPEC \/k build.bat
+	fi
 
 	# Install Metis
 	cd $LIBS_LOCATION
@@ -185,7 +184,7 @@ if [ "$OSTYPE" == 'msys' ]; then
 		cd metis
 		$COMSPEC \/c "vsgen.bat -G \"$CMAKE_GENERATOR\""
 		cd build/windows
-		cmake --build . --config Release --target metis
+		cmake --build . --config Release
 		cd ../..
 		cp build/windows/libmetis/Release/metis.lib ../lib/metis.lib
 		cp include/metis.h ../include/metis.h
diff --git a/scripts/setup/setup_prerequisites.sh b/scripts/setup/setup_prerequisites.sh
index f02acc10c31..5149883346d 100755
--- a/scripts/setup/setup_prerequisites.sh
+++ b/scripts/setup/setup_prerequisites.sh
@@ -14,6 +14,7 @@ source $SOURCE_LOCATION/scripts/base/configure_compiler.sh
 if [ "$OSTYPE" == 'msys' ]; then
 
 	mkdir -vp ~/bin
+	export PATH=$PATH:~/bin
 
 	# 7-zip
 	SEVENZIP_LOCATION=`which 7za`
-- 
GitLab