166 lines
8.2 KiB
ObjectPascal
166 lines
8.2 KiB
ObjectPascal
unit Shared.CompilerInt.Struct;
|
|
|
|
{
|
|
Inno Setup
|
|
Copyright (C) 1997-2024 Jordan Russell
|
|
Portions by Martijn Laan
|
|
For conditions of distribution and use, see LICENSE.TXT.
|
|
|
|
Compiler interface records and other types
|
|
}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows;
|
|
|
|
const
|
|
{ Constants passed in Code parameter of callback function }
|
|
iscbReadScript = 1; { Sent when compiler needs the next script line }
|
|
iscbNotifyStatus = 2; { Sent to notify the application of compiler status }
|
|
iscbNotifyIdle = 3; { Sent at various intervals during the compilation }
|
|
iscbNotifySuccess = 4; { Sent when compilation succeeds }
|
|
iscbNotifyError = 5; { Sent when compilation fails or is aborted by the
|
|
application }
|
|
iscbNotifyPreproc = 6; { Sent to notify the application of preprocessor results }
|
|
|
|
{ Return values for callback function }
|
|
iscrSuccess = 0; { Return this for compiler to continue }
|
|
iscrRequestAbort = 1; { Return this to abort compilation immediately.
|
|
(When this value is returned, it is not necessary
|
|
to set any of the "out" fields in the
|
|
TCompilerCallbackData; the compiler will ignore
|
|
them.) }
|
|
|
|
{ Return values for ISDllCompileScript }
|
|
isceNoError = 0; { Successful }
|
|
isceInvalidParam = 1; { Bad parameters passed to function }
|
|
isceCompileFailure = 2; { There was an error compiling or it was aborted
|
|
by the application }
|
|
|
|
type
|
|
{ TCompilerCallbackData is a record passed to the callback function. The
|
|
fields which you may access vary depending on what Code was passed to the
|
|
callback function. }
|
|
TCompilerCallbackData = record
|
|
case Integer of
|
|
iscbReadScript: (
|
|
Reset: BOOL; { [in] This field can be ignored in compiler
|
|
versions 3.0.1 and later. (Previous versions
|
|
of the compiler made multiple passes over the
|
|
script, and set Reset to True when it needed
|
|
to return to the beginning.) }
|
|
LineRead: PChar); { [out] Application returns pointer to the next
|
|
line it reads, or a NULL pointer if the end of
|
|
file is reached. Application is responsible for
|
|
allocating a buffer to hold the line; LineRead
|
|
is initially NULL when the callback function
|
|
is called. The pointer only needs to remain
|
|
valid until the next time the callback function
|
|
is called (i.e. the application may return the
|
|
same pointer each time). }
|
|
|
|
iscbNotifyStatus: (
|
|
StatusMsg: PChar; { [in] Contents of status message. }
|
|
Warning: BOOL); { [in] Warning indicator (new in 6.0.0) }
|
|
|
|
iscbNotifyIdle: (
|
|
CompressProgress: Cardinal; { [in] Amount compressed so far
|
|
(new in 4.1.6) }
|
|
CompressProgressMax: Cardinal; { [in] Maximum value of CompressProgress
|
|
(new in 4.1.6) }
|
|
SecondsRemaining: Integer; { [in] Estimated time remaining, or -1
|
|
if not known (new in 5.1.13) }
|
|
BytesCompressedPerSecond: Cardinal); { [in] Average bytes compressed
|
|
per second (new in 5.1.13) }
|
|
|
|
iscbNotifyPreproc: (
|
|
PreprocessedScript: PChar; { [in] Preprocessed script (new in 6.1.0) }
|
|
IncludedFilenames: PChar); { [in] Names of #included files. Each name is
|
|
a null-terminated string, and the final
|
|
name is followed by an additional null
|
|
character (new in 6.1.0) }
|
|
|
|
iscbNotifySuccess: (
|
|
OutputExeFilename: PChar; { [in] The name of the resulting setup.exe,
|
|
or empty if output was disabled
|
|
(latter new in 5.5.5) }
|
|
DebugInfo: Pointer; { [in] Debug info (new in 3.0.0.1) }
|
|
DebugInfoSize: Cardinal); { [in] Size of debug info (new in 3.0.0.1) }
|
|
|
|
iscbNotifyError: (
|
|
ErrorMsg: PChar; { [in] The error message, or NULL if compilation
|
|
was aborted by the application. }
|
|
ErrorFilename: PChar; { [in] Filename in which the error occurred. This
|
|
is NULL if the file is the main script. }
|
|
ErrorLine: Integer); { [in] The line number the error occurred on.
|
|
Zero if the error doesn't apply to any
|
|
particular line. }
|
|
end;
|
|
|
|
TCompilerCallbackProc = function(Code: Integer;
|
|
var Data: TCompilerCallbackData; AppData: Longint): Integer; stdcall;
|
|
|
|
PCompileScriptParamsEx = ^TCompileScriptParamsEx;
|
|
TCompileScriptParamsEx = record
|
|
Size: Cardinal; { [in] Set to SizeOf(TCompileScriptParamsEx). }
|
|
CompilerPath: PChar; { [in] The "compiler:" directory. This is the
|
|
directory which contains the *.e32 files. If this
|
|
is set to NULL, the compiler will use the directory
|
|
containing the compiler DLL/EXE. }
|
|
SourcePath: PChar; { [in] The default source directory, and directory to
|
|
look in for #include files. Normally, this is
|
|
the directory containing the script file. This
|
|
cannot be NULL. }
|
|
CallbackProc: TCompilerCallbackProc;
|
|
{ [in] The callback procedure which the compiler calls
|
|
to read the script and for status notification. }
|
|
AppData: Longint; { [in] Application-defined. AppData is passed to the
|
|
callback function. }
|
|
Options: PChar; { [in] Additional options. Each option is a
|
|
null-terminated string, and the final option is
|
|
followed by an additional null character.
|
|
If you do not wish to specify any options, set this
|
|
field to NULL or to point to a single null
|
|
character.
|
|
|
|
Currently supported options:
|
|
|
|
Output=(0|no|false|1|yes|true)
|
|
Enables or disables output.
|
|
OutputBaseFilename=[filename]
|
|
Overrides any OutputBaseFilename setting in the
|
|
script; causes the compiler to use [filename]
|
|
instead.
|
|
OutputDir=[path]
|
|
Overrides any output directory in the script;
|
|
causes the compiler to use [path] instead.
|
|
SignTool-[name]=[command]
|
|
Configures a SignTool with name [name] and command
|
|
[command].
|
|
ISPP:[isppoption]
|
|
Configures an ISPP option. }
|
|
end;
|
|
|
|
{ The old TCompileScriptParams record. Use this in place of
|
|
TCompileScriptParamsEx if you need call ISCmplr.dll versions below
|
|
5.0.5. It's the same except it lacks an Options field. }
|
|
TCompileScriptParams = record
|
|
Size: Cardinal; { [in] Set to SizeOf(TCompileScriptParams). }
|
|
CompilerPath: PChar;
|
|
SourcePath: PChar;
|
|
CallbackProc: TCompilerCallbackProc;
|
|
AppData: Longint;
|
|
end;
|
|
|
|
PCompilerVersionInfo = ^TCompilerVersionInfo;
|
|
TCompilerVersionInfo = record
|
|
Title: PAnsiChar; { Name of compiler engine - 'Inno Setup' }
|
|
Version: PAnsiChar; { Version number text }
|
|
BinVersion: Cardinal; { Version number as an integer }
|
|
end;
|
|
|
|
implementation
|
|
|
|
end.
|