Найти в Дзене
LITVINOV-UPGRADE-LINUX

Google Test сборка из исходников и установка как deb-пакет в Astra Linux 1.7.7.9

Есть несколько способов подключения библиотеку Google Test Рассмотрим способ с созданием DEB пакета. Соберем googletest из исходников и установим в систему, это позволит не зависеть от работы интернета, и работать с актуальной версией тестов, в любой момент ее можно будет пересобрать на более новую. создадим директорию и клонируем репозиторий $ mkdir ~/work-tmp
$ cd ~/work-tmp
$ git clone https://github.com/google/googletest.git далее проверим какие версии доступны $ git tag -l перейдем в ветку с нужной версией $ git checkout v1.17.0 $ mkdir build
$ cd build $ cmake .. -DCMAKE_CXX_STANDARD=17 $ make $ mkdir -p ~/work-tmp/compiled/googletest/DEBIAN
$ make install DESTDIR=~/work-tmp/compiled/googletest редактирую файл "control" в папке DEBIAN kate ~/work-tmp/compiled/googletest/DEBIAN/control и прописываю версию, можно указать имя и почту автора DEB-пакета Package: googletest Version: 1.17.0 Priority: optional Section: universe/libdevel Architecture: amd64 Source: googletest Origin: A
Оглавление

Вступление

Есть несколько способов подключения библиотеку Google Test

  • скопировать исходники
  • git submodule
  • CMake ExternalProject_Add
  • можно собрать deb и установить в систему

Рассмотрим способ с созданием DEB пакета. Соберем googletest из исходников и установим в систему, это позволит не зависеть от работы интернета, и работать с актуальной версией тестов, в любой момент ее можно будет пересобрать на более новую.

Сборка

создадим директорию и клонируем репозиторий

$ mkdir ~/work-tmp
$ cd ~/work-tmp
$ git clone
https://github.com/google/googletest.git

далее проверим какие версии доступны

$ git tag -l

перейдем в ветку с нужной версией

$ git checkout v1.17.0
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_CXX_STANDARD=17
-2
$ make
-3

Создание deb-пакета

$ mkdir -p ~/work-tmp/compiled/googletest/DEBIAN
$ make install DESTDIR=~/work-tmp/compiled/googletest

редактирую файл "control" в папке DEBIAN

kate ~/work-tmp/compiled/googletest/DEBIAN/control

-4

и прописываю версию, можно указать имя и почту автора DEB-пакета

Package: googletest
Version: 1.17.0
Priority: optional
Section: universe/libdevel
Architecture: amd64
Source: googletest
Origin: AstraLinux17
Maintainer: your_name <your email>
Homepage: https://github.com/google/googletest
Description: Google's framework for writing C++ tests
Google's framework for writing C++ tests on a variety of platforms.
Based on the xUnit architecture. Supports automatic test discovery,
a rich set of assertions, user-defined assertions, death tests,
fatal and non-fatal failures, value- and type-parameterized tests,
various options for running the tests, and XML test report
generation.

Собираем DEB пакет

$ cd ~/work-tmp/compiled
$ dpkg-deb --build googletest
$ mv googletest.deb googletest-1.17.0_amd64.deb

Далее устанавливаем в систему

$ sudo dpkg -i googletest-1.17.0_amd64.deb
-5

После установки всегда можно откатить сборку сделав

sudo apt-get purge googletest

и установив

sudo apt-get install libgtest-dev

Теперь библиотеки установлены в систему и находятся

/usr/local/lib/libgmock.a
/usr/local/lib/libgmock_main.a
/usr/local/lib/libgtest.a
/usr/local/lib/libgtest_main.a

Пример:

для Qt
в .pro файл пропишем

CONFIG += c++17 console
INCLUDEPATH += /usr/local/include
LIB += -L/usr/local/lib
LIBS += -lgtest -lgtest_main -lpthread

тогда в main.cpp

#include <gtest/gtest.h>
TEST(Name, Test) {
ASSERT_TRUE(1 == 1);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

В результате

-6

Сборка под Windows

git clone https://github.com/google/googletest.git
cd googletest
git checkout v1.17.0
mkdir build
cd build
cmake -G "Visual Studio 16 2019" .. -DCMAKE_CXX_STANDARD=17
cmake --build . --config Release
#результат: googletest\build\lib\Release\
cmake --build . --config Debug
#результат: googletest\build\lib\Debug
# Include:
googletest\googlemock\include\
googletest\googletest\include\

Ссылки

GitHub - google/googletest: GoogleTest - Google Testing and Mocking Framework
Google Test Compiled From Source

Обложка

-7