diff options
Diffstat (limited to '')
-rw-r--r-- | third_party/aom/build/cmake/version.cmake | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/third_party/aom/build/cmake/version.cmake b/third_party/aom/build/cmake/version.cmake new file mode 100644 index 0000000000..f4377a13e1 --- /dev/null +++ b/third_party/aom/build/cmake/version.cmake @@ -0,0 +1,67 @@ +# +# Copyright (c) 2017, Alliance for Open Media. All rights reserved +# +# This source code is subject to the terms of the BSD 2 Clause License and the +# Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License was +# not distributed with this source code in the LICENSE file, you can obtain it +# at www.aomedia.org/license/software. If the Alliance for Open Media Patent +# License 1.0 was not distributed with this source code in the PATENTS file, you +# can obtain it at www.aomedia.org/license/patent. +# +cmake_minimum_required(VERSION 3.5) + +set(REQUIRED_ARGS "AOM_ROOT" "AOM_CONFIG_DIR" "GIT_EXECUTABLE" + "PERL_EXECUTABLE") + +foreach(arg ${REQUIRED_ARGS}) + if("${${arg}}" STREQUAL "") + message(FATAL_ERROR "${arg} must not be empty.") + endif() +endforeach() + +include("${AOM_ROOT}/build/cmake/util.cmake") + +# Generate the version string for this run. +unset(aom_version) +if(EXISTS "${GIT_EXECUTABLE}") + execute_process(COMMAND ${GIT_EXECUTABLE} + --git-dir=${AOM_ROOT}/.git describe + --match=v[0-9]* + OUTPUT_VARIABLE aom_version + ERROR_QUIET + RESULT_VARIABLE version_check_result) + + if(${version_check_result} EQUAL 0) + string(STRIP "${aom_version}" aom_version) + + # Remove the leading 'v' from the version string. + string(FIND "${aom_version}" "v" v_pos) + if(${v_pos} EQUAL 0) + string(SUBSTRING "${aom_version}" 1 -1 aom_version) + endif() + else() + set(aom_version "") + endif() +endif() + +if("${aom_version}" STREQUAL "") + set(aom_version "${AOM_ROOT}/CHANGELOG") +endif() + +unset(last_aom_version) +set(version_file "${AOM_CONFIG_DIR}/config/aom_version.h") +if(EXISTS "${version_file}") + extract_version_string("${version_file}" last_aom_version) + if("${aom_version}" MATCHES "CHANGELOG$") + set(aom_version "${last_aom_version}") + endif() +endif() + +if(NOT "${aom_version}" STREQUAL "${last_aom_version}") + # TODO(tomfinegan): Perl dependency is unnecessary. CMake can do everything + # that is done by version.pl on its own (if a bit more verbosely...). + execute_process(COMMAND ${PERL_EXECUTABLE} + "${AOM_ROOT}/build/cmake/version.pl" + --version_data=${aom_version} + --version_filename=${version_file} VERBATIM) +endif() |