Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2017, 18:08   #1
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
Хорошо Батники для компиляции любой версией Delphi

Если у вас установлено несколько версий Delphi, вы можете использовать мой батник (вернее, cmd-шник) для компиляции любой версией. Ну и ещё несколько вспомогательных...

Файлы:
  • dcc.cmd - основной файл для компиляции, имеет много опций, запускайте без параметров и смотрите возможные варианты опций.
  • cleanupdpr.cmd - очистка от лишних файлов (как работает см. ниже).
  • d64.cmd - запуск dcc.cmd с опцией /64
  • d7.cmd - запуск Delphi 7 IDE
  • d07.cmd - запуск Delphi 2007 IDE
  • d102.cmd - запуск Delphi 2007 IDE
  • dccAll.cmd - компиляция всеми компиляторами (после каждого пауза с вопросом: продолжить или нет)
  • dccAllE.cmd - компиляция всеми компиляторами (пауза с вопросом только в случае ошибки)
  • dccAllS.cmd - компиляция всеми компиляторами (пауза с вопросом только в случае успешной компиляции)
  • dccAllF.cmd - компиляция всеми компиляторами (аналогично dccAllE.cmd) с созданием папки под каждый компилятор, т.е. на выходе получаем файл, скомпилированный каждым компиляторов в отдельную папку
  • bds2007.bat - запуск Delphi 2007 IDE (учитывая, что там есть косяки с файлом EditorLineEnds.ttr в %TEMP%)

dccAll*.cmd планирую вложить в dcc.cmd как руки дойдут, пока пользуюсь этими вариантами...

Немного о том как работает dcc.cmd
Батник содержит внутри себя строки с путями к разным компиляторам. Если в командной строке не задан компилятор, используется тот, который задан в батнике (в начале). Компилятор задаётся опцией типа /7 или /XE5, или /102, разрядность - как /32 или /64 (можно так: /XE8/64 или /XE8x64). Таким образом, для компиляции, скажем, из Far'а можно ввести dcc/2007 MyProj.dpr или dcc/XE8/64 MyProj.dpr, или dcc/102x64 MyProj.dpr. Для запуска IDE задаётся опция /ide (лучше комбинировать с /s). См. справку, в общем

Немного о том как работает cleandpr.cmd
Этому батнику в качестве параметров можно задавать ту же строку, что и при компиляции.
Если в этой строке будет присутствовать существующий dpr-файл (можно задавать маску), батник удалит файлы с тем же именем и расширениями cbk ddp drc dsk dsm identcache ~*, а также все файлы с расширениями dcu dcuil drc dsm map ~*, pas-файл которых лежит рядом.
Если dpr-файл с указанным именем не будет найден, удаляются только файлы с указанным именем и расширениями cbk ddp drc dsk dsm identcache ~* (без dcu dcuil drc dsm map ~*).
Если будет задан (и найден!) pas-файл, также удаляются расширения dcu dcuil drc dsm map ~*, но только для этого файла.
Если параметры для батника не заданы, удаляются все указанные расширения для всех файлов (кроме dcu dcuil drc dsm map ~*, для которых нет pas-файлов)!
Если в качестве первого параметра задать одиночный дефис (-), расширения dcu dcuil drc dsm map ~* не удаляются (можно оставить один дефис, а можно после него задать параметры для компилятора или файл(ы)).

В общем, юзайте, кому надо

p.s. Если есть другие идеи по поводу расширений (может, что-то не стоит удалять или наоборот добавить), пишите. Ну или ещё по каким-то вопросам...
Вложения
Тип файла: zip dcc.zip (7.8 Кб, 33 просмотров)
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru

Последний раз редактировалось 7in; 11.10.2017 в 08:48. Причина: добавил инфу про параметр-дефис
7in вне форума Ответить с цитированием
Старый 11.10.2017, 02:45   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,877
По умолчанию

"Вызывает антирес
Ваш технический прогресс:
Как у вас там сеют брюкву —
С кожурою али без?.."
(с) Л. Филатов.
Вот мне лично непонятно нафига нужно иметь возможность компилировать проект в разных версиях Дельфи в командной строке.
northener вне форума Ответить с цитированием
Старый 11.10.2017, 08:46   #3
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

Не всегда есть смысл пользоваться самой последней версией Delphi (которая делает exe-шник с пустой формой аж на 2 мега). Часто достаточно 7-и, есть 2005-2007 (которые имеют много новых фич в сравнении с 7-кой).

Ещё примеры:
• делается модуль (unit) под версии 6+/7+, нужно проверить - все ли компиляторы его корректно скомпилят.
• скачал проект (или тот же модуль) под какую-то версию, нужно скомпилить определённой версией (Tokyo и все прочие XE2+ не переварят имена uses-модулей в старом формате + юникод + прочие отличия).
• хочу проверить - какая версия Delphi поддерживает нужную мне директиву.
И т.д.

