Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];

Вниз

bat файл компиляции проекта   Найти похожие ветки 

 
infom   (2007-10-30 12:53) [0]

Уважаемые мастера возникла необходимость чтобы каждый раз когда я осуществляю Билд своего проекта в Delphi выполнялся определенный bat файл, который копирует скомпиленные модули в определенную директорию.
Как мне поступить ?
Можно ли повесить вызов определенного bat после билда проекта ?
Или же выполнять и билд(компиляцию, увеличение версии) и копирование в единственном файле.

Если есть возможность, кто может привести примеры пакетных файлов где происходит компиляция или сборка проекта ...
Я использую BDS 2006.


 
infom   (2007-10-30 14:59) [1]

Пытаюсь выполнить компиляцию проекта с помощью командной строки, никак не пойму как это сделать, неужели необходимо прикручивать все директории с компонентами вручную ? Как именно происходит компиляция проекта в IDE видимо используется файл *.cfg  в директории с проектом, но как именно ?


 
Ega23 ©   (2007-10-30 15:33) [2]

Ketmar, помнится, хвалился, что исключительно через MakeFile работает.


 
pasha_golub ©   (2007-10-30 15:33) [3]

Например, так:

@echo off
echo ******************************************************************
echo ************************ Building release ************************
echo ******************************************************************

set DELPHI=C:\Program Files\Borland\Delphi7

set PATHCOMMON="C:\Program Files\EurekaLog 5\Delphi7;%DELPHI%\Lib;%DELPHI%\Bin;%DELPHI%\Imports;%DELPHI%\Projects\Bpl;C:\Program Files\PostgresDAC\;E:\01_Common\DBEngine;E:\01_Common\DBEngine\PgSQL;E:\01_Commo n\DBEngine\PgSQL\UpdateSQL;C:\Program Files\MySQLDAC\;E:\01_Common\QuickImport;;%DXVCL%\ExpressScript Engine\Sources;%DXVCL%\Innerfuse Pascal Script\Sources;%DXVCL%\ExpressWeb Framework\Sources;%DXVCL%\ExpressMemData\Sources;%DXVCL%\ExpressDBTree Suite\Sources;%DXVCL%\ExpressPrinting System\Sources;%DXVCL%\ExpressSpreadSheet\Sources;E:\1_FastReport\LibD7;E:\01_Common\Other;E:\01_Commo n\SysPack"

"C:\Program Files\Borland\Delphi7\Bin\dcc32.exe" -B -GD -CG -$A8 -$B- -$C+ -$D- -$E- -$F- -$G+ -$H+ -$I+ -$J- -$K- -$L- -$M- -$N+ -$O+ -$P+ -$Q- -$R- -$S- -$T- -$U- -$V+ -$W- -$X+ -$YD -$Z1 -N"_DCU" -U%PATHCOMMON% -D"EUREKALOG;EUREKALOG_VER5;RELEASE" <NAME_OF_THE_PROJECT.dpr > <NAME_OF_THE_PROJECT.compile.log

echo ******************************************************************
echo ************************ Building complete ***********************
echo ******************************************************************
@echo on

pause


 
Ega23 ©   (2007-10-30 15:34) [4]

Ужасно это. Я проще сделал, запускаю после билда группы проектов батничек, который копирует всё куда надо и регистрирует всё что надо.


 
Palladin ©   (2007-10-30 15:36) [5]


> Ega23 ©   (30.10.07 15:33) [2]

ну почему сразу хвалился... на fpc, например, другого более удобного варианта нет...

самое интересное, в KDE в KDevelop под FreeBSD 6.0 есть классное окошко настроек компилятора fpc, и млин не работает! :) компилятор на них плевать хотел... :)


 
Джо ©   (2007-10-30 15:36) [6]

Кстати, можно и эксперт для IDE написать, шоб запускал нужный батничек после компиляции :) Там делов на 15 минут.


 
infom   (2007-10-30 15:42) [7]


> pasha_golub

Спасибо, примерно ясно теперь все

> Ega23

Тоже решение, конечно чуть по проще, и менее привлекательно соответственно.

> Джо

А вот это мне тоже сначала в голову пришло. Но никогда не писал экспертов, поэтому не знаю сколько примерно времени займет.


 
infom   (2007-10-30 15:48) [8]


>  pasha_golub

Вопрос в догонку. В директории проекта среда создает файл (имя проекта).cfg он как раз и содержит все что вы передаете через командную строку, т.е. вот мой cfg:
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-E".."
-N0"..\lib\"
-LE"C:\****\Bpl"
-LN"C:\****\Bpl"
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

Можно использовать эти настройки при запуске dcc32 ?


 
Ega23 ©   (2007-10-30 15:49) [9]


