Организация пути поиска

Мы создаем через «Инструменты | Параметры | Переменные среды» такие переменные:

$(Sources) = D:\Sources\Delphi
$(OurLib) = $(Sources)\OurLib\Src
$(OurApp1) = $(Sources)\Applications\App1\3.x
$(ThirdParty) = $(Sources)\ThirdPartyComponents

Мы используем эти переменные в пути поиска проекта следующим образом:

($OurApp1)\Src\Core;($OurApp1)\Src\GUI;($OurApp1)\Src\Plugins;$(ThirdParty)\JVCL

Но это не работает (пока что исправлено) начиная с Delphi 2009, так как эти переменные больше не оцениваются полностью (см.КК № 73276). Таким образом, файлы в каталогах не найдены компилятором. Обходной путь: используйте только полные каталоги в переменных среды.

Мы используем этот подход, потому что на всех машинах разработчика и серверах сборки файлы могут быть найдены, и нам нужно только указать $ (Sources) в нужном месте.

У нас нет ничего в нашем глобальном пути к библиотеке (кроме значений по умолчанию в Delphi), потому что это не было бы в управлении версиями и не отражалось на других разработчиках или сборочных машинах.

Одна проблема: если одна единица в $ (OurLib) решит включить другую новую единицу, возможно, по новому пути, все проекты прерываются, потому что они не находят эту новую единицу. Затем мы должны пройти через все проекты и добавить путь поиска. (Кстати: я действительно ненавижу редактор пути поиска ... не будет ли простое поле заметки намного лучше редактировать, чем эта логика замены / добавления / удаления?)

Еще одна вещь, которую мы делаем, - это не добавлять много юнитов в наш проект. Особенно все из $ (OurLib), но у нас часто есть такие модули, как плагины, которые добавляют функциональность только путем их включения. Для разных выпусков наших продуктов мы хотим включить разные единицы. Поскольку Delphi всегда путает $ IFDEF в предложении использования в .dpr, мы помогаем нам, включая модули, называемые «IncludePlugins», которые затем включают модули в зависимости от IFDEF. Но не включение юнитов в проект делает навигацию до боли. Модули не отображаются в проекте, они не обнаруживаются с помощью Ctrl + 12 (Показать единицы), они не отображаются при завершении кода и т. Д.

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

Ответы на вопрос(6)

Ваш ответ на вопрос