[x265] [PATCH] Update x265Version.txt for Release_3.4

Mahesh Pittala mahesh at multicorewareinc.com
Tue Dec 28 11:44:23 UTC 2021


Pushed to the Release_3.4 branch

On Tue, Aug 24, 2021 at 10:14 AM Janani T E <janani.te at multicorewareinc.com>
wrote:

> Thanks for the review Aruna. Please find the new patch attached.
>
> From 2a9f30c0df659e5dd4ecd9619ba7cdd85da1221d Mon Sep 17 00:00:00 2001
> From: Janani TE <janani.te at multicorewareinc.com>
> Date: Tue, 24 Aug 2021 10:10:08 +0530
> Subject: [PATCH] Update x265Version.txt for Release_3.4
>
> ---
>  source/CMakeLists.txt      |   4 +-
>  source/cmake/Version.cmake | 179
> +++++++++++++++++++++++++++++++++++++++++++++
>  source/cmake/version.cmake |  97 ------------------------
>  x265Version.txt            |   4 +
>  4 files changed, 185 insertions(+), 99 deletions(-)
>  create mode 100644 source/cmake/Version.cmake
>  delete mode 100644 source/cmake/version.cmake
>  create mode 100644 x265Version.txt
>
> diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
> index 1d1a613..f4a9cb7 100644
> --- a/source/CMakeLists.txt
> +++ b/source/CMakeLists.txt
> @@ -29,7 +29,7 @@ option(NATIVE_BUILD "Target the build CPU" OFF)
>  option(STATIC_LINK_CRT "Statically link C runtime for release builds" OFF)
>  mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD)
>  # X265_BUILD must be incremented each time the public API is changed
> -set(X265_BUILD 192)
> +set(X265_BUILD 201)
>  configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
>                 "${PROJECT_BINARY_DIR}/x265.def")
>  configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
> @@ -485,7 +485,7 @@ if(POWER)
>      endif()
>  endif()
>
> -include(version) # determine X265_VERSION and X265_LATEST_TAG
> +include(Version) # determine X265_VERSION and X265_LATEST_TAG
>  include_directories(. common encoder "${PROJECT_BINARY_DIR}")
>
>  option(ENABLE_PPA "Enable PPA profiling instrumentation" OFF)
> diff --git a/source/cmake/Version.cmake b/source/cmake/Version.cmake
> new file mode 100644
> index 0000000..3bbf42f
> --- /dev/null
> +++ b/source/cmake/Version.cmake
> @@ -0,0 +1,179 @@
> +
> #################################################################################################################
> + #
> + #    Copyright (C) 2013-2020 MulticoreWare, Inc
> + #
> + # This program is free software; you can redistribute it and/or modify
> + # it under the terms of the GNU General Public License as published by
> + # the Free Software Foundation; either version 2 of the License, or
> + # (at your option) any later version.
> + #
> + # This program is distributed in the hope that it will be useful,
> + # but WITHOUT ANY WARRANTY; without even the implied warranty of
> + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + # GNU General Public License for more details.
> + #
> + # You should have received a copy of the GNU General Public License
> + # along with this program; if not, write to the Free Software
> + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111,
> USA.
> + #
> + # This program is also available under a commercial proprietary license.
> + # For more information, contact us at license @ x265.com
> + #
> + # Authors: Janani T.E <janani.te at multicorewareinc.com>, Srikanth
> Kurapati <srikanthkurapati at multicorewareinc.com>
> + #
> +
> #################################################################################################################
> + # PURPOSE: Identity version control software version display, also read
> version files to present x265 version.
> +
> #################################################################################################################
> + #Default Settings, for user to be vigilant about x265 version being
> reported during product build.
> +set(X265_VERSION "unknown")
> +set(X265_LATEST_TAG "0.0")
> +set(X265_TAG_DISTANCE "0")
> +
> +#Find version control software to be used for live and extracted
> repositories from compressed tarballs
> +if(CMAKE_VERSION VERSION_LESS "2.8.10")
> +    find_program(HG_EXECUTABLE hg)
> +    if(EXISTS "${HG_EXECUTABLE}.bat")
> +        set(HG_EXECUTABLE "${HG_EXECUTABLE}.bat")
> +    endif()
> +    message(STATUS "hg found at ${HG_EXECUTABLE}")
> +else()
> +    find_package(Hg QUIET)
> +endif()
> +if(HG_EXECUTABLE)
> +    #Set Version Control binary for source code kind
> +    if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt)
> +        set(HG_ARCHETYPE "1")
> +    elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg)
> +        set(HG_ARCHETYPE "0")
> +    endif()
> +endif(HG_EXECUTABLE)
> +find_package(Git QUIET) #No restrictions on Git versions used, any
> versions from 1.8.x to 2.2.x or later should do.
> +if(GIT_FOUND)
> +    find_program(GIT_EXECUTABLE git)
> +    message(STATUS "GIT_EXECUTABLE ${GIT_EXECUTABLE}")
> +    if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
> +        set(GIT_ARCHETYPE "0")
> +    elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../x265Version.txt)
> +        set(GIT_ARCHETYPE "1")
> +    endif()
> +endif(GIT_FOUND)
> +if(HG_ARCHETYPE)
> +    #Read the lines of the archive summary file to extract the version
> +    message(STATUS "SOURCE CODE IS FROM x265 HG ARCHIVED ZIP OR TAR BALL")
> +    file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt archive)
> +    STRING(REGEX REPLACE "\n" ";" archive "${archive}")
> +    foreach(f ${archive})
> +        string(FIND "${f}" ": " pos)
> +        string(SUBSTRING "${f}" 0 ${pos} key)
> +        string(SUBSTRING "${f}" ${pos} -1 value)
> +        string(SUBSTRING "${value}" 2 -1 value)
> +        set(hg_${key} ${value})
> +    endforeach()
> +    if(DEFINED hg_tag)
> +        set(X265_LATEST_TAG ${hg_tag})
> +    elseif(DEFINED hg_node)
> +        set(X265_LATEST_TAG ${hg_latesttag})
> +        set(X265_TAG_DISTANCE ${hg_latesttagdistance})
> +        string(SUBSTRING "${hg_node}" 0 12 X265_REVISION_ID)
> +    endif()
> +    message(STATUS "HG ARCHIVAL INFORMATION PROCESSED")
> +elseif(NOT DEFINED GIT_ARCHETYPE)
> +# means that's its neither hg archive nor git clone/archive hence it has
> to be hg live repo as these are only four cases that need to processed in
> mutual exclusion.
> +    execute_process(COMMAND
> +        ${HG_EXECUTABLE} log -r. --template "{latesttag}"
> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> +        OUTPUT_VARIABLE X265_LATEST_TAG
> +        ERROR_QUIET
> +        OUTPUT_STRIP_TRAILING_WHITESPACE
> +        )
> +    execute_process(COMMAND
> +        ${HG_EXECUTABLE} log -r. --template "{latesttagdistance}"
> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> +        OUTPUT_VARIABLE X265_TAG_DISTANCE
> +        ERROR_QUIET
> +        OUTPUT_STRIP_TRAILING_WHITESPACE
> +        )
> +    execute_process(
> +        COMMAND
> +        ${HG_EXECUTABLE} log -r. --template "{node}"
> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> +        OUTPUT_VARIABLE X265_REVISION_ID
> +        ERROR_QUIET
> +        OUTPUT_STRIP_TRAILING_WHITESPACE
> +        )
> +    string(SUBSTRING "${X265_REVISION_ID}" 0 12 X265_REVISION_ID)
> +    if(X265_LATEST_TAG MATCHES "^r")
> +        string(SUBSTRING ${X265_LATEST_TAG} 1 -1 X265_LATEST_TAG)
> +    endif()
> +    message(STATUS "HG LIVE REPO STATUS CHECK DONE")
> +elseif(GIT_ARCHETYPE)
> +    message(STATUS "SOURCE CODE IS FROM x265 GIT ARCHIVED ZIP OR TAR
> BALL")
> +    #Read the lines of the archive summary file to extract the version
> +    file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../x265Version.txt filebuf)
> +    STRING(REGEX REPLACE "\n" ";" filebuf "${filebuf}")
> +    foreach(line ${filebuf})
> +        string(FIND "${line}" ": " pos)
> +        string(SUBSTRING "${line}" 0 ${pos} key)
> +        string(SUBSTRING "${line}" ${pos} -1 value)
> +        string(SUBSTRING "${value}" 2 -1 value)
> +        set(git_${key} ${value})
> +    endforeach()
> +    if(DEFINED git_releasetag)
> +        set(X265_LATEST_TAG ${git_releasetag})
> +        if(DEFINED git_releasetagdistance)
> +            set(X265_TAG_DISTANCE ${git_releasetagdistance})
> +            if(X265_TAG_DISTANCE STRGREATER "0" OR X265_TAG_DISTANCE
> STREQUAL "0")
> +                #for x265 the repository changeset has to be a tag id or
> commit id after the tag
> +                #hence mandating it's presence in version file always for
> valid tag distances.
> +                if(DEFINED git_repositorychangeset)
> +                    string(SUBSTRING "${git_repositorychangeset}" 0 9
> X265_REVISION_ID)
> +                else()
> +                    message(WARNING "X265 LATEST COMMIT TIP INFORMATION
> NOT AVAILABLE")
> +                endif()
> +            else()
> +                message(WARNING "X265 TAG DISTANCE INVALID")
> +            endif()
> +        else()
> +            message(WARNING "COMMIT INFORMATION AFTER LATEST REVISION
> UNAVAILABLE")
> +        endif()
> +    else()
> +        message(WARNING "X265 RELEASE VERSION LABEL MISSING:
> ${X265_LATEST_TAG}")
> +    endif()
> +    message(STATUS "GIT ARCHIVAL INFORMATION PROCESSED")
> +else()
> +    execute_process(
> +        COMMAND
> +        ${GIT_EXECUTABLE} describe --abbrev=0 --tags
> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> +        OUTPUT_VARIABLE X265_LATEST_TAG
> +        ERROR_QUIET
> +        OUTPUT_STRIP_TRAILING_WHITESPACE
> +        )
> +    execute_process(
> +        COMMAND
> +        ${GIT_EXECUTABLE} rev-list ${X265_LATEST_TAG}.. --count
> --first-parent
> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> +        OUTPUT_VARIABLE X265_TAG_DISTANCE
> +        ERROR_QUIET
> +        OUTPUT_STRIP_TRAILING_WHITESPACE
> +        )
> +    execute_process(
> +        COMMAND
> +        ${GIT_EXECUTABLE} log --pretty=format:%h -n 1
> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> +        OUTPUT_VARIABLE X265_REVISION_ID
> +        ERROR_QUIET
> +        OUTPUT_STRIP_TRAILING_WHITESPACE
> +        )
> +    message(STATUS "GIT LIVE REPO VERSION RETRIEVED")
> +endif()
> +
> +# formatting based on distance from tag
> +if(X265_TAG_DISTANCE STREQUAL "0")
> +    set(X265_VERSION "${X265_LATEST_TAG}")
> +elseif(X265_TAG_DISTANCE STRGREATER "0")
> +    set(X265_VERSION
> "${X265_LATEST_TAG}+${X265_TAG_DISTANCE}-${X265_REVISION_ID}")
> +endif()
> +
> +#will always be printed in its entirety based on version file
> configuration to avail revision monitoring by repo owners
> +message(STATUS "X265 RELEASE VERSION ${X265_VERSION}")
> diff --git a/source/cmake/version.cmake b/source/cmake/version.cmake
> deleted file mode 100644
> index 3530224..0000000
> --- a/source/cmake/version.cmake
> +++ /dev/null
> @@ -1,97 +0,0 @@
> -if(CMAKE_VERSION VERSION_LESS "2.8.10")
> -    find_program(HG_EXECUTABLE hg)
> -else()
> -    find_package(Hg QUIET)
> -endif()
> -find_package(Git QUIET) # present in 2.8.8
> -
> -# defaults, in case everything below fails
> -set(X265_VERSION "unknown")
> -set(X265_LATEST_TAG "0.0")
> -set(X265_TAG_DISTANCE "0")
> -
> -if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt)
> -    # read the lines of the archive summary file to extract the version
> -    file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt archive)
> -    STRING(REGEX REPLACE "\n" ";" archive "${archive}")
> -    foreach(f ${archive})
> -        string(FIND "${f}" ": " pos)
> -        string(SUBSTRING "${f}" 0 ${pos} key)
> -        string(SUBSTRING "${f}" ${pos} -1 value)
> -        string(SUBSTRING "${value}" 2 -1 value)
> -        set(hg_${key} ${value})
> -    endforeach()
> -    if(DEFINED hg_tag)
> -        set(X265_LATEST_TAG ${hg_tag})
> -    elseif(DEFINED hg_node)
> -        set(X265_LATEST_TAG ${hg_latesttag})
> -        set(X265_TAG_DISTANCE ${hg_latesttagdistance})
> -        string(SUBSTRING "${hg_node}" 0 12 X265_REVISION_ID)
> -    endif()
> -elseif(HG_EXECUTABLE AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg)
> -    if(EXISTS "${HG_EXECUTABLE}.bat")
> -        # mercurial source installs on Windows require .bat extension
> -        set(HG_EXECUTABLE "${HG_EXECUTABLE}.bat")
> -    endif()
> -    message(STATUS "hg found at ${HG_EXECUTABLE}")
> -
> -    execute_process(COMMAND
> -        ${HG_EXECUTABLE} log -r. --template "{latesttag}"
> -        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> -        OUTPUT_VARIABLE X265_LATEST_TAG
> -        ERROR_QUIET
> -        OUTPUT_STRIP_TRAILING_WHITESPACE
> -        )
> -    execute_process(COMMAND
> -        ${HG_EXECUTABLE} log -r. --template "{latesttagdistance}"
> -        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> -        OUTPUT_VARIABLE X265_TAG_DISTANCE
> -        ERROR_QUIET
> -        OUTPUT_STRIP_TRAILING_WHITESPACE
> -        )
> -    execute_process(
> -        COMMAND
> -        ${HG_EXECUTABLE} log -r. --template "{node}"
> -        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> -        OUTPUT_VARIABLE X265_REVISION_ID
> -        ERROR_QUIET
> -        OUTPUT_STRIP_TRAILING_WHITESPACE
> -        )
> -    string(SUBSTRING "${X265_REVISION_ID}" 0 12 X265_REVISION_ID)
> -
> -    if(X265_LATEST_TAG MATCHES "^r")
> -        string(SUBSTRING ${X265_LATEST_TAG} 1 -1 X265_LATEST_TAG)
> -    endif()
> -elseif(GIT_EXECUTABLE AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
> -    execute_process(
> -        COMMAND
> -        ${GIT_EXECUTABLE} describe --abbrev=0 --tags
> -        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> -        OUTPUT_VARIABLE X265_LATEST_TAG
> -        ERROR_QUIET
> -        OUTPUT_STRIP_TRAILING_WHITESPACE
> -        )
> -    execute_process(
> -        COMMAND
> -        ${GIT_EXECUTABLE} rev-list ${X265_LATEST_TAG}.. --count
> --first-parent
> -        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> -        OUTPUT_VARIABLE X265_TAG_DISTANCE
> -        ERROR_QUIET
> -        OUTPUT_STRIP_TRAILING_WHITESPACE
> -        )
> -    execute_process(
> -        COMMAND
> -        ${GIT_EXECUTABLE} log -1 --format=g%h
> -        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
> -        OUTPUT_VARIABLE X265_REVISION_ID
> -        ERROR_QUIET
> -        OUTPUT_STRIP_TRAILING_WHITESPACE
> -        )
> -endif()
> -if(X265_TAG_DISTANCE STREQUAL "0")
> -    set(X265_VERSION "${X265_LATEST_TAG}")
> -else()
> -    set(X265_VERSION
> "${X265_LATEST_TAG}+${X265_TAG_DISTANCE}-${X265_REVISION_ID}")
> -endif()
> -
> -message(STATUS "x265 version ${X265_VERSION}")
> diff --git a/x265Version.txt b/x265Version.txt
> new file mode 100644
> index 0000000..9f01be5
> --- /dev/null
> +++ b/x265Version.txt
> @@ -0,0 +1,4 @@
> +#Attribute:     Values
> +repositorychangeset: 57022ba54
> +releasetagdistance: 1
> +releasetag: 3.4.1
> --
> 1.8.3.1
>
> On Tue, Aug 3, 2021 at 6:57 PM Janani T E <janani.te at multicorewareinc.com>
> wrote:
>
>> From a3dd554074f7f02d6589b4661ec0c403aa4cf0c5 Mon Sep 17 00:00:00 2001
>> From: Janani TE <janani.te at multicorewareinc.com>
>> Date: Tue, 3 Aug 2021 18:46:47 +0530
>> Subject: [PATCH] Update x265Version.txt for Release_3.4
>>
>> ---
>>  source/CMakeLists.txt      |   4 +-
>>  source/cmake/Version.cmake | 179
>> +++++++++++++++++++++++++++++++++++++++++++++
>>  x265Version.txt            |   4 +
>>  3 files changed, 185 insertions(+), 2 deletions(-)
>>  create mode 100644 source/cmake/Version.cmake
>>  create mode 100644 x265Version.txt
>>
>> diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
>> index 1d1a613..f4a9cb7 100644
>> --- a/source/CMakeLists.txt
>> +++ b/source/CMakeLists.txt
>> @@ -29,7 +29,7 @@ option(NATIVE_BUILD "Target the build CPU" OFF)
>>  option(STATIC_LINK_CRT "Statically link C runtime for release builds"
>> OFF)
>>  mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD)
>>  # X265_BUILD must be incremented each time the public API is changed
>> -set(X265_BUILD 192)
>> +set(X265_BUILD 201)
>>  configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
>>                 "${PROJECT_BINARY_DIR}/x265.def")
>>  configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
>> @@ -485,7 +485,7 @@ if(POWER)
>>      endif()
>>  endif()
>>
>> -include(version) # determine X265_VERSION and X265_LATEST_TAG
>> +include(Version) # determine X265_VERSION and X265_LATEST_TAG
>>  include_directories(. common encoder "${PROJECT_BINARY_DIR}")
>>
>>  option(ENABLE_PPA "Enable PPA profiling instrumentation" OFF)
>> diff --git a/source/cmake/Version.cmake b/source/cmake/Version.cmake
>> new file mode 100644
>> index 0000000..3bbf42f
>> --- /dev/null
>> +++ b/source/cmake/Version.cmake
>> @@ -0,0 +1,179 @@
>> +
>> #################################################################################################################
>> + #
>> + #    Copyright (C) 2013-2020 MulticoreWare, Inc
>> + #
>> + # This program is free software; you can redistribute it and/or modify
>> + # it under the terms of the GNU General Public License as published by
>> + # the Free Software Foundation; either version 2 of the License, or
>> + # (at your option) any later version.
>> + #
>> + # This program is distributed in the hope that it will be useful,
>> + # but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> + # GNU General Public License for more details.
>> + #
>> + # You should have received a copy of the GNU General Public License
>> + # along with this program; if not, write to the Free Software
>> + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111,
>> USA.
>> + #
>> + # This program is also available under a commercial proprietary license.
>> + # For more information, contact us at license @ x265.com
>> + #
>> + # Authors: Janani T.E <janani.te at multicorewareinc.com>, Srikanth
>> Kurapati <srikanthkurapati at multicorewareinc.com>
>> + #
>> +
>> #################################################################################################################
>> + # PURPOSE: Identity version control software version display, also read
>> version files to present x265 version.
>> +
>> #################################################################################################################
>> + #Default Settings, for user to be vigilant about x265 version being
>> reported during product build.
>> +set(X265_VERSION "unknown")
>> +set(X265_LATEST_TAG "0.0")
>> +set(X265_TAG_DISTANCE "0")
>> +
>> +#Find version control software to be used for live and extracted
>> repositories from compressed tarballs
>> +if(CMAKE_VERSION VERSION_LESS "2.8.10")
>> +    find_program(HG_EXECUTABLE hg)
>> +    if(EXISTS "${HG_EXECUTABLE}.bat")
>> +        set(HG_EXECUTABLE "${HG_EXECUTABLE}.bat")
>> +    endif()
>> +    message(STATUS "hg found at ${HG_EXECUTABLE}")
>> +else()
>> +    find_package(Hg QUIET)
>> +endif()
>> +if(HG_EXECUTABLE)
>> +    #Set Version Control binary for source code kind
>> +    if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt)
>> +        set(HG_ARCHETYPE "1")
>> +    elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.hg)
>> +        set(HG_ARCHETYPE "0")
>> +    endif()
>> +endif(HG_EXECUTABLE)
>> +find_package(Git QUIET) #No restrictions on Git versions used, any
>> versions from 1.8.x to 2.2.x or later should do.
>> +if(GIT_FOUND)
>> +    find_program(GIT_EXECUTABLE git)
>> +    message(STATUS "GIT_EXECUTABLE ${GIT_EXECUTABLE}")
>> +    if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
>> +        set(GIT_ARCHETYPE "0")
>> +    elseif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../x265Version.txt)
>> +        set(GIT_ARCHETYPE "1")
>> +    endif()
>> +endif(GIT_FOUND)
>> +if(HG_ARCHETYPE)
>> +    #Read the lines of the archive summary file to extract the version
>> +    message(STATUS "SOURCE CODE IS FROM x265 HG ARCHIVED ZIP OR TAR
>> BALL")
>> +    file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../.hg_archival.txt archive)
>> +    STRING(REGEX REPLACE "\n" ";" archive "${archive}")
>> +    foreach(f ${archive})
>> +        string(FIND "${f}" ": " pos)
>> +        string(SUBSTRING "${f}" 0 ${pos} key)
>> +        string(SUBSTRING "${f}" ${pos} -1 value)
>> +        string(SUBSTRING "${value}" 2 -1 value)
>> +        set(hg_${key} ${value})
>> +    endforeach()
>> +    if(DEFINED hg_tag)
>> +        set(X265_LATEST_TAG ${hg_tag})
>> +    elseif(DEFINED hg_node)
>> +        set(X265_LATEST_TAG ${hg_latesttag})
>> +        set(X265_TAG_DISTANCE ${hg_latesttagdistance})
>> +        string(SUBSTRING "${hg_node}" 0 12 X265_REVISION_ID)
>> +    endif()
>> +    message(STATUS "HG ARCHIVAL INFORMATION PROCESSED")
>> +elseif(NOT DEFINED GIT_ARCHETYPE)
>> +# means that's its neither hg archive nor git clone/archive hence it has
>> to be hg live repo as these are only four cases that need to processed in
>> mutual exclusion.
>> +    execute_process(COMMAND
>> +        ${HG_EXECUTABLE} log -r. --template "{latesttag}"
>> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
>> +        OUTPUT_VARIABLE X265_LATEST_TAG
>> +        ERROR_QUIET
>> +        OUTPUT_STRIP_TRAILING_WHITESPACE
>> +        )
>> +    execute_process(COMMAND
>> +        ${HG_EXECUTABLE} log -r. --template "{latesttagdistance}"
>> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
>> +        OUTPUT_VARIABLE X265_TAG_DISTANCE
>> +        ERROR_QUIET
>> +        OUTPUT_STRIP_TRAILING_WHITESPACE
>> +        )
>> +    execute_process(
>> +        COMMAND
>> +        ${HG_EXECUTABLE} log -r. --template "{node}"
>> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
>> +        OUTPUT_VARIABLE X265_REVISION_ID
>> +        ERROR_QUIET
>> +        OUTPUT_STRIP_TRAILING_WHITESPACE
>> +        )
>> +    string(SUBSTRING "${X265_REVISION_ID}" 0 12 X265_REVISION_ID)
>> +    if(X265_LATEST_TAG MATCHES "^r")
>> +        string(SUBSTRING ${X265_LATEST_TAG} 1 -1 X265_LATEST_TAG)
>> +    endif()
>> +    message(STATUS "HG LIVE REPO STATUS CHECK DONE")
>> +elseif(GIT_ARCHETYPE)
>> +    message(STATUS "SOURCE CODE IS FROM x265 GIT ARCHIVED ZIP OR TAR
>> BALL")
>> +    #Read the lines of the archive summary file to extract the version
>> +    file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../x265Version.txt filebuf)
>> +    STRING(REGEX REPLACE "\n" ";" filebuf "${filebuf}")
>> +    foreach(line ${filebuf})
>> +        string(FIND "${line}" ": " pos)
>> +        string(SUBSTRING "${line}" 0 ${pos} key)
>> +        string(SUBSTRING "${line}" ${pos} -1 value)
>> +        string(SUBSTRING "${value}" 2 -1 value)
>> +        set(git_${key} ${value})
>> +    endforeach()
>> +    if(DEFINED git_releasetag)
>> +        set(X265_LATEST_TAG ${git_releasetag})
>> +        if(DEFINED git_releasetagdistance)
>> +            set(X265_TAG_DISTANCE ${git_releasetagdistance})
>> +            if(X265_TAG_DISTANCE STRGREATER "0" OR X265_TAG_DISTANCE
>> STREQUAL "0")
>> +                #for x265 the repository changeset has to be a tag id or
>> commit id after the tag
>> +                #hence mandating it's presence in version file always
>> for valid tag distances.
>> +                if(DEFINED git_repositorychangeset)
>> +                    string(SUBSTRING "${git_repositorychangeset}" 0 9
>> X265_REVISION_ID)
>> +                else()
>> +                    message(WARNING "X265 LATEST COMMIT TIP INFORMATION
>> NOT AVAILABLE")
>> +                endif()
>> +            else()
>> +                message(WARNING "X265 TAG DISTANCE INVALID")
>> +            endif()
>> +        else()
>> +            message(WARNING "COMMIT INFORMATION AFTER LATEST REVISION
>> UNAVAILABLE")
>> +        endif()
>> +    else()
>> +        message(WARNING "X265 RELEASE VERSION LABEL MISSING:
>> ${X265_LATEST_TAG}")
>> +    endif()
>> +    message(STATUS "GIT ARCHIVAL INFORMATION PROCESSED")
>> +else()
>> +    execute_process(
>> +        COMMAND
>> +        ${GIT_EXECUTABLE} describe --abbrev=0 --tags
>> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
>> +        OUTPUT_VARIABLE X265_LATEST_TAG
>> +        ERROR_QUIET
>> +        OUTPUT_STRIP_TRAILING_WHITESPACE
>> +        )
>> +    execute_process(
>> +        COMMAND
>> +        ${GIT_EXECUTABLE} rev-list ${X265_LATEST_TAG}.. --count
>> --first-parent
>> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
>> +        OUTPUT_VARIABLE X265_TAG_DISTANCE
>> +        ERROR_QUIET
>> +        OUTPUT_STRIP_TRAILING_WHITESPACE
>> +        )
>> +    execute_process(
>> +        COMMAND
>> +        ${GIT_EXECUTABLE} log --pretty=format:%h -n 1
>> +        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
>> +        OUTPUT_VARIABLE X265_REVISION_ID
>> +        ERROR_QUIET
>> +        OUTPUT_STRIP_TRAILING_WHITESPACE
>> +        )
>> +    message(STATUS "GIT LIVE REPO VERSION RETRIEVED")
>> +endif()
>> +
>> +# formatting based on distance from tag
>> +if(X265_TAG_DISTANCE STREQUAL "0")
>> +    set(X265_VERSION "${X265_LATEST_TAG}")
>> +elseif(X265_TAG_DISTANCE STRGREATER "0")
>> +    set(X265_VERSION
>> "${X265_LATEST_TAG}+${X265_TAG_DISTANCE}-${X265_REVISION_ID}")
>> +endif()
>> +
>> +#will always be printed in its entirety based on version file
>> configuration to avail revision monitoring by repo owners
>> +message(STATUS "X265 RELEASE VERSION ${X265_VERSION}")
>> diff --git a/x265Version.txt b/x265Version.txt
>> new file mode 100644
>> index 0000000..9f01be5
>> --- /dev/null
>> +++ b/x265Version.txt
>> @@ -0,0 +1,4 @@
>> +#Attribute:     Values
>> +repositorychangeset: 57022ba54
>> +releasetagdistance: 1
>> +releasetag: 3.4.1
>> --
>> 1.8.3.1
>>
>> --
>> Thanks and Regards,
>> Janani.
>>
>
>
> --
> Thanks and Regards,
> Janani.
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20211228/325f687b/attachment-0001.html>


More information about the x265-devel mailing list