2016-10-01 4 views
2

Исторический контекст:Eclipse CDT обновление/синхронизации список проектов автоматически (для легкой "обновления", связанного набора проекта)

У нас есть проект, состоящий из следующих частей:

  • хост-приложения (C++) библиотека
  • Scripting Engine (также написан на C++)
  • много C++ плагинов (около 30+)
  • много сценариев, связать все го uff вместе ...

От версии к версии добавлены некоторые плагины и некоторые из них удалены. До сих пор мы использовали решение Visual Studio (* .sln) для размещения всех проектов (* .vcxproj) для хост-приложения, библиотеки сценариев Scripting и плагинов (один * .vcxproj для плагина!). Чтобы поделиться источниками/проектами, мы используем проприетарную систему управления версиями, и до сих пор, когда мы объединим обновления с сервера (некоторые проекты плагинов добавлены и некоторые проекты плагинов удалены), все дерево проектов в VS были обновлены благодаря «перезагрузке», (от разработчика не требуется никаких действий для просмотра и сборки обновленного исходного дерева).

Проблема:

Теперь наше руководство решило перейти к Eclipse CDT/MinGW паре, и мы столкнулись с этой проблемой, Eclipse, рабочая область является не то же самым, как Visual Studio * .sln ...

Теперь, когда появляется какая-либо папка проекта плагина или некоторые папки проекта плагина исчезают, соответствующие элементы рабочей области не обновляются соответствующим образом.

Таким образом, теперь каждый разработчик должен использовать Файл> Импорт ...> Общие> «Существующие проекты в рабочее пространство» Файл/«Открытые проекты из файловой системы» для добавления новых проектов в собственную рабочую область вручную после их добавления другим разработчиком в исходное управление. Также нужно вручную удалить из собственного рабочего пространства тех плагинов проектов, которые были удалены из системы управления ...

Это отличный контраст с тем, что мы ранее имели с Visual Studio, где «перезагрузка» функция автоматически обновляется проект/источник tree (просто из-за всей информации, полученной с * .sln/*. vcxproj с сервера).

Наш первый вариант состоял в том, чтобы поместить материал Workspace \ .metadata и т. Д. В исходный элемент управления (как мы ранее делали для * .sln-файлов), но «это не так, как Eclipse Workspace предназначено для использования» (это даже не представляется возможным только потому, что пути в .metadata \ * являются абсолютными и т Workspace \ * материал он не объединяемые вообще)

Вопрос:

есть ли какой-нибудь способ, чтобы автоматически синхронизировать Eclipse CDT Workspace с проектом набор, полученный из источника управления. Как только нажмите некоторую (скрытую?) Волшебную кнопку «Обновить» (в специальном плагине для установки или что-то в этом роде), и все новые проекты будут автоматически вставлены . добавлено в исходное дерево в рабочей области, а удаленные проекты также исчезнут , не нужно ли использовать все эти «мастера импорта» и не нужно удалять удаленные проекты вручную?

Может быть, есть специальный проект типа «Контейнер» в Eclipse, чтобы играть ту же роль, что и * .sln в Visual Studio или что-то в этом роде?

Может быть другими вариантами? ... Общего намерения не в замене * .sln некоторого Затмения эквивалента, но поддерживать подобный рабочий процесс, когда куча плагин проектов управляются в целом и установить проект «обновить» быть простой операцией, которая не требует от каждого человека в команде ручного отслеживания проектов, которые появились/исчезли в этом наборе.

ответ

1

Вы использовали CMake для создания файлов проекта Eclipse? Затем вы можете импортировать их в рабочее пространство Eclipse.

Его не автоматическое, но если вы создаете отдельные файлы CMakeLists.txt для каждой части, то вы можете легко комментировать включение этой части в основной файл CMakeLists.txt и регенерировать файлы проекта, когда вы хотите загружать подмножество проекта.

https://cmake.org/Wiki/Eclipse_CDT4_Generator

Если вы когда-либо хотите, чтобы вернуться к VS или другой IDE CMake может генерировать файлы проекта для этого тоже.

Я лично использовал CMake для создания VS-решений и файлов Unix, поэтому я не могу ручаться за то, насколько хорошо это работает.

HTH.


На стороне записки, почему управления решили, что Eclipse, следует использовать вместо Visual Studio? Это звучит как плохое решение без фактических оснований или исследований воздействия до принятия решения.

Было ли это потому, что Eclipse является бесплатным? Считали ли они, что снижает затраты на повышение производительности?

+0

Вы абсолютно правы, руководство решило использовать Eclipse только потому, что Eclipse является бесплатным и из-за «почему ваша команда имеет привилегию по сравнению с нашими другими командами, использующими бесплатные инструменты», политическую вещь ... Мы отложили переход на Eclipse, «снижение производительности разработчиков», но теперь мы снова сталкиваемся с этой проблемой миграции. Мне нравится подход CMake, но это все еще не полностью решает проблему, как видно всей команде ... –