Building the DirectX Compiler Sources

The file in the repo for the DirectX HLSL Compiler provides the steps on how to build the project. I thought it would be interesting to share some of our journey about how we landed where we currently are, and what we think moving forward looks like.

The obvious starting point for this project was the existing LLVM/Clang build system. We especially liked the CMake-based approach and its integration with Microsoft Visual Studio, and so we based the build experience around that. The other dependencies were then picked as needed:

  • We selected git because it has terrific support for distributed workflows.
  • We picked Visual Studio 2015 Update 3 because it gives us a great developer experience and provides a mature compiler that we've used successfully to build all kinds of components, from drivers to applications.
  • We picked a specific version of the Windows 10 SDK to get a known version of Direct3D 12 to be able to run execution tests with.
  • We picked the TAEF testing framework because it has proven to scale very well from local unit tests run at development time, through remote testing scenarios, all the way to large lab-run scenarios like those found in the Windows Hardware Lab Kit.
  • Python was already used by the llvm/clang build systems, but we also found it very convenient to generate code and documentation.

This is a fairly long list! However we believe that we have provided straightforward instructions on how to get everything lined up, and we've added some amount of setup verification to the "HLSL Console Tools" set of scripts - more on those in a future post.

In the future, we expect we'll be updating to newer versions of the tools we've selected, and we'll try to simplify installation and setup.