Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:common_activities:slind:eclipse:existing_plugins:org_slind_ei_core

This is an old revision of the document!


Плагин 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). Если кратко: юзается то, что уже есть в 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, работает похоже согласно названию, хотя несколько моментов в нём мне не понятны.

org.eclipse.core.resources.natures

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

org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile

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

gcc -E -P -v -dD

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

Краткий итог

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

etc/common_activities/slind/eclipse/existing_plugins/org_slind_ei_core.1194118597.txt.gz · Last modified: 2008/01/03 02:32 (external edit)