Колхозинг по извлечению параметров проекта :)
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 05.07.21 09:08
Оценка:
Я тут пару лет назад искал
Автор: Евгений Музыченко
Дата: 31.05.19
минимально извращенный способ извлечения в командном файле Windows параметров C++-проекта из .h-файлов. Средне-извращенный у меня уже много лет был (прямой парсинг заголовков с обрезкой кавычек, если есть). Он мне не нравился тем, что не умел склеивать строки, отчего нельзя было определять производные параметры через определенные ранее (например, название продукта фигурирует в именах ряда экспортируемых объектов).

Предложенные варианты с использованием промежуточной выдачи препроцессора "в лоб" не прокатили — они особо ничем не лучше того, что уже было. А вчера я совершенно неожиданно вспомнил о __pragma (message ()). Это уже конструкция не препроцессора, а компилятора, она умеет склеивать строки.

В итоге получилось изрядное извращение:

— Командный файл создает временный .cpp-файл, включающий нужные параметрические заголовки и серию __pragma (message ()).

— Парсит параметры проекта, добывая путь к базовой библиотеке, где определены некоторые сервисные макросы.

— Вызывает компилятор, который на каждый вызов __pragma (message ()) выдает строку вида "set Var=Value".

— Копирует эти строки из выдачи компилятора во временный .cmd-файл.

— Вызывает временный .cmd-файл для определения переменных в текущей среде выполнения.

Уродливо, аж смотреть противно, но работает.
параметры скрипт командный файл заголовок
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.