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
  • Android.mk
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
Android.mk 6.34 KB
EditWeb IDE
×

Replace Android.mk

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.