Каков наилучший способ поделиться исходными файлами Delphi между проектами?
Уточнение: мы хотим использовать один исходный файл в нескольких проектах Delphi. Мы использовали наш инструмент SCM для размещения одного и того же файла в нескольких папках, но это не очень элегантный опыт, и мы также рассматриваем возможность переноса на инструмент, который не поддерживает это.
Как я исследовал этот вопрос, я рассмотрел несколько разных подходов, но мне нравится знать, что вы делаете и как вы находите свой подход.
Важные сценарии:
- Код времени
- Для добавления новой зависимости для обмена должно потребоваться явное объявление, чтобы управление совместным использованием.
- Добавление новой зависимости совместного использования должно быть относительно простым; он не должен требовать сложного процесса.
- Хорошим будет один файл, в котором перечислены все "импортированные" файлы проектов (извне).
- Compile времени
- Все проекты всегда должны строиться с одной текущей версией (текущей как из состояния синхронизации источника, так и с локальными изменениями).
- (Поддержание различных версий в разных местах должно использовать разветвление файлов, которое не является темой здесь.)
- Возможно ли, что каждый проект может повлиять на компиляцию общих файлов с различными настройками компилятора (включая флаги).
- Его возможно легче поддерживать (то есть долгосрочный) исходный код, который всегда строится последовательно.
- Возможно, легче сделать исправления для технического обслуживания (т.е. краткосрочные), если объем указанных изменений можно легко ограничить одним проектом.
- Все проекты всегда должны строиться с одной текущей версией (текущей как из состояния синхронизации источника, так и с локальными изменениями).
- Debug времени
- Правильная версия источника должна автоматически открываться при входе в процедуру или установке точки останова.
- Редактирование отображаемого источника должно повлиять на следующую сборку.
- Мы не хотим отлаживать временную копию источника: мы, вероятно, потеряем код в замешательстве.
Вопросы:
- Near-Term:
- Какой подход будет проще всего внедрить?
- Long-Term:
- Какой подход будет проще всего использовать и поддерживать?
Спасибо, за ваш отзыв!
Маттиас
<ч/" > --- ОБНОВЛЕНИЕ ---
Спасибо за отзыв, ответы, комментарии и голоса!
Я начал путь поместить общие файлы в один проект "производитель" и импортировал список скомпилированных файлов в каждый "потребительский" проект. Проекты связаны с MSBuild. Когда вещи будут больше прибиты, я отредактирую этот вопрос и ответ "Библиотечный проект", чтобы поделиться тем, что я узнал.
Оставайтесь с нами! (Но не задерживайте дыхание, вы будете утомлять в течение нескольких минут!: P)