Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Makefile to C/C++ configNew to Visual Studio Code? Get it now.
Makefile to C/C++ config

Makefile to C/C++ config

Zaikin Denis

|
124 installs
| (0) | Free
C/Cpp configs generator from makefile
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Makefile to C/C++ config

Генератор конфигураций для C/C++ for Visual Studio Code.

Принцип работы

Что бы было понятно как работать и как устранять проблемы.

  1. Из параметра make-to-cpp-props.toolchainName берется имя тулчейна, например arm-none-eabi-gcc
  2. На основе имени тулчейна создается "ловушка"
  3. При генерировании конфига вызывается команд make, а путь к пустышке добавляется в начало перечислений переменной среды PATH. Тем самым "ловушка" подменяет собой реальный тулчейна и собирает параметры командной строки с которыми вызван тулчейн.
  4. Собранные данные анализируются регулярными выражениями и заполняется структура файла конфига.
  5. Если конфиг с таким именем уже существует, то он обновляется, если нет - создается.

Исходный код "Ловушки"

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
    FILE * fp = fopen("output.txt", "a+");
    for (int i = 0; i < argc; i++) { fprintf(fp, "%s ", argv[i]); }
    fprintf(fp, "\n");
    fclose(fp);
    return 0;
}

Настройки

Имена параметров начинаются с make-to-cpp-props., например "make-to-cpp-props.toolchainName"

Параметр Тип Комментарий Значение по умолчанию
toolchainName Строка Имя тулчейна arm-none-eabi-gcc
debug.console-log Boolean Включает вывод отладочной информации true
defines-regexp Строка Шаблон регулярного выражения для дефайнов /\s-D\s?([\w\=]*[\w"\\\.]*)\s?/g
includes-regexp Строка Шаблон регулярного выражения для инклудов /\s-I\s?"?([.\S\w]*)"?/g
generator.compilerPath Boolean Разрешает добавлять в конфиг путь к компилятору (работает криво) false

Настройки можно менять по своему усмотрению. Рекомендуется toolchainName определять в настройках папки или воркспейса.

Как использовать

  1. Установить и настроить
  2. Вызвать контекстное меню на папке в которой лежит целевой Makefile. Поддерживаются стандартные имена "GNUmakefile", "makefile", "Makefile" и файлы ".mk"
  3. Запустить команду и дождаться выполнения.

Demo

Существующие проблемы

  1. Не поддерживается конфиг json с комментариями (обещаю исправить).
  2. Плохо работает объединение путей на разных платформах, поэтому пути в конфиге не красивые (обещаю исправить)
  3. Регулярки не красивые (я не специалист в них, буду рад помощи)

Планы

  1. Исправление проблемы
  2. Сделать генератор тасков с указанием нужных путей
  • Contact us
  • Jobs
  • Privacy
  • Terms of use
  • Trademarks
© 2023 Microsoft