| # |
| # Copyright (c) 2021, Alliance for Open Media. All rights reserved |
| # |
| # This source code is subject to the terms of the BSD 3-Clause Clear License and |
| # the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear |
| # License was not distributed with this source code in the LICENSE file, you can |
| # obtain it at aomedia.org/license/software-license/bsd-3-c-c/. 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 aomedia.org/license/patent-license/. |
| # |
| 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. Allow optional prefix like 'foo-' |
| # before the version string 'v*'. |
| unset(aom_version) |
| if(EXISTS "${GIT_EXECUTABLE}") |
| execute_process( |
| COMMAND ${GIT_EXECUTABLE} --git-dir=${AOM_ROOT}/.git describe --match |
| "*-v[0-9]*" --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 optional prefix before version. |
| string(FIND "${aom_version}" "-v" dash_pos) |
| if(NOT ${dash_pos} EQUAL -1) |
| math(EXPR start_pos "${dash_pos}+1") |
| string(SUBSTRING "${aom_version}" ${start_pos} -1 aom_version) |
| endif() |
| |
| # 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() |