Плагин org.slind.ei.core

Реализуемые расширения

org.eclipse.cdt.managedbuilder.core.buildDefinitions

Определяет набр методов сборки проекта. Сложность самого описания очень велика. В глубь не полез. То что видно на верхнем уровне определено 3 типа проекта (exe, so, lib), для каждого есть конфигурации релиза и дебага, они аккуратно юзаю стандартные конфигурации CDT (cdt.managedbuild.config.gnu.base). В конфигурациях определены тулчайны, дополняющие главный(org.slind.ei.toolchain) некоторыми опцами. Сам главный тулчайн сводится к набору соответсвий типа “что нада сделать”-“комманда”. Комманды берутся из настроек плагина(см. п. 2), после чего передаются классу org.slind.ei.core.CommandLineGenerator. Если кратко: юзается то, что уже есть в CDT, просто переопределяются конкретные комманды (типа скомпилить, слинковать и т.п.), изврат через который это делается по-видимому обусловлен архитектурой CDT.

org.eclipse.core.runtime.preferences

Задаёт классы для работами с настройками плагина. Назначает класс org.slind.ei.core.preferences.PreferenceInitializer в качестве загрузчика дефолтных настроек для плагина (настройки типа: комманда чрута, путь к слайндовому чруту и т.п), использует классы SlindUtils и Constatnts (видимо эти классы нам и пригодятся ;)).

org.eclipse.cdt.managedbuilder.core.buildProperties

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

org.eclipse.core.resources.builders

Определяет сборщик. Назначает на эту роль org.slind.ei.core.SudoCallBuilder, работает похоже согласно названию, хотя несколько моментов в нём мне не понятны.
предлагаю zps глянуть на его код, думаю для постижения этого дао опыт компиляния под linux критичен.

org.eclipse.core.resources.natures

Очень интересное расширение, судя по всему задаёт тип проекта, и собственно прикручивает к нему все рюшки. Представляет собой объявление набора классов реализующих org.eclipse.core.resources.IProjectNature + набор параметров их заюзанья + зависимости от других натур. Слайндовая реализация натуры:org.slind.ei.core.SlindProjectNature, она только назначает проекту SudoCallBuilder и удаляет его при отключении от проекта.

org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile

Не понял что делает. Не понял что авторы CDT подразумевали под термином Scanner, в общем надо ещё разбираться :(
Штука в том числе зовёт

gcc -E -P -v -dD

и парсит вывод. Неплохоб понять что собственно вывод должен содержать.

Классы

org.slind.ei.core.preferences.PreferenceGetters

класс для получения настроект плагина, сокращает запись + не заблидушься в том что у кого брать :)

org.slind.ei.core.preferences.Constants

прошитые в виде констант имена настроек плагина.

org.slind.ei.core.SlindUtils

утилсы для получения всякой инфы о слайнде.

org.slind.ei.core.CommandLineGenerator

позволяет транслировать комманды, генерируемые CDT в комманды для исполнения внутри чрута. Реализует ацки сложный интерфейс, видимо для использования нами придёцца копипастить кусочек… ну или уговаривать сименсовцев творить рефакторинг ))

org.slind.ei.core.MacroSupplier

служит для представления настроек плагина в виде IBuildMacro, смысловая нагрузка которого судя по всему сводится к подстановке значений переменных в настройках комманд и путей для расширения org.eclipse.cdt.managedbuilder.core.buildDefinitions.
перенести каменты к классам из описания расширений сюда

Выводы

Данный плагин задаёт способы взаимодействия CDT со сдайндовым чрутом и компиляторами под целевые платформы, основная нагрузка на конфигурации плагина, классы носят вспомогательный характер, логики особой не несут и в основном служат для доступа к настройкам и убирают щели между классическими make, gcc и тем, что есть в слайнде. По моим ощущениям нам отсюда нужны только настройки путей и комманды.