Этот репозиторий содержит пример того, как можно настроить свой проект с использованием кросплатформенной системы сборки CMake и библиотеки тестирования GoogleTest.
Содержимое:
main.cpp- реализация функцииmain. Не рекомендуется добавлять в этот файл что-то еще;task1/2.h,task1/2.cpp- файлы реализации задачи;task1/2_test.cpp- тесты (с использованием GoogleTest);CMakeLists.txt- правила сборки для CMake;.gitignore- (для Git) правила игнорирования типичных для проектов C++/CMake временных файлов и папок.
Подготовка к сборке:
- Убедитесь, что в системе установлен компилятор C++. Для Windows проще всего установить Visual Studio (компилятор идёт вместе с ней), но есть и другие варианты (например, mingw/cygwin + gcc). Для других систем (Linux, Mac OS) установите gcc.
- Установите CMake.
Как собрать проект из командной строки:
- Cоздайте папку
buildвнутри проекта. Перейдите в неё. Все дальнейшие действия нужно выполнять из этой папки. - Запустите
cmake ... Результатом этой операции будет создание билд-скриптов в текущей папке. Это нужно сделать один раз. - Запустите сборку при помощи команды
cmake --build .(под Linux/MacOS/cygwin/mingw также сработает простоmake). Это нужно делать каждый раз для пересборки проекта. - Проверьте, что собрались и запускаются исполняемые файлы
nsuoop-cpp-template(.exe)иtest(.exe). Под Windows они могут лежать в папкеDebug.
Можно также воспользоваться CMake GUI.
Visual Studio поддерживает CMake, поэтому можно просто открыть папку с проектом в ней. В этом случае по умолчанию папкой для сборки будет
out/build, а неbuild.
Как вносить изменения:
- При внесении изменений в существующие h/cpp-файлы для пересборки нужно снова сделать
cmake --build .(илиmake). Если пользуетесь IDE, она будет делать это сама. - При создании новых (или удалении старых) cpp-файлов необходимо соответствующим образом изменить
CMakeLists.txt(см. комментарии в нём). После этого снова сделатьcmake --build .(илиmake). Это не относится к h-файлам, так как они не порождают новые единицы трансляции. h-файлы можно создавать и удалять, не меняяCMakeLists.txt.
Даже если пользуетесь Visual Studio или другой IDE,
CMakeLists.txtвсе равно должен находиться в актуальном состоянии, чтобы проект можно было собрать на любой системе без помощи IDE.