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