Ответ 1
Исходный код библиотек libgtest
или libgtest_main
не содержит специальных функций, которые позволяют распознавать их версию (что-то вроде GetGTestVersion ()
или что-то еще).
Также заголовочные файлы не имеют определенных идентификаторов (что-то вроде GTEST_VERSION
или что-то еще).
Таким образом, вы не можете проверить версию Google C++ Testing Framework
во время выполнения внутри кода пользователя.
Но сопровождающие предоставляют как часть специальной script scripts/gtest-conf, которая:
...
provides access to the necessary compile and linking
flags to connect with Google C++ Testing Framework, both in a build prior to
installation, and on the system proper after installation.
...
Помимо всего прочего, этот script имеет несколько опций, связанных с версией:
...
Installation Queries:
...
--version the version of the Google Test installation
Version Queries:
--min-version=VERSION return 0 if the version is at least VERSION
--exact-version=VERSION return 0 if the version is exactly VERSION
--max-version=VERSION return 0 if the version is at most VERSION
...
script также содержит пример использования:
Examples:
gtest-config --min-version=1.0 || echo "Insufficient Google Test version."
...
Это означает, что пользователь может тестировать версию фреймворка во время сборки с помощью script gtest-config
.
Примечание
script gtest-config
получить фактическую версию структуры во время конфигурации через переменные, объявленные в configure.ac.
...
AC_INIT([Google C++ Testing Framework],
[1.7.0],
[[email protected]],
[gtest])
...
И после вызова autoconf
в файле configure
заполнены следующие идентификаторы:
...
# Identity of this package.
PACKAGE_NAME='Google C++ Testing Framework'
PACKAGE_TARNAME='gtest'
PACKAGE_VERSION='1.7.0'
PACKAGE_STRING='Google C++ Testing Framework 1.7.0'
PACKAGE_BUGREPORT='[email protected]'
PACKAGE_URL=''
...
# Define the identity of the package.
PACKAGE='gtest'
VERSION='1.7.0'
...
Пока структура, скомпилированная с опцией AC_CONFIG_HEADERS, содержит идентификаторы, хранящиеся в файле build-aux/config.h
и доступные пользователю во время компиляции.