Skip to content
Sergey edited this page Jul 8, 2014 · 3 revisions

Здесь описываются основные части проекта.

Директории

  • cmake: модули системы конфигурации CMake.
  • base: код, который не относится к проекту напрямую, что-то вроде своей библиотеки кода, в которую попадает все самое полезное, что может пригодиться во многих местах.
  • core: основной код проекта. Хотелось назвать его caroline, но ниже будет пояснено, почему не получилось.
  • build: инструменты, используемые при сборке или участвующие в workflow (к примеру cpplint).
  • demo: приложения, демонстрирующие работу проекта
  • third_party: используемые сторонние проекты подгружаются в эту директорию (к примеру gtest).

Цели и артефакты сборки

  • caroline: главное приложение проекта. В нем содержатся main.cc, base, core.
  • base: модуль, соответствует директории base.
  • core: модуль, соответствует директории core. Должен был бы называться caroline, но CMake требует, чтобы имена у всех целей сборки различались, поэтому core.
  • unit_tests: приложение, содержащее в себе юниттесты. Содержит unit_tests_main.cc, base, core, gtest и все файлы с тестами.

Base

Стоит перечислить все, что есть в base, чтобы не писать велосипеды:

  • command_line{.cc,.h,_unittest.cc}: Класс для работы с аргументами командной строки.
  • values{.h,.cc,_unittest.cc}: Классы для построения произвольных вложенных структур данных (числа, строка, буль, список, словарь).
  • json{.h,.cc,_unittest.cc}: JSON парсер/генератор.

Clone this wiki locally