Add a new shader-versioning infrastructure capable of handling multiple profiles, desktop/ES, many versions, features coming and going in different versions across different profiles, and extensions.  

NB: *Use* of this infrastructure is so far only skeletal.

Fixed a few typos and minor issues along the way.


git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@19951 e7fa87d3-cd2b-0410-9028-fcbf551c1848
diff --git a/glslang.vcxproj b/glslang.vcxproj
new file mode 100644
index 0000000..555ddf1
--- /dev/null
+++ b/glslang.vcxproj
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|Win32">

+      <Configuration>Debug</Configuration>

+      <Platform>Win32</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|Win32">

+      <Configuration>Release</Configuration>

+      <Platform>Win32</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectName>glslang</ProjectName>

+    <ProjectGuid>{3B146CC5-B2B8-4573-9D46-6139E2EDFEA3}</ProjectGuid>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

+    <ConfigurationType>DynamicLibrary</ConfigurationType>

+    <UseOfMfc>false</UseOfMfc>

+    <CharacterSet>MultiByte</CharacterSet>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

+    <ConfigurationType>DynamicLibrary</ConfigurationType>

+    <UseOfMfc>false</UseOfMfc>

+    <CharacterSet>MultiByte</CharacterSet>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">glslang\UserM_Debug\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">glslang\UserM_Debug\</IntDir>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>

+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">UserM_Release\</OutDir>

+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">UserM_Release\</IntDir>

+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

+    <ClCompile>

+      <Optimization>Disabled</Optimization>

+      <AdditionalIncludeDirectories>glslang;glslang\MachineIndependent;glslang\OSDependent\Windows;OGLCompilersDLL;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <PreprocessorDefinitions>_DEBUG;WIN32;_CONSOLE;_USRDLL;TEST_EXPORTS;GENERIC_COMPILER;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <MinimalRebuild>false</MinimalRebuild>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>

+      <PrecompiledHeaderOutputFile>

+      </PrecompiledHeaderOutputFile>

+      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>

+      <ObjectFileName>$(IntDir)</ObjectFileName>

+      <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>

+      <BrowseInformation>

+      </BrowseInformation>

+      <WarningLevel>Level3</WarningLevel>

+      <SuppressStartupBanner>true</SuppressStartupBanner>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <CallingConvention>FastCall</CallingConvention>

+      <CompileAs>Default</CompileAs>

+    </ClCompile>

+    <Link>

+      <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>

+      <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>

+      <SuppressStartupBanner>false</SuppressStartupBanner>

+      <IgnoreSpecificDefaultLibraries>libcmtd.lib;libcd.lib;libcmt.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <ProgramDatabaseFile>UserM_Debug/glslang.pdb</ProgramDatabaseFile>

+      <SubSystem>Console</SubSystem>

+      <ImportLibrary>UserM_Debug/generic/glslang.lib</ImportLibrary>

+      <OutputFile>$(IntDir)$(TargetName)$(TargetExt)</OutputFile>

+    </Link>

+    <Midl>

+      <TypeLibraryName>UserM_Debug/generic/glslang.tlb</TypeLibraryName>

+    </Midl>

+    <PostBuildEvent>

+      <Message>copy dll</Message>

+      <Command>del Test\$(TargetName)$(TargetExt)

+xcopy /y $(IntDir)$(TargetName)$(TargetExt) Test</Command>

+    </PostBuildEvent>

+    <ResourceCompile>

+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <Culture>0x0809</Culture>

+    </ResourceCompile>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

+    <ClCompile>

+      <Optimization>MaxSpeed</Optimization>

+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>

+      <OmitFramePointers>true</OmitFramePointers>

+      <AdditionalIncludeDirectories>glslang;glslang\MachineIndependent;glslang\OSDependent\Windows;OGLCompilersDLL;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <PreprocessorDefinitions>NDEBUG;WIN32;_CONSOLE;_USRDLL;TEST_EXPORTS;GENERIC_COMPILER;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <StringPooling>true</StringPooling>

+      <MinimalRebuild>false</MinimalRebuild>

+      <BasicRuntimeChecks>Default</BasicRuntimeChecks>

+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>

+      <BufferSecurityCheck>true</BufferSecurityCheck>