> Кстати, можно и эксперт для IDE написать, шоб запускал нужный
> батничек после компиляции :) Там делов на 15 минут.


Вот с удовольствием бы взглянул на код такого эксперта.


 
Джо ©   (2007-10-30 15:52) [10]

> А вот это мне тоже сначала в голову пришло. Но никогда не
> писал экспертов, поэтому не знаю сколько примерно времени
> займет.

Вот заготовка, выдрал из одного своего старого эксперта, прикрутить сюда можно всё, что фантазия позволит :)

unit CompileTimeExpert;

interface
uses Windows, ExptIntf, ToolIntf;

type

 TCompileTimeNotifier = class(TIAddInNotifier)
 public
   procedure FileNotification(NotifyCode: TFileNotification;
     const FileName: string; var Cancel: Boolean); override;
   procedure EventNotification(NotifyCode: TEventNotification;
     var Cancel: Boolean); override;
 end;

procedure Register;

implementation
uses SysUtils, DateUtils;

var
 Notifier: TCompileTimeNotifier;
 LastCompileDt: TDateTime = 0;

procedure Register;                  
begin
 //
end;

procedure TCompileTimeNotifier.EventNotification(
 NotifyCode: TEventNotification; var Cancel: Boolean);
var
 Fv: TextFile;
 Fn: string;
begin
 if ToolServices.GetProjectName = "" then
   Exit;

   case NotifyCode of
     enBeforeCompile:
     begin
       //
     end;
     enAfterCompile:
     begin
       //
     end;
   end;
end;

procedure TCompileTimeNotifier.FileNotification(
 NotifyCode: TFileNotification; const FileName: string;
 var Cancel: Boolean);
begin
end;

initialization
 Notifier := TCompileTimeNotifier.Create;
 ToolServices.AddNotifierEx(Notifier);

finalization
 ToolServices.RemoveNotifier(Notifier);
 Notifier.Free;

end.


Нужно, понятное дело, поместить в пакет и инсталировать в IDE.


 
Джо ©   (2007-10-30 15:54) [11]

На «лишнее» не обращать внимание, выдирал «по живому» :)


 
Ega23 ©   (2007-10-30 16:05) [12]

TIAddInNotifier - где его посмотреть можно?


 
Джо ©   (2007-10-30 16:07) [13]

> [12] Ega23 ©   (30.10.07 16:05)
> TIAddInNotifier - где его посмотреть можно?

%DELPHI%\Source\ToolsAPI\ToolIntf.pas


 
Ega23 ©   (2007-10-30 16:14) [14]


> %DELPHI%\Source\ToolsAPI\ToolIntf.pas


Спасибо.


 
pasha_golub ©   (2007-10-30 16:37) [15]


> Можно использовать эти настройки при запуске dcc32 ?

По идее можно. Но я не нашел как. :-(


 
Ega23 ©   (2007-10-30 16:39) [16]


> По идее можно. Но я не нашел как. :-(


Как параметр?


 
infom   (2007-10-30 16:49) [17]


> Ega23

Да хотелось бы использовать в качестве параметро то что прописано в cfg и в качестве PATHCOMMON использовать значение известного одного ключа в реестре и было бы просто идеально


 
Skyle ©   (2007-10-31 07:35) [18]

Провел эксперимент.

Создал программку prog.pas такого содержимого

program prog;
{$AppType Console}

var
 I : array of Integer;
begin
 SetLength(I, 1);
 I[6] := 10;
 writeln(I[6]);
end.


рядом с программой, в том же каталоге положил вот такой вот батник compile.bat

cd %cd%
dcc32 prog.pas


при выполнении программа компилируется, запускается, выдаёт 10.

Далее, под впечатлением от строк "When DCC32 starts, it looks for DCC32.CFG in the current directory. If the file isn"t found there, DCC32 looks in the directory where DCC32.EXE resides.", я ложу в этот же каталог некий файлик dcc32.cfg вот такого вот содержимого

/$R+

После этого запускаю compile.bat, запускаю prog.exe, программа ругается, как и следовало ожидать.

Дальше не копал, пока что не знаю подводных камней, но думаю что в этом направлении можно нарыть чего-нибудь полезного.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.047 c
2-1194625347
asd00
2007-11-09 19:22
2007.12.02
как узнать что нажата кнопка Esc?


2-1194630369
ProgRAMmer Dimonych
2007-11-09 20:46
2007.12.02
TListView: проблема прорисовки


2-1194350776
Shade
2007-11-06 15:06
2007.12.02
record s...подкиньте умную мысль...


2-1194513868
PRIVET
2007-11-08 12:24
2007.12.02
Визуализация сортировки


15-1194104709
tarasoff
2007-11-03 18:45
2007.12.02
BPwin ERWin





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский