tree 7cfdb9b73df90683ab7eb3cf3e2e9040a7db2b4e
parent 4c8b2ba8be7634bc60fb07329f0e86577beeae8e
author Cody Northrop <cody@lunarg.com> 1431469439 -0600
committer Cody Northrop <cody@lunarg.com> 1436290426 -0600

toolchain: Add script to pull and build on Windows

Summary:

Add Windows version of update_external_sources, and relocate
glslang and LunarGLASS target revisions to external files shared
with Linux.

Details:

On Linux, we've successfully been using update_external_sources.sh
to get on the target version of glslang (which generates SPIR-V) and
LunarGLASS (which consumes SPIR-V).  Both of these components are
peers to the typical Vulkan directory structure:

   /LoaderAndTools
       /layers
       /loader
       /demos
       /...
   /glslang
   /LunarGLASS

There hasn't been an equivalent on Windows, so tedious manual steps
and GUIs have been used on individual systems.

This commit introduces a Windows batch script that automates the
process similar to Linux.  It detects if you have the required
dependendcies and early-outs for any problems.

If you are a Windows developer that only wants spirv headers, run:

  update_external_sources.bat --sync-glslang

If you want to build the Windows version of glslangValidator.exe, run:

  update_external_sources.bat --build-glslang

If you want to run LunarGOO with SPIR-V support on Windows, run:

  update_external_sources.bat --build-LunarGLASS

The script builds Debug and Release x64 versions, and should be run from:

  Developer Command Prompt for VS2013

This commit also relocates the target version of glslang and LunarGLASS
to an external shared file that only contains the version number of
each.  Both scripts read the value from the file, therefore they
cannot get out of sync.
