/umba-hcp

Umba Header Copy

Primary LanguageC++

Umba Header Copy

Назначение утилиты umba-hcp

Данная утилита предназначена для копирования зависимостей заданного файла(ов). Утилита считывает исходный файл, производит его разбор (лексический анализ), и производит обработку всех директив include. Производится попытка найти каждый файл, указанный в директиве include. При нахождении файла его содержимое обрабатывается аналогичным способом.

Разбор заголовочных C/C++ файлов производится согласно синтаксису языка, и содержимое коментариев и строковых литералов не учитывается при разборе.

Утилита umba-hcp сделана по мотивам утилиты boost bcp, но, в отличие от утилиты bcp, не привязана к библиотеке boost и может быть использована с произвольными исходниками.

Использование утилиты umba-hcp

Синтаксис использования утилиты umba-hcp:

umba-hcp [OPTIONS] FILE [FILE...]

Опции утилиты umba-hcp

Утилита umba-hcp обрабатывает следующие опции (OPTIONS):

  • -IPATH[;PATH...] - разделяемый символом ; (под *nix - также используется символ :) список каталогов поиска включаемых файлов.
  • -oPATH - путь, по которому будут скопированы найденные зависимости.
  • -A, --all - обрабатывать все директивы include.
  • -S, --system - обрабатывать только системные директивы include (использующие угловые скобки).
  • -U, --user - обрабатывать только пользовательские директивы include (использующие двойные кавычки). При обработке пользовательских директив include поиск включаемого файла производится вначале относительно того каталога, в котором расположен включающий файл.

Параметры утилиты umba-hcp

В качестве параметров утилита umba-hcp принимает список файлов (FILE [FILE...]) для сканирования зависимостей.

В качестве аргумента можно задать имя файла с исходными текстами, который использует извлекаемую библиотеку. При этом, если данный файл не входит в пути поиска библиотек, то он не будет скопирован в выходной каталог. Также, при этом, будут скопированны все файлы, подключаемые в данном исходнике. Поэтому лучше задавать в качестве параметров только непосредственно файлы извлекаемых библиотек.

Сборка и отладка проекта

Извлечение библиотек

Для сборки проекта требуются внешние библиотеки. Внешние библиотеки не подгружаются автоматически. Для их подгрузки требуется выполнить скрипт _libs/_clone_libs.bat.

Генерация сборочных скриптов и сборка

Для генерации сборочных скриптов и их сборки при помощи MSBuild предназначены файлы:

  • .bat/cmake_generate_all_msvc2017.bat
  • .bat/cmake_generate_all_msvc2019.bat
  • .bat/cmake_generate_all_msvc2022.bat
  • .bat/cmake_build_all_msvc2017.bat
  • .bat/cmake_build_all_msvc2019.bat
  • .bat/cmake_build_all_msvc2022.bat

Открытие проекта в IDE

Запуск VSCode

Для запуска VSCode предназначен файл _start_code.bat. VSCode с плагином "CMake Tools" сам обнаружит CMakeLists.txt. Следует выбрать подходящий тулчейн и можно начинать работу.

Запуск MSVC

Для запуска MSVC предназначен файл _start_msvc.bat. По умолчанию будет сгенерированна и открыта в 2019ой студии конфигурация x86. Для того, чтобы открывалась другая студия с другой конфигурацией, следует переименовать файл setup_msvc.bat.example в setup_msvc.bat и настроить нужную конфигурацию там.