glslang-zig/SPIRV
Ben Clayton fbe9a23baf Generate build information from CHANGES.md
This PR significantly reworks the way glslang is versioned.

Instead of committing changes to the `GLSLANG_MINOR_VERSION` define in
`glslang/Public/ShaderLang.h`, and using `make-revision` to generate
`GLSLANG_PATCH_LEVEL` in `glslang/Include/revision.h`, all version
information is now derived from the new `CHANGES.md` file.

`CHANGES.md` acts as the single source of truth for glslang version
information, along with a convenient place to put all release notes for
each notable change made.

`CHANGES.md` is parsed using the new `build_info.py` python script.
This script can read basic template files to produce new source files,
which it does to read the new `build_info.h.tmpl` to generate (at build
time) a glslang private header at
`<build-dir>/include/glslang/build_info.h`.
I've written generators for each of the CMake, Bazel, gn, and
`Android.mk` build scripts.

The new version code conforms to the Semantic Versioning 2.0 spec.

This new version is also used by the CMake rules to produce versioned
shared objects, including a major-versioned SONAME.

New APIs:
---------

* `glslang::GetVersion()` returns a `Version` struct with the version
  major, minor, patch and flavor.

Breaking API changes:
---------------------

* The public defines `GLSLANG_MINOR_VERSION` and `GLSLANG_PATCH_LEVEL`
  have been entirely removed.
* `glslang/Public/ShaderLang.h` and `glslang/Include/revision.h` have
  been deleted.
* Instead, `<build-dir>/include/glslang/build_info.h` is created in
  the build directory, and `<build-dir>/include` is a CMake `PUBLIC`
  (dependee-inherited) include directory for the glslang targets.
* `<build-dir>/include/glslang/build_info.h` contains the following
   new #defines:
   `GLSLANG_VERSION_MAJOR`, `GLSLANG_VERSION_MINOR`,
   `GLSLANG_VERSION_PATCH`, `GLSLANG_VERSION_FLAVOR`,
   `GLSLANG_VERSION_GREATER_THAN(major, minor, patch)`,
   `GLSLANG_VERSION_GREATER_OR_EQUAL_TO(major, minor, patch)`,
   `GLSLANG_VERSION_LESS_THAN(major, minor, patch)`,
   `GLSLANG_VERSION_LESS_OR_EQUAL_TO(major, minor, patch)`
*  The CMake install output directory contains a copy of
   `build_info.h` at: `include/glslang/build_info.h`
*  Python3 is now always required to build glslang (likely always
   required for transitive dependency builds).
2020-07-09 12:34:02 +01:00
..
CInterface C Interface: Split SPIR-V C interface to own file 2020-06-15 13:22:19 +01:00
bitutils.h Fix compiler warning emitted from GCC8 2018-09-12 10:34:54 +02:00
CMakeLists.txt Generate build information from CHANGES.md 2020-07-09 12:34:02 +01:00
disassemble.cpp Use strcmp for all of the extended instruction set checks in the disassembler (#2107) 2020-03-11 01:00:13 -06:00
disassemble.h Fix -Wextra-semi warnings in headers used in Chromium 2019-02-21 11:05:21 -05:00
doc.cpp GL_EXT_ray_query updates 2020-03-19 16:46:30 -04:00
doc.h Fix -Wextra-semi warnings in headers used in Chromium 2019-02-21 11:05:21 -05:00
GLSL.ext.AMD.h Non-functional: Move to latest headers. 2018-03-02 12:36:02 -07:00
GLSL.ext.EXT.h Implement GL_EXT_demote_to_helper_invocation 2019-07-01 09:36:15 -05:00
GLSL.ext.KHR.h GL_EXT_ray_query updates 2020-03-19 16:46:30 -04:00
GLSL.ext.NV.h Add support for GL_NV_shader_sm_builtins 2019-06-08 08:53:11 -04:00
GLSL.std.450.h Remove execute permissions 2018-08-07 03:16:20 +09:00
GlslangToSpv.cpp Generate build information from CHANGES.md 2020-07-09 12:34:02 +01:00
GlslangToSpv.h Fix #2007: Fix a couple relative header paths in header files. 2019-12-09 03:12:10 -07:00
hex_float.h bitwise on boolean 2020-03-30 01:32:23 +03:00
InReadableOrder.cpp SPIR-V: Aggressively prune unreachable merge, continue target 2019-10-29 15:33:54 -04:00
Logger.cpp Make file formatting comply with POSIX and Unix standards 2020-03-21 03:20:25 -04:00
Logger.h Web: Remove unused stage functionality, SPIR-V logger, and hex_utils 2019-08-20 23:21:56 -06:00
NonSemanticDebugPrintf.h GL_EXT_debug_printf implementation 2020-03-05 13:41:34 -06:00
spirv.hpp Move to SPIR-V 1.5 Rev. 3, bump revision, remove a status from README. 2020-04-27 02:12:05 -06:00
SpvBuilder.cpp SPV: RelaxedPrecision: Generalize fix #2293 to cover more operations. 2020-06-30 02:44:52 -06:00
SpvBuilder.h SPV: RelaxedPrecision: Generalize fix #2293 to cover more operations. 2020-06-30 02:44:52 -06:00
spvIR.h SPV: RelaxedPrecision: Generalize fix #2293 to cover more operations. 2020-06-30 02:44:52 -06:00
SpvPostProcess.cpp SPIR-V postprocessing: WEB case only needs CFG mods 2019-11-07 17:55:22 -05:00
SPVRemapper.cpp Remove execute permissions 2018-08-07 03:16:20 +09:00
SPVRemapper.h Remove extraneous semicolons 2019-06-25 13:20:16 -04:00
SpvTools.cpp Add -g0 command line argument 2020-06-18 10:16:40 -04:00
SpvTools.h Add -g0 command line argument 2020-06-18 10:16:40 -04:00