Как я могу скомпилировать 32- и 64-битные DCU в отдельные каталоги? - PullRequest
7 голосов
/ 07 декабря 2011

Я пытаюсь поддерживать один репозиторий, большинство всего в моей кодовой базе является исходным, но у нас есть библиотека QuickPDF, которая представляет собой набор предварительно скомпилированных DCU. Я бы хотел как-то включить их в систему контроля версий, но я не хочу, чтобы для win64 был установлен еще один параметр, о котором я собираюсь забыть, прежде чем преобразовать оставшуюся триллионную кодовую базу LOC в win64.

То, о чем я думал, было просто (и quickPDF - просто пример, в этой библиотеке нет ничего особенного, кроме ее неудачной прекомпиляции)

  • Ctrls \ QuickPDF \ QuickPDF.pas
  • Ctrls \ QuickPDF \ win32 [*. DCU]
  • Ctrls \ QuickPDF \ win64 [*. DCU]

По внешнему виду папок в Program Files Embarcadero делает нечто подобное с VCL. Там даже есть некоторые скомпилированные вещи, такие как VCL.Imaging.JPEG.pas.

Как мне сделать то же самое? Нужно ли указывать папки win32 и win64, или есть какое-то волшебство, к которому я могу подключиться?

Ответы [ 2 ]

12 голосов
/ 07 декабря 2011

Волшебство, о котором вы говорите, можно увидеть в файле .dproj для простого ванильного приложения XE2 VCL Forms.Ключевыми ингредиентами являются следующие переменные:

  • $(Platform), который может быть Win32 или Win64 в Windows.
  • $(Config), который обычно является либо Debug, либо Release.

Затем в файле .dproj следующий XML выполняет магию:

<PropertyGroup Condition="'$(Base)'!=''">
    <DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
    <DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
</PropertyGroup>

Такие приемы можно использовать с переменными $(Platform) и $(Config) с любым из параметров проекта.Поэтому вам просто нужно использовать эти переменные, чтобы установить любую опцию, которая должна быть установлена ​​для компилятора, чтобы найти ваши предварительно скомпилированные DCU.

Насколько мне известно, опция, которую вам нужно установить, - это Путь поиска.Хотя я признаюсь, что не знаю, как работает путь поиска, поскольку лично я никогда не полагаюсь на путь поиска и всегда явно включаю все исходные файлы в свои проекты.В вашем примере вы добавили бы ctrls\quickpdf\($Platform) к пути поиска.

1 голос
/ 07 декабря 2011

Это просто, добавьте:

  • .. \ ctrls \ quickpdf \ $ (Платформа)

в путь поиска проектов

Хотя выВы будете удивлены, когда обнаружите, что это на самом деле работает, поскольку в IDE оно отображается серым цветом.

Project Options - Search Path

...