Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
G
glslang
  • Project
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Chen Yisong
  • glslang
  • Repository

Switch branch/tag
  • glslang
  • CHANGES.md
Find file
BlameHistoryPermalink
  • Ben Clayton's avatar
    Generate build information from CHANGES.md · fbe9a23b
    Ben Clayton authored Jun 17, 2020
    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).
    fbe9a23b
To find the state of this project's repository at the time of any of these versions, check out the tags.
CHANGES.md 880 Bytes
EditWeb IDE
×

Replace CHANGES.md

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.