...

Text file src/github.com/google/flatbuffers/CMake/Version.cmake

Documentation: github.com/google/flatbuffers/CMake

     1set(VERSION_MAJOR 23)
     2set(VERSION_MINOR 5)
     3set(VERSION_PATCH 26)
     4set(VERSION_COMMIT 0)
     5
     6if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
     7  find_program(GIT git)
     8  if(GIT)
     9    execute_process(
    10      COMMAND ${GIT} describe --tags
    11      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    12      OUTPUT_VARIABLE GIT_DESCRIBE_DIRTY
    13      OUTPUT_STRIP_TRAILING_WHITESPACE
    14      RESULT_VARIABLE GIT_DESCRIBE_RESULT
    15    )
    16
    17    if(GIT_DESCRIBE_RESULT EQUAL 0)
    18      # Test if the most recent Git tag matches the pattern "v<major>.<minor>.<patch>*"
    19      if(GIT_DESCRIBE_DIRTY MATCHES "^v[0-9]+\\.[0-9]+\\.[0-9]+.*")
    20        string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${GIT_DESCRIBE_DIRTY}")
    21        string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${GIT_DESCRIBE_DIRTY}")
    22        string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${GIT_DESCRIBE_DIRTY}")
    23        string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+\\-([0-9]+).*" "\\1" VERSION_COMMIT "${GIT_DESCRIBE_DIRTY}")
    24        # If the tag points to the commit, then only the tag is shown in "git describe"
    25        if(VERSION_COMMIT STREQUAL GIT_DESCRIBE_DIRTY)
    26          set(VERSION_COMMIT 0)
    27        endif()
    28      else()
    29        message(WARNING "\"${GIT_DESCRIBE_DIRTY}\" does not match pattern v<major>.<minor>.<patch>-<commit>")
    30      endif()
    31    else()
    32      message(WARNING "git describe failed with exit code: ${GIT_DESCRIBE_RESULT}")
    33    endif()
    34  else()
    35    message(WARNING "git is not found")
    36  endif()
    37endif()
    38
    39message(STATUS "Proceeding with version: ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_COMMIT}")

View as plain text