Лично я пользуюсь этим активно. И выложил для тех, кому это тоже будет нужно.
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru

Последний раз редактировалось 7in; 11.10.2017 в 08:50.
7in вне форума Ответить с цитированием
Старый 11.10.2017, 10:29   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от 7in Посмотреть сообщение
Не всегда есть смысл пользоваться самой последней версией Delphi (которая делает exe-шник с пустой формой аж на 2 мега). Часто достаточно 7-и
Версия Delphi тут не при чём.
Production версия ПО всегда компилируется в релиз, а он имеет размер гораздо скромнее. Если же и этого недостаточно, можно изменить конфигурацию сборки (по умолчанию к exe прикомпилируется много компонентов, которые в конечном итоге могут оказаться не нужными).

А, вообще автору респект за то, что по сути задокументировал эту особенность работы Delphi компилятора и подготовил целый набор батников для её использования.
Streletz вне форума Ответить с цитированием
Старый 11.10.2017, 15:36   #5
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Production версия ПО всегда компилируется в релиз, а он имеет размер гораздо скромнее.
2 мега - это Release версия, а Debug занимает 11 в Tokyo
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
7in вне форума Ответить с цитированием
Старый 11.10.2017, 17:23   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от 7in Посмотреть сообщение
2 мега - это Release версия, а Debug занимает 11 в Tokyo
Даже если так, то сути это не меняет. Повторюсь, всегда можно исключить из сборки лишние компоненты.
Кроме того, для современных ПК даже десятки Мб это размер ни о чём. Тем более очень редко когда всю логику программы помещают в exe.
Streletz вне форума Ответить с цитированием
Старый 16.10.2017, 14:10   #7
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

Новая версия батнка (dccAll пока ещё отдельно)!
Пофиксены баги (и надеюсь, не наделано новых :D), добавлены фичи.
Код:
:: VERSION HISTORY
::
:: v1.10 (16.10.2017)
:: [!] Settings are taken out to 'dcc.config.cmd' file
:: [+] Default batch options can be specified in 'dcoptions' environment variable (that declared in 'dcc.config.cmd')
:: [+] Added 'x86' suffix for '/version' option
:: [+] Added '/i', '/ii' and '/i-' options to avoid multiple instance run
:: [+] Added '/si' option (run via 'start' command for IDE only)
:: [+] Added aliases for compiler versions in 'dcc.config.cmd' (you can use '/07' option instead of '/2007' if setting 'delphiveralias_07=2007' is added)
:: [+] More settings for compiler and IDE (some of variables are renamed): 'delphiexeVERSION_BITS', 'defdelphiexe_BITS', 'delphiideexeVERSION', 'defdelphiideexe',
::     'delphioptVERSION_BITS', 'defdelphiopt_BITS', 'delphiideoptVERSION', 'defdelphiideopt'
:: [+] Executable filename settings ('delphiexeVERSION_BITS', 'defdelphiexe_BITS', 'delphiideexeVERSION', 'defdelphiideexe') can contain full paths to EXE or just paths relatively to %delphipath%;
::     you can also specify a command line with prefix '@' (like '@call MyDelphi.bat') or '@@' if you want to ignore '/s' (run via 'start') option (like '@@call MyDelphi.bat');
::     add hyphen '-' after '@' or '@@' if you don't want to use any options instead of command line parameters (like '@-call MyDelphi.bat' or '@@-call MyDelphi.bat')
:: [+] Option settings 'delphioptVERSION_BITS', 'defdelphiopt_BITS', 'delphiideoptVERSION' and 'defdelphiideopt' can be set as single hyphen '-' to cancel options (and don't use 'defXXX' options);
::     this rule doesn't apply to 'extradelphiopt' and 'extradelphiideopt' or any other settings
:: [-] Fixed some bugs (e.g. '/ca' and '/cb' options worked vice versa) and many internal changes are made (including string processing improvements); one russian string is translated into English :)
::
:: v1.00 (10.10.2017 and earlier)
:: [!] The first version!
Вложения
Тип файла: zip dcc_1.10.zip (9.0 Кб, 16 просмотров)
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru

Последний раз редактировалось 7in; 17.10.2017 в 09:06.
7in вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа borland delphi 7 несовместима с данной версией windows palpetrovich Общие вопросы Delphi 13 15.02.2016 13:41
батники на acmp.ru kostan3 Общие вопросы C/C++ 26 28.03.2014 12:59
Pascal при компиляции любой программы выдаёт ошибку : Poltish Паскаль, Turbo Pascal, PascalABC.NET 12 09.04.2013 18:51
жестокие батники Артем_Назаренко Помощь студентам 0 17.12.2009 17:29