Система "Статический плагин" (через систему сборки) в C ++ - PullRequest
1 голос
/ 26 ноября 2010

Я сейчас работаю над продуктом C ++. Он был разработан, чтобы иметь достаточную гибкость и становился все больше и больше. Теперь мы планируем сотрудничать в проекте, в который мы хотели бы добавить части продукта: некоторые части в виде исходного кода, некоторые части в качестве статических библиотек ссылок, а некоторые нет вовсе.

Я хотел бы сохранить одну версию каждого исходного файла, который используется в обоих проектах, и избегать разветвления всего этого и т. Д. Поэтому мне было интересно, что мне нужно, чтобы иметь возможность иметь "полный продукт" внутри со всеми файлами и также иметь возможность извлекать часть этих файлов (время от времени) и передавать это подмножество как рабочий блок другим. (Я предполагаю, что мы можем гарантировать, что эти файлы не будут изменены в проекте сотрудничества, мы только добавим туда материал.)

Думаю, мне нужно

  • программная архитектура, которая слабо связана, так что части могут быть удалены без разрушения системы. Я думаю, что термин «статический» плагин здесь уместен, потому что я думаю, что я могу учиться на системах плагинов, но мне не нужно иметь возможность загружать их динамически, они могут быть связаны / построены статическим способом. Я надеюсь, что это может заставить меня и моих коллег расширить систему, добавив какой-нибудь плагин вместо того, чтобы вставлять классы тут и там, вводя связь между вещами.
  • система сборки, которая помогает мне выбирать плагины для сборки и «выпускать» новые подмножества, извлекая только то, что мне нужно.

Существуют ли интернет-ресурсы, которые могут помочь. Какие ключевые слова для поиска?

Есть ли у вас какие-либо предложения о том, как справиться с этим?

Ответы [ 2 ]

4 голосов
/ 26 ноября 2010

Есть интересная серия статей от доктора Доббса, которую вы, возможно, захотите проверить.Кажется, я помню, что он поддерживает статическое связывание плагинов в дополнение к обычному динамическому связыванию.Проверьте Создайте свой собственный плагин Framework .

Удачи!

0 голосов
/ 26 ноября 2010

Прежде всего, вам нужно что-то вроде git:

http://github.com

для управления источником. Чтобы управлять «плагинами», статическими или нет, стоит взглянуть на существующие системы, которые уже делают это: я могу порекомендовать изучить, как это делает Python (поскольку для управления им существует хорошо определенный C API).

Лучшая система сборки, о которой я знаю, это .. Python. Забудьте о создании :) Предварительно созданный Erick Tryzelaars fbuild (доступен на github). [Ну, я думаю, что он лучший, потому что я его использую:]

...