+      <FunctionLevelLinking>true</FunctionLevelLinking>

+      <PrecompiledHeaderOutputFile>

+      </PrecompiledHeaderOutputFile>

+      <AssemblerListingLocation>UserM_Release/</AssemblerListingLocation>

+      <ObjectFileName>UserM_Release/</ObjectFileName>

+      <ProgramDataBaseFileName>UserM_Release/glslang</ProgramDataBaseFileName>

+      <BrowseInformation>

+      </BrowseInformation>

+      <WarningLevel>Level3</WarningLevel>

+      <SuppressStartupBanner>true</SuppressStartupBanner>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <CallingConvention>FastCall</CallingConvention>

+      <CompileAs>Default</CompileAs>

+    </ClCompile>

+    <Link>

+      <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>

+      <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>

+      <OutputFile>UserM_Release/generic/glslang.dll</OutputFile>

+      <SuppressStartupBanner>true</SuppressStartupBanner>

+      <IgnoreSpecificDefaultLibraries>libcmtd.lib;libcd.lib;libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <ProgramDatabaseFile>UserM_Release/generic/glslang.pdb</ProgramDatabaseFile>

+      <SubSystem>Console</SubSystem>

+      <OptimizeReferences>true</OptimizeReferences>

+      <EnableCOMDATFolding>true</EnableCOMDATFolding>

+      <ImportLibrary>UserM_Release/generic/glslang.lib</ImportLibrary>

+    </Link>

+    <Midl>

+      <TypeLibraryName>UserM_Release/generic/glslang.tlb</TypeLibraryName>

+    </Midl>

+    <PostBuildEvent>

+      <Message>copy dll</Message>

+      <Command>xcopy /y UserM_Release\generic\glslang.* StandAlone</Command>

+    </PostBuildEvent>

+    <ResourceCompile>

+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <Culture>0x0809</Culture>

+    </ResourceCompile>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClCompile Include="glslang\MachineIndependent\gen_glslang.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\glslang_tab.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\InfoSink.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\Initialize.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\Versions.cpp" />

+    <ClCompile Include="OGLCompilersDLL\InitializeDll.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\IntermTraverse.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\Intermediate.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\ParseHelper.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\PoolAlloc.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\QualifierAlive.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\RemoveTree.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\ShaderLang.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\SymbolTable.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\intermOut.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\parseConst.cpp" />

+    <ClCompile Include="glslang\MachineIndependent\preprocessor\atom.c" />

+    <ClCompile Include="glslang\MachineIndependent\preprocessor\cpp.c" />

+    <ClCompile Include="glslang\MachineIndependent\preprocessor\cppstruct.c" />

+    <ClCompile Include="glslang\MachineIndependent\preprocessor\memory.c" />

+    <ClCompile Include="glslang\MachineIndependent\preprocessor\scanner.c" />

+    <ClCompile Include="glslang\MachineIndependent\preprocessor\symbols.c" />

+    <ClCompile Include="glslang\MachineIndependent\preprocessor\tokens.c" />

+    <ClCompile Include="glslang\GenericCodeGen\CodeGen.cpp" />

+    <ClCompile Include="glslang\GenericCodeGen\Link.cpp" />

+    <ClCompile Include="glslang\OSDependent\Windows\main.cpp" />

+    <ClCompile Include="glslang\OSDependent\Windows\ossource.cpp" />

+    <ClCompile Include="glslang\OSDependent\Linux\ossource.cpp">

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

+      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>

+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>

+      <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="glslang\MachineIndependent\glslang_tab.cpp.h" />

+    <ClInclude Include="glslang\MachineIndependent\Initialize.h" />

+    <ClInclude Include="glslang\MachineIndependent\MMap.h" />

+    <ClInclude Include="glslang\MachineIndependent\ParseHelper.h" />

+    <ClInclude Include="glslang\MachineIndependent\QualifierAlive.h" />

+    <ClInclude Include="glslang\MachineIndependent\RemoveTree.h" />

+    <ClInclude Include="glslang\MachineIndependent\localintermediate.h" />

+    <ClInclude Include="glslang\MachineIndependent\preprocessor\atom.h" />

+    <ClInclude Include="glslang\MachineIndependent\preprocessor\compile.h" />

