
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4271 212acab6-be3b-0410-9dea-997c60f758d6
51 lines
1.2 KiB
ObjectPascal
51 lines
1.2 KiB
ObjectPascal
unit DLLWrapper;
|
|
|
|
interface
|
|
|
|
uses Classes, SysUtils;
|
|
|
|
function DoGenerate(const Source, Target: String; Stream: TStream; Config: String): Integer; forward;
|
|
|
|
var
|
|
WaitAfterGenerate: Boolean = False;
|
|
OptimalPatches: Boolean = False;
|
|
|
|
implementation
|
|
|
|
uses
|
|
OSUtil, Forms;
|
|
|
|
function DoGenerate(const Source, Target: String; Stream: TStream; Config: String): Integer;
|
|
var
|
|
F: TextFile;
|
|
Temp, BatchFile: String;
|
|
fs: TFileStream;
|
|
begin
|
|
BatchFile:=ExcludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + PathDelim +'~generate_patch.bat';
|
|
AssignFile(F,BatchFile);
|
|
Rewrite(F);
|
|
Temp:=GetTempFile;
|
|
WriteLn(F,'@cls');
|
|
WriteLn(F,'@echo Generating '+ExtractFileName(Source)+' to '+ExtractFileName(Target)+'...');
|
|
Write(F,'genpat.exe "', Source, '" "', Target, '" "', Temp, '" /b='+Config);
|
|
if OptimalPatches then begin
|
|
Write(F,' /o');
|
|
end;
|
|
WriteLn(F,'');
|
|
if WaitAfterGenerate then begin
|
|
WriteLn(F,'@echo.');
|
|
WriteLn(F,'@pause');
|
|
end;
|
|
CloseFile(F);
|
|
|
|
ExecWaitBatchFile(ExtractFilePath(BatchFile),BatchFile);
|
|
|
|
fs:=TFileStream.Create(Temp,fmOpenRead);
|
|
Stream.CopyFrom(fs,fs.Size);
|
|
Result:=fs.Size;
|
|
fs.Free;
|
|
DeleteFile(Temp);
|
|
DeleteFile(BatchFile);
|
|
end;
|
|
|
|
end.
|