У меня есть собственный скрипт Python для сборки моих проектов, чтобы сохранить простоту зависимости, я хотел бы использовать Eclipse в качестве C ++ IDE, но сохраняя свой скрипт сборки.
Чтобы поддерживать автозаполнение и интеллигентность (с документами и т. Д.), Я хотел бы сообщить Eclipse (нестандартные) заголовки и определения, добавленные во время разрешения зависимостей в моем скрипте.
Я обнаружил, что файл «.cproject» содержит такую информацию, безопасно ли его изменять из сценариев сборки или есть ли способ интегрировать мой сценарий в сам Eclipse?
Пример:
# TestGame.json
{
"name": "TestGame",
"extend": "BASE",
"actions": ["COMPILE", "LINK"],
"CC": [
"G++11"],
"dep": {
"builds": ["DFResourcer", "DFSDL"],
"libs": ["SDL2", "SDL2main"]
}
}
Мои сценарии сборки скомпилируют измененные файлы и свяжут их со всеми необходимыми файлами и найдут «/ Главная / CPP-проекты / DFSDL / включают», другие пути, которые должны быть включены, и необходимость —станд = C ++ 11, Я хочу, чтобы Eclipse (не вручную) велел искать заголовки также для автозаполнения и т.д.
Я обнаружил, что файл «.cproject» содержит такую информацию, безопасно ли его изменять из сценариев сборки
Это выполнимо, но не рекомендуется, потому что формат файла недокументирован и не гарантированно стабилен во всех версиях Eclipse.
Есть ли способ интегрировать мой скрипт в самом Eclipse?
Вы могли бы написать плагин Eclipse, который запускает ваш скрипт и связывается с ним или использует вывод, который он производит. Тем не менее, это кажется тяжелым решением.
Я бы предложил следующее простое решение:
Затмение имеет построить выходной парсер. Я писал о том, как использовать его в других ответах, например, этот. По сути, он предназначен для анализа выходных данных make
вызовите, проанализируйте любую строку, которая выглядит как команда компилятора, и настройте пути включения на основе -I
аргументы в этой команде.
Вы можете использовать это, даже если вы используете собственный сценарий сборки, а не make
просто заставьте ваш скрипт выводить команды компилятора, которые он вызывает (если хотите, вы можете сделать это условным для флага, например: --verbose
) и настройте Eclipse для вызова вашего сценария сборки, а не make
(передавая флаг, если вы его использовали) при создании проекта.
Других решений пока нет …