+    <ClInclude Include="glslang\MachineIndependent\preprocessor\cpp.h" />

+    <ClInclude Include="glslang\MachineIndependent\preprocessor\memory.h" />

+    <ClInclude Include="glslang\MachineIndependent\preprocessor\parser.h" />

+    <ClInclude Include="glslang\MachineIndependent\preprocessor\preprocess.h" />

+    <ClInclude Include="glslang\MachineIndependent\preprocessor\scanner.h" />

+    <ClInclude Include="glslang\MachineIndependent\preprocessor\slglobals.h" />

+    <ClInclude Include="glslang\MachineIndependent\preprocessor\symbols.h" />

+    <ClInclude Include="glslang\MachineIndependent\preprocessor\tokens.h" />

+    <ClInclude Include="glslang\Include\BaseTypes.h" />

+    <ClInclude Include="glslang\Include\Common.h" />

+    <ClInclude Include="glslang\Include\ConstantUnion.h" />

+    <ClInclude Include="glslang\Include\InfoSink.h" />

+    <ClInclude Include="glslang\MachineIndependent\Versions.h" />

+    <ClInclude Include="OGLCompilersDLL\InitializeDll.h" />

+    <ClInclude Include="glslang\Include\InitializeGlobals.h" />

+    <ClInclude Include="glslang\Include\InitializeParseContext.h" />

+    <ClInclude Include="glslang\Include\PoolAlloc.h" />

+    <ClInclude Include="glslang\Include\ResourceLimits.h" />

+    <ClInclude Include="glslang\Include\ShHandle.h" />

+    <ClInclude Include="glslang\MachineIndependent\SymbolTable.h" />

+    <ClInclude Include="glslang\Include\Types.h" />

+    <ClInclude Include="glslang\Include\intermediate.h" />

+    <ClInclude Include="glslang\MachineIndependent\unistd.h" />

+    <ClInclude Include="glslang\Public\ShaderLang.h" />

+    <ClInclude Include="glslang\OSDependent\Windows\osinclude.h" />

+    <ClInclude Include="glslang\OSDependent\Linux\osinclude.h" />

+  </ItemGroup>

+  <ItemGroup>

+    <CustomBuild Include="glslang\MachineIndependent\glslang.y">

+      <FileType>Document</FileType>

+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Executing Bison on glslang.y</Message>

+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">SET BISON_SIMPLE=%(RootDir)%(Directory)..\..\tools\bison.simple

+SET BISON_HAIRY=%(RootDir)%(Directory)..\..\tools\bison.simple

+cd %(RootDir)%(Directory)

+%(RootDir)%(Directory)..\..\tools\bison.exe -d -t glslang.y -o glslang_tab.cpp

+</Command>

+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RootDir)%(Directory)glslang_tab.cpp;%(RootDir)%(Directory)glslang_tab.cpp.h</Outputs>

+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Executing Bison on %(FullPath)</Message>

+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">SET BISON_SIMPLE=%(RootDir)%(Directory)..\..\tools\bison.simple

+SET BISON_HAIRY=%(RootDir)%(Directory)..\..\tools\bison.simple

+cd %(RootDir)%(Directory)

+%(RootDir)%(Directory)..\..\tools\bison.exe -d -t -v %(Filename).y

+if EXIST %(RootDir)%(Directory)Gen_%(Filename)_tab.cpp del %(RootDir)%(Directory)Gen_%(Filename)_tab.cpp

+rename %(RootDir)%(Directory)%(Filename)_tab.c Gen_%(Filename)_tab.cpp

+</Command>

+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RootDir)%(Directory)Gen_%(Filename)_tab.cpp;%(Outputs)</Outputs>

+    </CustomBuild>

+  </ItemGroup>

+  <ItemGroup>

+    <CustomBuild Include="glslang\MachineIndependent\glslang.l">

+      <FileType>Document</FileType>

+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cd %(RootDir)%(Directory)

+%(RootDir)%(Directory)..\..\tools\flex.exe glslang.l

+</Command>

+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Executing flex on glslang.l</Message>

+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RootDir)%(Directory)gen_glslang.cpp</Outputs>

+      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RootDir)%(Directory)glslang_tab.cpp.h</AdditionalInputs>

+    </CustomBuild>

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file