find_package находит и загружает настройки из внешнего проекта. В этом случае библиотека должна предоставить package configuration file. Путь с package configuration file должен быть указан в CMAKE_PREFIX_PATH при сборке проекта. Если find_package пакет был найден, то в окружении CMake создаются различные переменные, которые предоставляют информацию о найденном пакете. Переменные окружения описывают где находятся экспортируемые заголовочные файлы и исходные файлы пакетов, от каких библиотек зависит пакет, и где эти библиотеки находятся. Имена всегда имеют вид <имя пакета>_<свойство>:
<NAME>_FOUND - Если библиотека найдена, то устанавливается в true, иначе - ошибка
<NAME>_INCLUDE_DIRS or <NAME>_INCLUDES - Пути к заголовочным файлам, экспортируемым пакетом
<NAME>_LIBRARIES or <NAME>_LIBS - Библиотеки, экспортируемые пакетом
<NAME>_DEFINITIONS - ?
vcpkg install gtest
В классическом режиме vcpkg устанавливает пути поиска CMake соответствующим образом, чтобы сделать установленные пакеты доступными через find_package(), find_library() и find_path().
mkdir build; cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE="$($env:VCPKG_ROOT)/scripts/buildsystems/vcpkg.cmake"
cmake --build .
Добавляет тесты, которые будут запускаться после успешной сборки при вызове утилиты ctest.
При запуске собранного с тестами исполняемого файла (в примере выше – gtest_program) в поток вывода будут записаны логи тестирования:
.\build\Debug\gtest_program.exe
[==========] Running 5 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 5 tests from ctor
[ RUN ] ctor.defaults
[ OK ] ctor.defaults (0 ms)
[ RUN ] ctor.zero_float
[ OK ] ctor.zero_float (0 ms)
[ RUN ] ctor.zero_double
[ OK ] ctor.zero_double (0 ms)
[ RUN ] ctor.ctor_double
[ OK ] ctor.ctor_double (0 ms)
[ RUN ] ctor.ctor_special
[ OK ] ctor.ctor_special (0 ms)
[----------] 5 tests from ctor (1 ms total)
[----------] Global test environment tear-down
[==========] 5 tests from 1 test suite ran. (2 ms total)
[ PASSED ] 5 tests.
Google Test Explorer for Visual Studio Code
В CMakeLists.txt напротив add_tests появится опция запуска/перезапуска тестов. Также в разделе Testing будут отображаться все найденные тесты:
GoogleTest Adapter
Для использования данного расширения необходимо настроить launch.json с Debug-конфигурацией, например: