[svn-r15089] Purpose: Support Visual Studio .NET builds from command-line

Description:
In our Windows command-line build script, we now support building with Visual Studio .NET, although VS2005 is still the default.  Building with VS.NET still imposes the same feature restrictions as through the IDE:
-- 64-bit builds are unsupported
-- Fortran is unsupported

Tested:
VS.NET on WinXP
VS2005 on WinXP
This commit is contained in:
Scott Wegner 2008-05-29 09:42:26 -05:00
parent c06ae0d558
commit 9cc6eeb7e8
2 changed files with 88 additions and 36 deletions

View File

@ -16,6 +16,8 @@ rem access to either file, you may request a copy from help@hdfgroup.org.
rem File Name: hdf5bt.bat
rem This batch file is used to build and test HDF5 Libraries and Tools.
rem This batch file takes the following options:
rem . /vs7 Build HDF5 using Visual Studio .NET 2003
rem . Note: Default is Visual Studio 2005
rem . /fort Build and test HDF5 with Fortran libraries
rem . /useenv Build HDF5 using compiler settings defined
rem . in the environment, rather than the IDE.
@ -25,7 +27,7 @@ rem . HDF5CHECK_LOG
rem . /? Help information
rem By Xuan Bai
rem Created: Aug. 16, 2004
rem Last Updated: Scott Wegner, 10/1/07
rem Last Updated: Scott Wegner, 5/27/08
rem This batch file makes the following assumptions:
rem - The appropriate version of Visual Studio is installed and setup
@ -57,6 +59,8 @@ rem Print a help message
echo.
echo Usage: %~nx0 [OPTION]
echo.
echo. /vs7 Build HDF5 using Visual Studio .NET 2003
echo. Note: Default is Visual Studio 2005
echo. /fort Build and test HDF5 with Fortran libraries
echo. /useenv Build HDF5 using compiler settings defined
echo. in the environment, rather than the IDE.
@ -69,7 +73,11 @@ rem Parse through the parameters sent to file, and set appropriate variables
:parse_params
for %%a in (%*) do (
if "%%a"=="/fort" (
if "%%a"=="/vs7" (
rem Use Visual Studio .NET to build
set hdf5_vnet=true
) else if "%%a"=="/fort" (
rem Enable Fortran
set hdf5_enablefortran=true
@ -105,6 +113,10 @@ rem Setup our environment
set hdf5build_params=
set hdf5check_params=enablecpp
if defined hdf5_vnet (
set hdf5build_params=%hdf5build_params% /vs7
)
if defined hdf5_enablefortran (
set hdf5build_params=%hdf5build_params% /fort
set hdf5check_params=enableall

View File

@ -16,6 +16,8 @@ rem access to either file, you may request a copy from helphdfgroup.org.
rem File Name: hdf5build.bat
rem This batch file is used to build HDF5 Libraries and Tools.
rem This batch file takes the following options:
rem . /vs7 Build HDF5 using Visual Studio .NET 2003
rem . Note: Default is Visual Studio 2005
rem . /fort Build HDF5 with Fortran libraries
rem . /useenv Build HDF5 using compiler settings defined
rem . in the environment, rather than the IDE.
@ -52,6 +54,8 @@ rem Print a help message
echo.
echo.Usage: %~nx0 [OPTION]
echo.
echo. /vs7 Build HDF5 using Visual Studio .NET 2003
echo. Note: Default is Visual Studio 2005
echo. /fort Build HDF5 with Fortran libraries
echo. /useenv Build HDF5 using compiler settings defined
echo. in the environment, rather than the IDE.
@ -64,7 +68,10 @@ rem Parse through the parameters sent to file, and set appropriate variables
:parse_params
for %%a in (%*) do (
if "%%a"=="/fort" (
if "%%a"=="/vs7" (
rem Use Visual Studio .NET 2003
set hdf5_vnet=true
) else if "%%a"=="/fort" (
rem Enable Fortran
set hdf5_enablefortran=true
@ -95,12 +102,30 @@ rem Setup our environment
echo.Setting up environment
rem By default, use all.sln, unless hdf5_enablefortran is set
if defined hdf5_enablefortran (
echo.Building Fortran projects enabled
set hdf5_sln="%CD%\windows\proj\all_fortran\all_fortran.sln"
rem Sanity check-- make sure VS.NET isn't specified with Fortran or x64
if defined hdf5_vnet (
if defined hdf5_enablefortran (
echo.Error: Building Fortran libraries with Visual Studio .NET is unsupported
exit /b 1
)
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
echo.Error: Building HDF5 on x64 with Visual Studio .NET is unsupported
exit /b 1
)
)
rem Figure out which solution file to use based on configuration
if defined hdf5_vnet (
echo.Using Visual Studio .NET 2003
set hdf5_sln="%CD%\windows_vnet\proj\all\all.sln"
) else (
set hdf5_sln="%CD%\windows\proj\all\all.sln"
echo.Using Visual Studio 2005
if defined hdf5_enablefortran (
echo.Building Fortran projects enabled
set hdf5_sln="%CD%\windows\proj\all_fortran\all_fortran.sln"
) else (
set hdf5_sln="%CD%\windows\proj\all\all.sln"
)
)
@ -120,40 +145,49 @@ rem Setup our environment
set ccflags=
rem Currently VS2005 is the only compiler supported. --SJW 9/26/07
echo.Using Visual Studio 2005
if not defined hdf5_enablefortran (
if defined vs80comntools (
rem This sets the Visual Studio path and environment variables
if %hdf5_platform%==Win32 (
call "%vs80comntools%\..\..\VC\vcvarsall.bat" x86
) else (
call "%vs80comntools%\..\..\VC\vcvarsall.bat" x86_amd64
)
if defined hdf5_vnet (
if defined vs71comntools (
rem This sets the Visual Studio .NET path and environment variables
call "%vs71comntools%\vsvars32.bat"
) else (
echo.Error: Cannot setup Visual Studio 2005 environment. Please
echo.make sure VS80COMNTOOLS is defined in the environment.
echo.Error: Cannot setup Visual Studio .NET 2003 environment. Please
echo.make sure VS71COMNTOOLS is defined in the environment.
exit /b 1
)
) else (
echo.with Intel Visual Fortran 9.1
if defined ifort_compiler91 (
rem This sets the Intel Fortran 9.1 environment, as well as
rem setting the appropriate Visual Studio environment
if %hdf5_platform%==Win32 (
call "%ifort_compiler91%\IA32\Bin\ifortvars.bat"
rem Assume Visual Studio 2005
if not defined hdf5_enablefortran (
if defined vs80comntools (
rem This sets the Visual Studio 2005 path and environment variables
if %hdf5_platform%==Win32 (
call "%vs80comntools%\..\..\VC\vcvarsall.bat" x86
) else (
call "%vs80comntools%\..\..\VC\vcvarsall.bat" x86_amd64
)
) else (
call "%ifort_compiler91%\em64t\Bin\ifortvars.bat"
echo.Error: Cannot setup Visual Studio 2005 environment. Please
echo.make sure VS80COMNTOOLS is defined in the environment.
exit /b 1
)
) else (
echo.Error: Cannot setup Intel Fortran 9.1 environment. Please
echo.make sure IFORT_COMPILER91 is defined in the environment.
exit /b 1
echo.with Intel Visual Fortran 9.1
if defined ifort_compiler91 (
rem This sets the Intel Fortran 9.1 environment, as well as
rem setting the appropriate Visual Studio environment
if %hdf5_platform%==Win32 (
call "%ifort_compiler91%\IA32\Bin\ifortvars.bat"
) else (
call "%ifort_compiler91%\em64t\Bin\ifortvars.bat"
)
) else (
echo.Error: Cannot setup Intel Fortran 9.1 environment. Please
echo.make sure IFORT_COMPILER91 is defined in the environment.
exit /b 1
)
)
)
@ -180,7 +214,13 @@ rem Build the HDF5 libraries. By default, C and C++ libraries are built.
rem Build both debug and release versions
for %%a in (debug release) DO (
echo.Building %hdf5_platform% %%a libraries...
devenv %hdf5_sln% %ccflags% /rebuild "%%a|%hdf5_platform%"
rem Only add hdf5_platform if using Visual Studio 2005, because Visual Studio
rem .NET doesn't like the syntax
if defined hdf5_vnet (
devenv %hdf5_sln% %ccflags% /rebuild %%a
) else (
devenv %hdf5_sln% %ccflags% /rebuild "%%a|%hdf5_platform%"
)
if !errorlevel! neq 0 exit /b
)