update to 0.7.3
This commit is contained in:
parent
7e8bbfcd86
commit
30ce6f00fc
92
Unit1.fmx
92
Unit1.fmx
|
@ -3589,7 +3589,7 @@ object Form1: TForm1
|
||||||
Size.Width = 110.000000000000000000
|
Size.Width = 110.000000000000000000
|
||||||
Size.Height = 20.000000000000000000
|
Size.Height = 20.000000000000000000
|
||||||
Size.PlatformDefault = False
|
Size.PlatformDefault = False
|
||||||
TabOrder = 2
|
TabOrder = 1
|
||||||
Text = 'Skip verification'
|
Text = 'Skip verification'
|
||||||
end
|
end
|
||||||
object CheckBox6: TCheckBox
|
object CheckBox6: TCheckBox
|
||||||
|
@ -3615,51 +3615,9 @@ object Form1: TForm1
|
||||||
Size.Width = 110.000000000000000000
|
Size.Width = 110.000000000000000000
|
||||||
Size.Height = 20.000000000000000000
|
Size.Height = 20.000000000000000000
|
||||||
Size.PlatformDefault = False
|
Size.PlatformDefault = False
|
||||||
TabOrder = 5
|
TabOrder = 3
|
||||||
Text = 'Low memory'
|
Text = 'Low memory'
|
||||||
end
|
end
|
||||||
object Label8: TLabel
|
|
||||||
Align = Left
|
|
||||||
Margins.Left = 8.000000000000000000
|
|
||||||
Margins.Top = 8.000000000000000000
|
|
||||||
Margins.Bottom = 8.000000000000000000
|
|
||||||
Position.X = 362.000000000000000000
|
|
||||||
Position.Y = 8.000000000000000000
|
|
||||||
Size.Width = 80.000000000000000000
|
|
||||||
Size.Height = 20.000000000000000000
|
|
||||||
Size.PlatformDefault = False
|
|
||||||
Text = 'GPU'
|
|
||||||
TabOrder = 1
|
|
||||||
end
|
|
||||||
object ComboEdit3: TComboEdit
|
|
||||||
Touch.InteractiveGestures = [LongTap, DoubleTap]
|
|
||||||
Align = Left
|
|
||||||
TabOrder = 4
|
|
||||||
ItemHeight = 19.000000000000000000
|
|
||||||
Items.Strings = (
|
|
||||||
'0%'
|
|
||||||
'10%'
|
|
||||||
'25%'
|
|
||||||
'50%'
|
|
||||||
'75%'
|
|
||||||
'64MB'
|
|
||||||
'128MB'
|
|
||||||
'256MB'
|
|
||||||
'512MB'
|
|
||||||
'1GB'
|
|
||||||
'2GB'
|
|
||||||
'4GB')
|
|
||||||
ItemIndex = 0
|
|
||||||
Text = '0%'
|
|
||||||
Position.X = 450.000000000000000000
|
|
||||||
Position.Y = 8.000000000000000000
|
|
||||||
Margins.Left = 8.000000000000000000
|
|
||||||
Margins.Top = 8.000000000000000000
|
|
||||||
Margins.Bottom = 8.000000000000000000
|
|
||||||
Size.Width = 80.000000000000000000
|
|
||||||
Size.Height = 20.000000000000000000
|
|
||||||
Size.PlatformDefault = False
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object GroupBox3: TGroupBox
|
object GroupBox3: TGroupBox
|
||||||
|
@ -6041,7 +5999,7 @@ object Form1: TForm1
|
||||||
object SpinBox13: TSpinBox
|
object SpinBox13: TSpinBox
|
||||||
Touch.InteractiveGestures = [LongTap, DoubleTap]
|
Touch.InteractiveGestures = [LongTap, DoubleTap]
|
||||||
Align = Left
|
Align = Left
|
||||||
TabOrder = 2
|
TabOrder = 1
|
||||||
Cursor = crIBeam
|
Cursor = crIBeam
|
||||||
DecimalDigits = 0
|
DecimalDigits = 0
|
||||||
Min = 1.000000000000000000
|
Min = 1.000000000000000000
|
||||||
|
@ -6066,51 +6024,9 @@ object Form1: TForm1
|
||||||
Size.Width = 110.000000000000000000
|
Size.Width = 110.000000000000000000
|
||||||
Size.Height = 20.000000000000000000
|
Size.Height = 20.000000000000000000
|
||||||
Size.PlatformDefault = False
|
Size.PlatformDefault = False
|
||||||
TabOrder = 5
|
TabOrder = 3
|
||||||
Text = 'Verbose'
|
Text = 'Verbose'
|
||||||
end
|
end
|
||||||
object Label22: TLabel
|
|
||||||
Align = Left
|
|
||||||
Margins.Left = 8.000000000000000000
|
|
||||||
Margins.Top = 8.000000000000000000
|
|
||||||
Margins.Bottom = 8.000000000000000000
|
|
||||||
Position.X = 302.000000000000000000
|
|
||||||
Position.Y = 8.000000000000000000
|
|
||||||
Size.Width = 80.000000000000000000
|
|
||||||
Size.Height = 20.000000000000000000
|
|
||||||
Size.PlatformDefault = False
|
|
||||||
Text = 'GPU'
|
|
||||||
TabOrder = 1
|
|
||||||
end
|
|
||||||
object ComboEdit4: TComboEdit
|
|
||||||
Touch.InteractiveGestures = [LongTap, DoubleTap]
|
|
||||||
Align = Left
|
|
||||||
TabOrder = 4
|
|
||||||
ItemHeight = 19.000000000000000000
|
|
||||||
Items.Strings = (
|
|
||||||
'0%'
|
|
||||||
'10%'
|
|
||||||
'25%'
|
|
||||||
'50%'
|
|
||||||
'75%'
|
|
||||||
'64MB'
|
|
||||||
'128MB'
|
|
||||||
'256MB'
|
|
||||||
'512MB'
|
|
||||||
'1GB'
|
|
||||||
'2GB'
|
|
||||||
'4GB')
|
|
||||||
ItemIndex = 0
|
|
||||||
Text = '0%'
|
|
||||||
Position.X = 390.000000000000000000
|
|
||||||
Position.Y = 8.000000000000000000
|
|
||||||
Margins.Left = 8.000000000000000000
|
|
||||||
Margins.Top = 8.000000000000000000
|
|
||||||
Margins.Bottom = 8.000000000000000000
|
|
||||||
Size.Width = 80.000000000000000000
|
|
||||||
Size.Height = 20.000000000000000000
|
|
||||||
Size.PlatformDefault = False
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object GroupBox36: TGroupBox
|
object GroupBox36: TGroupBox
|
||||||
|
|
|
@ -242,10 +242,6 @@ type
|
||||||
Label3: TLabel;
|
Label3: TLabel;
|
||||||
SpinBox3: TSpinBox;
|
SpinBox3: TSpinBox;
|
||||||
CheckBox6: TCheckBox;
|
CheckBox6: TCheckBox;
|
||||||
Label8: TLabel;
|
|
||||||
ComboEdit3: TComboEdit;
|
|
||||||
Label22: TLabel;
|
|
||||||
ComboEdit4: TComboEdit;
|
|
||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
procedure SearchEditButton1Click(Sender: TObject);
|
procedure SearchEditButton1Click(Sender: TObject);
|
||||||
procedure SearchEditButton3Click(Sender: TObject);
|
procedure SearchEditButton3Click(Sender: TObject);
|
||||||
|
@ -383,8 +379,6 @@ begin
|
||||||
Insert('-t' + SpinBox13.Text, CmdStr, Length(CmdStr));
|
Insert('-t' + SpinBox13.Text, CmdStr, Length(CmdStr));
|
||||||
if CheckBox7.IsChecked then
|
if CheckBox7.IsChecked then
|
||||||
Insert('-v', CmdStr, Length(CmdStr));
|
Insert('-v', CmdStr, Length(CmdStr));
|
||||||
Insert('-g' + ReplaceText(ReplaceText(ComboEdit4.Text, '%', 'p'), ' ', ''),
|
|
||||||
CmdStr, Length(CmdStr));
|
|
||||||
Insert('-bd' + Edit6.Text, CmdStr, Length(CmdStr));
|
Insert('-bd' + Edit6.Text, CmdStr, Length(CmdStr));
|
||||||
Insert(Edit25.Text, CmdStr, Length(CmdStr));
|
Insert(Edit25.Text, CmdStr, Length(CmdStr));
|
||||||
case DecodeMode of
|
case DecodeMode of
|
||||||
|
@ -425,8 +419,6 @@ begin
|
||||||
Insert('-l' + SpinBox7.Text + IfThen(SameText(ComboEdit2.Text, 'Auto'), '',
|
Insert('-l' + SpinBox7.Text + IfThen(SameText(ComboEdit2.Text, 'Auto'), '',
|
||||||
'x') + S, CmdStr, Length(CmdStr));
|
'x') + S, CmdStr, Length(CmdStr));
|
||||||
end;
|
end;
|
||||||
Insert('-g' + ReplaceText(ReplaceText(ComboEdit3.Text, '%', 'p'), ' ', ''),
|
|
||||||
CmdStr, Length(CmdStr));
|
|
||||||
Insert('-bd' + Edit6.Text, CmdStr, Length(CmdStr));
|
Insert('-bd' + Edit6.Text, CmdStr, Length(CmdStr));
|
||||||
Insert(Edit1.Text, CmdStr, Length(CmdStr));
|
Insert(Edit1.Text, CmdStr, Length(CmdStr));
|
||||||
if ComboBox3.ItemIndex = 1 then
|
if ComboBox3.ItemIndex = 1 then
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
ES_R48 (0.7.3)
|
||||||
|
- minor bug fixes
|
||||||
|
|
||||||
ES_R47 (0.7.2)
|
ES_R47 (0.7.2)
|
||||||
- memory usage optimizations
|
- memory usage optimizations
|
||||||
|
|
||||||
|
|
616
common/Utils.pas
616
common/Utils.pas
|
@ -3,7 +3,7 @@ unit Utils;
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Threading, OpenCL, SynCommons,
|
Threading, OpenCL, SynCommons, lz4lib, ZSTDLib,
|
||||||
WinAPI.Windows, WinAPI.PsAPI,
|
WinAPI.Windows, WinAPI.PsAPI,
|
||||||
System.SysUtils, System.Classes, System.SyncObjs, System.Math, System.Types,
|
System.SysUtils, System.Classes, System.SyncObjs, System.Math, System.Types,
|
||||||
System.AnsiStrings, System.StrUtils, System.IniFiles, System.IOUtils,
|
System.AnsiStrings, System.StrUtils, System.IniFiles, System.IOUtils,
|
||||||
|
@ -11,6 +11,12 @@ uses
|
||||||
System.Net.HttpClient,
|
System.Net.HttpClient,
|
||||||
System.Generics.Defaults, System.Generics.Collections;
|
System.Generics.Defaults, System.Generics.Collections;
|
||||||
|
|
||||||
|
const
|
||||||
|
{$IFDEF CPU32BITS}
|
||||||
|
MEM_LIMIT = 1792 * 1024 * 1024;
|
||||||
|
{$ELSE}
|
||||||
|
MEM_LIMIT = Int64.MaxValue;
|
||||||
|
{$ENDIF}
|
||||||
procedure ShowMessage(Msg: string; Caption: string = '');
|
procedure ShowMessage(Msg: string; Caption: string = '');
|
||||||
procedure WriteLine(S: String);
|
procedure WriteLine(S: String);
|
||||||
function GetModuleName: string;
|
function GetModuleName: string;
|
||||||
|
@ -45,16 +51,6 @@ procedure SetBits(var Data: UInt64; Value: Int64; Index: TInt64_BitIndex;
|
||||||
Count: TInt64_BitCount); overload;
|
Count: TInt64_BitCount); overload;
|
||||||
|
|
||||||
type
|
type
|
||||||
PDynArrayRec = ^TDynArrayRec;
|
|
||||||
|
|
||||||
TDynArrayRec = packed record
|
|
||||||
{$IFDEF CPUX64}
|
|
||||||
_Padding: LongInt;
|
|
||||||
{$ENDIF}
|
|
||||||
RefCnt: LongInt;
|
|
||||||
Length: NativeInt;
|
|
||||||
end;
|
|
||||||
|
|
||||||
TListEx<T> = class(TList<T>)
|
TListEx<T> = class(TList<T>)
|
||||||
private
|
private
|
||||||
FIndex: Integer;
|
FIndex: Integer;
|
||||||
|
@ -280,26 +276,53 @@ type
|
||||||
property OutSize: Int64 read FOutSize;
|
property OutSize: Int64 read FOutSize;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TStoreStream = class(TMemoryStreamEx)
|
||||||
|
protected
|
||||||
|
FOnFull: TStreamProc;
|
||||||
|
public
|
||||||
|
constructor Create(ASize: NativeInt); overload;
|
||||||
|
destructor Destroy; override;
|
||||||
|
function Write(const Buffer; Count: Integer): Integer; override;
|
||||||
|
procedure Flush;
|
||||||
|
property OnFull: TStreamProc read FOnFull write FOnFull;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TCacheCompression = (ccNone, ccLZ4, ccZSTD);
|
||||||
|
|
||||||
TCacheReadStream = class(TStream)
|
TCacheReadStream = class(TStream)
|
||||||
|
protected
|
||||||
|
function FCallback(ASize: Int64): Boolean;
|
||||||
|
procedure FOnFull(Stream: TStream);
|
||||||
private const
|
private const
|
||||||
FBufferSize = 4 * 1024 * 1024;
|
FBufferSize = 4 * 1024 * 1024;
|
||||||
private
|
private
|
||||||
FSync: TSynLocker;
|
FSync: TSynLocker;
|
||||||
FOwnStream: Boolean;
|
FOwnStream: Boolean;
|
||||||
FInput, FCache: TStream;
|
FInput, FCache: TStream;
|
||||||
FBuffer: Pointer;
|
FStorage1: TStoreStream;
|
||||||
|
FStorage2: TMemoryStreamEx;
|
||||||
|
FCompBuffer: Pointer;
|
||||||
|
FCompBufferSize: Integer;
|
||||||
FTask: TTask;
|
FTask: TTask;
|
||||||
FPosition1, FPosition2: Int64;
|
FPosition1, FPosition2: Int64;
|
||||||
FAvaiSize, FMaxSize: Int64;
|
FUsedSize, FMaxSize: Int64;
|
||||||
FDone: Boolean;
|
FDone: Boolean;
|
||||||
|
FComp: TCacheCompression;
|
||||||
|
FCCtx: ZSTD_CCtx;
|
||||||
|
FDCtx: ZSTD_DCtx;
|
||||||
|
FCached: Int64;
|
||||||
procedure CacheMemory;
|
procedure CacheMemory;
|
||||||
public
|
public
|
||||||
constructor Create(Input, Cache: TStream; AOwnStream: Boolean = True);
|
constructor Create(Input, Cache: TStream; AOwnStream: Boolean = True;
|
||||||
|
AComp: TCacheCompression = ccNone);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
function Read(var Buffer; Count: Integer): Integer; override;
|
function Read(var Buffer; Count: Integer): Integer; override;
|
||||||
|
function Cached(Compressed: PInt64): Int64;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TCacheWriteStream = class(TStream)
|
TCacheWriteStream = class(TStream)
|
||||||
|
protected
|
||||||
|
procedure FOnFull(Stream: TStream);
|
||||||
private const
|
private const
|
||||||
FBufferSize = 4 * 1024 * 1024;
|
FBufferSize = 4 * 1024 * 1024;
|
||||||
private
|
private
|
||||||
|
@ -307,15 +330,24 @@ type
|
||||||
FOwnStream: Boolean;
|
FOwnStream: Boolean;
|
||||||
FOutput, FCache: TStream;
|
FOutput, FCache: TStream;
|
||||||
FBuffer: Pointer;
|
FBuffer: Pointer;
|
||||||
|
FStorage: TStoreStream;
|
||||||
|
FCompBuffer: Pointer;
|
||||||
|
FCompBufferSize: Integer;
|
||||||
FTask: TTask;
|
FTask: TTask;
|
||||||
FPosition1, FPosition2: Int64;
|
FPosition1, FPosition2: Int64;
|
||||||
FUsedSize, FMaxSize: Int64;
|
FUsedSize, FMaxSize: Int64;
|
||||||
FDone: Boolean;
|
FDone: Boolean;
|
||||||
|
FComp: TCacheCompression;
|
||||||
|
FCCtx: ZSTD_CCtx;
|
||||||
|
FDCtx: ZSTD_DCtx;
|
||||||
|
FCached: Int64;
|
||||||
procedure CacheMemory;
|
procedure CacheMemory;
|
||||||
public
|
public
|
||||||
constructor Create(Output, Cache: TStream; AOwnStream: Boolean = True);
|
constructor Create(Output, Cache: TStream; AOwnStream: Boolean = True;
|
||||||
|
AComp: TCacheCompression = ccNone);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
function Write(const Buffer; Count: LongInt): LongInt; override;
|
function Write(const Buffer; Count: LongInt): LongInt; override;
|
||||||
|
function Cached(Compressed: PInt64): Int64;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TGPUMemoryStream = class(TStream)
|
TGPUMemoryStream = class(TStream)
|
||||||
|
@ -484,9 +516,9 @@ function GenerateGUID: string;
|
||||||
function CalculateEntropy(Buffer: Pointer; BufferSize: Integer): Single;
|
function CalculateEntropy(Buffer: Pointer; BufferSize: Integer): Single;
|
||||||
|
|
||||||
function CopyStream(AStream1, AStream2: TStream; ASize: Int64 = Int64.MaxValue;
|
function CopyStream(AStream1, AStream2: TStream; ASize: Int64 = Int64.MaxValue;
|
||||||
ACallback: TProc<Int64> = nil): Int64;
|
ACallback: TFunc<Int64, Boolean> = nil): Int64;
|
||||||
procedure CopyStreamEx(AStream1, AStream2: TStream; ASize: Int64;
|
procedure CopyStreamEx(AStream1, AStream2: TStream; ASize: Int64;
|
||||||
ACallback: TProc<Int64> = nil);
|
ACallback: TFunc<Int64, Boolean> = nil);
|
||||||
|
|
||||||
function EndianSwap(A: Single): Single; overload;
|
function EndianSwap(A: Single): Single; overload;
|
||||||
function EndianSwap(A: double): double; overload;
|
function EndianSwap(A: double): double; overload;
|
||||||
|
@ -1156,7 +1188,7 @@ begin
|
||||||
if FileExists(FPath) then
|
if FileExists(FPath) then
|
||||||
FBaseDir := ExtractFilePath(TPath.GetFullPath(FPath))
|
FBaseDir := ExtractFilePath(TPath.GetFullPath(FPath))
|
||||||
else if DirectoryExists(FPath) then
|
else if DirectoryExists(FPath) then
|
||||||
FBaseDir := IncludeTrailingBackSlash(TPath.GetFullPath(FPath))
|
FBaseDir := IncludeTrailingPathDelimiter(TPath.GetFullPath(FPath))
|
||||||
else
|
else
|
||||||
FBaseDir := ExtractFilePath(TPath.GetFullPath(FPath));
|
FBaseDir := ExtractFilePath(TPath.GetFullPath(FPath));
|
||||||
FList := GetFileList([FPath], True);
|
FList := GetFileList([FPath], True);
|
||||||
|
@ -1258,7 +1290,7 @@ constructor TDirOutputStream.Create(const APath: String);
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
FState := TState.oNone;
|
FState := TState.oNone;
|
||||||
FPath := IncludeTrailingBackSlash(TPath.GetFullPath(APath));
|
FPath := IncludeTrailingPathDelimiter(TPath.GetFullPath(APath));
|
||||||
FStream := nil;
|
FStream := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -1921,7 +1953,42 @@ begin
|
||||||
Result := WaitForSingleObject(FProcessInfo.hProcess, 0) = WAIT_TIMEOUT;
|
Result := WaitForSingleObject(FProcessInfo.hProcess, 0) = WAIT_TIMEOUT;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
constructor TCacheReadStream.Create(Input, Cache: TStream; AOwnStream: Boolean);
|
constructor TStoreStream.Create(ASize: NativeInt);
|
||||||
|
begin
|
||||||
|
inherited Create(False, GetMemory(ASize), ASize);
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TStoreStream.Destroy;
|
||||||
|
begin
|
||||||
|
if Assigned(FOnFull) then
|
||||||
|
if Size > 0 then
|
||||||
|
FOnFull(Self);
|
||||||
|
if Assigned(FMemory) then
|
||||||
|
FreeMemory(FMemory);
|
||||||
|
inherited Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TStoreStream.Write(const Buffer; Count: Integer): Integer;
|
||||||
|
begin
|
||||||
|
if FSize = FMaxSize then
|
||||||
|
begin
|
||||||
|
if Assigned(FOnFull) then
|
||||||
|
FOnFull(Self);
|
||||||
|
Size := 0;
|
||||||
|
end;
|
||||||
|
Result := inherited Write(Buffer, Count);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TStoreStream.Flush;
|
||||||
|
begin
|
||||||
|
if Assigned(FOnFull) then
|
||||||
|
if Size > 0 then
|
||||||
|
FOnFull(Self);
|
||||||
|
Size := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TCacheReadStream.Create(Input, Cache: TStream; AOwnStream: Boolean;
|
||||||
|
AComp: TCacheCompression);
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
FSync.Init;
|
FSync.Init;
|
||||||
|
@ -1930,17 +1997,35 @@ begin
|
||||||
FCache := Cache;
|
FCache := Cache;
|
||||||
FPosition1 := 0;
|
FPosition1 := 0;
|
||||||
FPosition2 := 0;
|
FPosition2 := 0;
|
||||||
FAvaiSize := 0;
|
FUsedSize := 0;
|
||||||
if Assigned(FCache) then
|
if Assigned(FCache) then
|
||||||
FMaxSize := FCache.Size
|
FMaxSize := FCache.Size
|
||||||
else
|
else
|
||||||
FMaxSize := 0;
|
FMaxSize := 0;
|
||||||
FDone := False;
|
FDone := False;
|
||||||
|
FComp := AComp;
|
||||||
FTask := TTask.Create;
|
FTask := TTask.Create;
|
||||||
FTask.Perform(CacheMemory);
|
FTask.Perform(CacheMemory);
|
||||||
if FMaxSize > 0 then
|
if FMaxSize > FBufferSize then
|
||||||
begin
|
begin
|
||||||
GetMem(FBuffer, FBufferSize);
|
FStorage1 := TStoreStream.Create(FBufferSize);
|
||||||
|
FStorage1.OnFull := FOnFull;
|
||||||
|
FStorage2 := TMemoryStreamEx.Create(False, GetMemory(FBufferSize),
|
||||||
|
FBufferSize);
|
||||||
|
case FComp of
|
||||||
|
ccLZ4:
|
||||||
|
FCompBufferSize := LZ4_compressBound(FBufferSize);
|
||||||
|
ccZSTD:
|
||||||
|
begin
|
||||||
|
FCCtx := ZSTD_createCCtx;
|
||||||
|
FDCtx := ZSTD_createDCtx;
|
||||||
|
FCompBufferSize := ZSTD_compressBound(FBufferSize);
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
FCompBufferSize := FBufferSize;
|
||||||
|
end;
|
||||||
|
if FComp > ccNone then
|
||||||
|
GetMem(FCompBuffer, FCompBufferSize);
|
||||||
FTask.Start;
|
FTask.Start;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -1948,91 +2033,181 @@ end;
|
||||||
destructor TCacheReadStream.Destroy;
|
destructor TCacheReadStream.Destroy;
|
||||||
begin
|
begin
|
||||||
FDone := True;
|
FDone := True;
|
||||||
if FMaxSize > 0 then
|
if FMaxSize > FBufferSize then
|
||||||
begin
|
begin
|
||||||
FTask.Wait;
|
FTask.Wait;
|
||||||
FreeMem(FBuffer);
|
case FComp of
|
||||||
|
ccZSTD:
|
||||||
|
begin
|
||||||
|
ZSTD_freeCCtx(FCCtx);
|
||||||
|
ZSTD_freeDCtx(FDCtx);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
FStorage1.Free;
|
||||||
|
if Assigned(FStorage2.Memory) then
|
||||||
|
FreeMemory(FStorage2.Memory);
|
||||||
|
FStorage2.Free;
|
||||||
|
if FComp > ccNone then
|
||||||
|
FreeMem(FCompBuffer);
|
||||||
end;
|
end;
|
||||||
FTask.Free;
|
FTask.Free;
|
||||||
if FOwnStream then
|
if FOwnStream then
|
||||||
if FMaxSize > 0 then
|
if FMaxSize > FBufferSize then
|
||||||
FCache.Free;
|
FCache.Free;
|
||||||
FSync.Done;
|
FSync.Done;
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCacheReadStream.CacheMemory;
|
procedure TCacheReadStream.CacheMemory;
|
||||||
var
|
|
||||||
I: Int64;
|
|
||||||
begin
|
begin
|
||||||
AtomicExchange(I, FAvaiSize);
|
CopyStream(FInput, FStorage1, Int64.MaxValue, FCallback);
|
||||||
I := FInput.Read(FBuffer^, Min(FBufferSize, Min(FMaxSize - I,
|
FStorage1.Flush;
|
||||||
FMaxSize - (FPosition1 mod FMaxSize))));
|
|
||||||
FSync.Lock;
|
|
||||||
try
|
|
||||||
FCache.Position := FPosition1 mod FMaxSize;
|
|
||||||
FCache.WriteBuffer(FBuffer^, I);
|
|
||||||
finally
|
|
||||||
FSync.UnLock;
|
|
||||||
end;
|
|
||||||
while (I > 0) and (FDone = False) do
|
|
||||||
begin
|
|
||||||
Inc(FPosition1, I);
|
|
||||||
I := AtomicIncrement(FAvaiSize, I);
|
|
||||||
while I = FMaxSize do
|
|
||||||
begin
|
|
||||||
Sleep(1);
|
|
||||||
AtomicExchange(I, FAvaiSize);
|
|
||||||
if FDone then
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
I := FInput.Read(FBuffer^, Min(FBufferSize, Min(FMaxSize - I,
|
|
||||||
FMaxSize - (FPosition1 mod FMaxSize))));
|
|
||||||
FSync.Lock;
|
|
||||||
try
|
|
||||||
FCache.Position := FPosition1 mod FMaxSize;
|
|
||||||
FCache.WriteBuffer(FBuffer^, I);
|
|
||||||
finally
|
|
||||||
FSync.UnLock;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
FDone := True;
|
FDone := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCacheReadStream.Read(var Buffer; Count: Integer): Integer;
|
function TCacheReadStream.Read(var Buffer; Count: Integer): Integer;
|
||||||
var
|
var
|
||||||
I: Int64;
|
I: Int64;
|
||||||
|
J: Integer;
|
||||||
|
|
||||||
|
procedure DoRead;
|
||||||
|
begin
|
||||||
|
J := I;
|
||||||
|
if (FPosition2 mod FMaxSize) + FCompBufferSize >= FMaxSize then
|
||||||
|
FCache.ReadBuffer(FStorage2.Memory^, I)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if FComp > ccNone then
|
||||||
|
begin
|
||||||
|
FCache.ReadBuffer(J, J.Size);
|
||||||
|
FCache.ReadBuffer(FCompBuffer^, J);
|
||||||
|
I := J.Size + J;
|
||||||
|
end;
|
||||||
|
case FComp of
|
||||||
|
ccLZ4:
|
||||||
|
J := LZ4_decompress_safe(FCompBuffer, FStorage2.Memory, J,
|
||||||
|
FCompBufferSize);
|
||||||
|
ccZSTD:
|
||||||
|
J := ZSTD_decompressDCtx(FDCtx, FStorage2.Memory, FCompBufferSize,
|
||||||
|
FCompBuffer, J);
|
||||||
|
else
|
||||||
|
FCache.ReadBuffer(FStorage2.Memory^, I);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
FStorage2.Size := J;
|
||||||
|
AtomicDecrement(FCached, J);
|
||||||
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if FMaxSize <= 0 then
|
if FMaxSize <= FBufferSize then
|
||||||
begin
|
begin
|
||||||
Result := FInput.Read(Buffer, Count);
|
Result := FInput.Read(Buffer, Count);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
if Count <= 0 then
|
if Count <= 0 then
|
||||||
exit(0);
|
exit(0);
|
||||||
AtomicExchange(I, FAvaiSize);
|
if FStorage2.Position = FStorage2.Size then
|
||||||
if I = 0 then
|
begin
|
||||||
while True do
|
AtomicExchange(I, FUsedSize);
|
||||||
begin
|
if I = 0 then
|
||||||
Sleep(1);
|
while True do
|
||||||
AtomicExchange(I, FAvaiSize);
|
begin
|
||||||
if (I > 0) or ((I = 0) and FDone) then
|
Sleep(1);
|
||||||
break;
|
AtomicExchange(I, FUsedSize);
|
||||||
|
if (I > 0) or ((I = 0) and FDone) then
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
I := Min(FBufferSize, Min(I, FMaxSize - (FPosition2 mod FMaxSize)));
|
||||||
|
if I <= 0 then
|
||||||
|
exit(0);
|
||||||
|
FSync.Lock;
|
||||||
|
try
|
||||||
|
FCache.Position := FPosition2 mod FMaxSize;
|
||||||
|
DoRead;
|
||||||
|
finally
|
||||||
|
FSync.UnLock;
|
||||||
end;
|
end;
|
||||||
Result := Min(Count, Min(I, FMaxSize - (FPosition2 mod FMaxSize)));
|
Inc(FPosition2, I);
|
||||||
FSync.Lock;
|
AtomicDecrement(FUsedSize, I);
|
||||||
try
|
FStorage2.Position := 0;
|
||||||
FCache.Position := FPosition2 mod FMaxSize;
|
|
||||||
FCache.ReadBuffer(Buffer, Result);
|
|
||||||
finally
|
|
||||||
FSync.UnLock;
|
|
||||||
end;
|
end;
|
||||||
Inc(FPosition2, Result);
|
Result := FStorage2.Read(Buffer, Count);
|
||||||
AtomicDecrement(FAvaiSize, Result);
|
end;
|
||||||
|
|
||||||
|
function TCacheReadStream.FCallback(ASize: Int64): Boolean;
|
||||||
|
begin
|
||||||
|
Result := FDone = False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCacheReadStream.FOnFull(Stream: TStream);
|
||||||
|
var
|
||||||
|
I: Int64;
|
||||||
|
J, X, Y: Integer;
|
||||||
|
Ptr: PByte;
|
||||||
|
begin
|
||||||
|
X := 0;
|
||||||
|
while X < Stream.Size do
|
||||||
|
begin
|
||||||
|
repeat
|
||||||
|
AtomicExchange(I, FUsedSize);
|
||||||
|
while I = FMaxSize do
|
||||||
|
begin
|
||||||
|
Sleep(1);
|
||||||
|
AtomicExchange(I, FUsedSize);
|
||||||
|
if FDone then
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
I := Min(Stream.Size - X, Min(FMaxSize - I,
|
||||||
|
FMaxSize - (FPosition1 mod FMaxSize)));
|
||||||
|
Sleep(1);
|
||||||
|
until I > 0;
|
||||||
|
AtomicIncrement(FCached, I);
|
||||||
|
Ptr := PByte(TStoreStream(Stream).Memory) + X;
|
||||||
|
Inc(X, I);
|
||||||
|
FSync.Lock;
|
||||||
|
try
|
||||||
|
FCache.Position := FPosition1 mod FMaxSize;
|
||||||
|
if (FPosition1 mod FMaxSize) + FCompBufferSize >= FMaxSize then
|
||||||
|
FCache.WriteBuffer(Ptr^, I)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
case FComp of
|
||||||
|
ccLZ4:
|
||||||
|
J := LZ4_compress_fast(Pointer(Ptr), FCompBuffer, I,
|
||||||
|
FCompBufferSize, 1);
|
||||||
|
ccZSTD:
|
||||||
|
J := ZSTD_compressCCtx(FCCtx, FCompBuffer, FCompBufferSize,
|
||||||
|
Pointer(Ptr), I, 1);
|
||||||
|
else
|
||||||
|
FCache.WriteBuffer(Ptr^, I);
|
||||||
|
end;
|
||||||
|
if FComp > ccNone then
|
||||||
|
begin
|
||||||
|
FCache.WriteBuffer(J, J.Size);
|
||||||
|
FCache.WriteBuffer(FCompBuffer^, J);
|
||||||
|
I := J.Size + J;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FSync.UnLock;
|
||||||
|
end;
|
||||||
|
Inc(FPosition1, I);
|
||||||
|
AtomicIncrement(FUsedSize, I);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TCacheReadStream.Cached(Compressed: PInt64): Int64;
|
||||||
|
begin
|
||||||
|
AtomicExchange(Result, FUsedSize);
|
||||||
|
if Assigned(Compressed) then
|
||||||
|
if FComp > ccNone then
|
||||||
|
Compressed^ := FCached
|
||||||
|
else
|
||||||
|
Compressed^ := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
constructor TCacheWriteStream.Create(Output, Cache: TStream;
|
constructor TCacheWriteStream.Create(Output, Cache: TStream;
|
||||||
AOwnStream: Boolean);
|
AOwnStream: Boolean; AComp: TCacheCompression);
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
FSync.Init;
|
FSync.Init;
|
||||||
|
@ -2047,37 +2222,56 @@ begin
|
||||||
else
|
else
|
||||||
FMaxSize := 0;
|
FMaxSize := 0;
|
||||||
FDone := False;
|
FDone := False;
|
||||||
|
FComp := AComp;
|
||||||
FTask := TTask.Create;
|
FTask := TTask.Create;
|
||||||
FTask.Perform(CacheMemory);
|
FTask.Perform(CacheMemory);
|
||||||
if FMaxSize > 0 then
|
if FMaxSize > FBufferSize then
|
||||||
begin
|
begin
|
||||||
GetMem(FBuffer, FBufferSize);
|
GetMem(FBuffer, FBufferSize);
|
||||||
|
FStorage := TStoreStream.Create(FBufferSize);
|
||||||
|
FStorage.OnFull := FOnFull;
|
||||||
|
case FComp of
|
||||||
|
ccLZ4:
|
||||||
|
FCompBufferSize := LZ4_compressBound(FBufferSize);
|
||||||
|
ccZSTD:
|
||||||
|
begin
|
||||||
|
FCCtx := ZSTD_createCCtx;
|
||||||
|
FDCtx := ZSTD_createDCtx;
|
||||||
|
FCompBufferSize := ZSTD_compressBound(FBufferSize);
|
||||||
|
end;
|
||||||
|
else
|
||||||
|
FCompBufferSize := FBufferSize;
|
||||||
|
end;
|
||||||
|
if FComp > ccNone then
|
||||||
|
GetMem(FCompBuffer, FCompBufferSize);
|
||||||
FTask.Start;
|
FTask.Start;
|
||||||
end;
|
end;
|
||||||
|
FCached := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TCacheWriteStream.Destroy;
|
destructor TCacheWriteStream.Destroy;
|
||||||
var
|
var
|
||||||
I: Int64;
|
I: Int64;
|
||||||
begin
|
begin
|
||||||
if FMaxSize > 0 then
|
if FMaxSize > FBufferSize then
|
||||||
begin
|
|
||||||
AtomicExchange(I, FUsedSize);
|
|
||||||
while I > 0 do
|
|
||||||
begin
|
|
||||||
Sleep(1);
|
|
||||||
AtomicExchange(I, FUsedSize);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
FDone := True;
|
|
||||||
if FMaxSize > 0 then
|
|
||||||
begin
|
begin
|
||||||
|
FStorage.Free;
|
||||||
|
FDone := True;
|
||||||
FTask.Wait;
|
FTask.Wait;
|
||||||
|
case FComp of
|
||||||
|
ccZSTD:
|
||||||
|
begin
|
||||||
|
ZSTD_freeCCtx(FCCtx);
|
||||||
|
ZSTD_freeDCtx(FDCtx);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
FreeMem(FBuffer);
|
FreeMem(FBuffer);
|
||||||
|
if FComp > ccNone then
|
||||||
|
FreeMem(FCompBuffer);
|
||||||
end;
|
end;
|
||||||
FTask.Free;
|
FTask.Free;
|
||||||
if FOwnStream then
|
if FOwnStream then
|
||||||
if FMaxSize > 0 then
|
if FMaxSize > FBufferSize then
|
||||||
FCache.Free;
|
FCache.Free;
|
||||||
FSync.Done;
|
FSync.Done;
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
|
@ -2086,17 +2280,36 @@ end;
|
||||||
procedure TCacheWriteStream.CacheMemory;
|
procedure TCacheWriteStream.CacheMemory;
|
||||||
var
|
var
|
||||||
I: Int64;
|
I: Int64;
|
||||||
begin
|
J: Integer;
|
||||||
AtomicExchange(I, FUsedSize);
|
|
||||||
I := Min(FBufferSize, Min(I, FMaxSize - (FPosition1 mod FMaxSize)));
|
procedure DoRead;
|
||||||
FSync.Lock;
|
begin
|
||||||
try
|
J := I;
|
||||||
FCache.Position := FPosition1 mod FMaxSize;
|
if (FPosition1 mod FMaxSize) + FCompBufferSize >= FMaxSize then
|
||||||
FCache.ReadBuffer(FBuffer^, I);
|
FCache.ReadBuffer(FBuffer^, I)
|
||||||
finally
|
else
|
||||||
FSync.UnLock;
|
begin
|
||||||
|
if FComp > ccNone then
|
||||||
|
begin
|
||||||
|
FCache.ReadBuffer(J, J.Size);
|
||||||
|
FCache.ReadBuffer(FCompBuffer^, J);
|
||||||
|
I := J.Size + J;
|
||||||
|
end;
|
||||||
|
case FComp of
|
||||||
|
ccLZ4:
|
||||||
|
J := LZ4_decompress_safe(FCompBuffer, FBuffer, J, FCompBufferSize);
|
||||||
|
ccZSTD:
|
||||||
|
J := ZSTD_decompressDCtx(FDCtx, FBuffer, FCompBufferSize,
|
||||||
|
FCompBuffer, J);
|
||||||
|
else
|
||||||
|
FCache.ReadBuffer(FBuffer^, I);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
AtomicDecrement(FCached, J);
|
||||||
end;
|
end;
|
||||||
FOutput.WriteBuffer(FBuffer^, I);
|
|
||||||
|
begin
|
||||||
|
I := 0;
|
||||||
while True do
|
while True do
|
||||||
begin
|
begin
|
||||||
Inc(FPosition1, I);
|
Inc(FPosition1, I);
|
||||||
|
@ -2110,46 +2323,94 @@ begin
|
||||||
FSync.Lock;
|
FSync.Lock;
|
||||||
try
|
try
|
||||||
FCache.Position := FPosition1 mod FMaxSize;
|
FCache.Position := FPosition1 mod FMaxSize;
|
||||||
FCache.ReadBuffer(FBuffer^, I);
|
DoRead;
|
||||||
finally
|
finally
|
||||||
FSync.UnLock;
|
FSync.UnLock;
|
||||||
end;
|
end;
|
||||||
FOutput.WriteBuffer(FBuffer^, I);
|
FOutput.WriteBuffer(FBuffer^, J);
|
||||||
if FDone and (FPosition1 = FPosition2) then
|
if FDone and (FPosition1 = FPosition2) then
|
||||||
break;
|
break;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCacheWriteStream.Write(const Buffer; Count: LongInt): LongInt;
|
function TCacheWriteStream.Write(const Buffer; Count: LongInt): LongInt;
|
||||||
var
|
|
||||||
I: Int64;
|
|
||||||
begin
|
begin
|
||||||
if FMaxSize <= 0 then
|
if FMaxSize < FBufferSize then
|
||||||
begin
|
begin
|
||||||
FOutput.WriteBuffer(Buffer, Count);
|
FOutput.WriteBuffer(Buffer, Count);
|
||||||
exit(Count);
|
exit(Count);
|
||||||
end;
|
end;
|
||||||
if Count <= 0 then
|
if Count <= 0 then
|
||||||
exit(0);
|
exit(0);
|
||||||
AtomicExchange(I, FUsedSize);
|
Result := FStorage.Write(Buffer, Count);
|
||||||
if I = FMaxSize then
|
end;
|
||||||
while True do
|
|
||||||
begin
|
procedure TCacheWriteStream.FOnFull(Stream: TStream);
|
||||||
Sleep(1);
|
var
|
||||||
|
I: Int64;
|
||||||
|
J, X, Y: Integer;
|
||||||
|
Ptr: PByte;
|
||||||
|
begin
|
||||||
|
X := 0;
|
||||||
|
while X < Stream.Size do
|
||||||
|
begin
|
||||||
|
repeat
|
||||||
AtomicExchange(I, FUsedSize);
|
AtomicExchange(I, FUsedSize);
|
||||||
if (I < FMaxSize) then
|
if I = FMaxSize then
|
||||||
break;
|
while True do
|
||||||
|
begin
|
||||||
|
Sleep(1);
|
||||||
|
AtomicExchange(I, FUsedSize);
|
||||||
|
if (I < FMaxSize) then
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
I := Min(Stream.Size - X, Min(FMaxSize - I,
|
||||||
|
FMaxSize - (FPosition2 mod FMaxSize)));
|
||||||
|
Sleep(1);
|
||||||
|
until I > 0;
|
||||||
|
AtomicIncrement(FCached, I);
|
||||||
|
Ptr := PByte(TStoreStream(Stream).Memory) + X;
|
||||||
|
Inc(X, I);
|
||||||
|
FSync.Lock;
|
||||||
|
try
|
||||||
|
FCache.Position := FPosition2 mod FMaxSize;
|
||||||
|
if (FPosition2 mod FMaxSize) + FCompBufferSize >= FMaxSize then
|
||||||
|
FCache.WriteBuffer(Ptr^, I)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
case FComp of
|
||||||
|
ccLZ4:
|
||||||
|
J := LZ4_compress_fast(Pointer(Ptr), FCompBuffer, I,
|
||||||
|
FCompBufferSize, 1);
|
||||||
|
ccZSTD:
|
||||||
|
J := ZSTD_compressCCtx(FCCtx, FCompBuffer, FCompBufferSize,
|
||||||
|
Pointer(Ptr), I, 1);
|
||||||
|
else
|
||||||
|
FCache.WriteBuffer(Ptr^, I);
|
||||||
|
end;
|
||||||
|
if FComp > ccNone then
|
||||||
|
begin
|
||||||
|
FCache.WriteBuffer(J, J.Size);
|
||||||
|
FCache.WriteBuffer(FCompBuffer^, J);
|
||||||
|
I := J.Size + J;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FSync.UnLock;
|
||||||
end;
|
end;
|
||||||
Result := Min(Count, Min(FMaxSize - I, FMaxSize - (FPosition2 mod FMaxSize)));
|
Inc(FPosition2, I);
|
||||||
FSync.Lock;
|
AtomicIncrement(FUsedSize, I);
|
||||||
try
|
|
||||||
FCache.Position := FPosition2 mod FMaxSize;
|
|
||||||
FCache.WriteBuffer(Buffer, Result);
|
|
||||||
finally
|
|
||||||
FSync.UnLock;
|
|
||||||
end;
|
end;
|
||||||
Inc(FPosition2, Result);
|
end;
|
||||||
AtomicIncrement(FUsedSize, Result);
|
|
||||||
|
function TCacheWriteStream.Cached(Compressed: PInt64): Int64;
|
||||||
|
begin
|
||||||
|
AtomicExchange(Result, FUsedSize);
|
||||||
|
if Assigned(Compressed) then
|
||||||
|
if FComp > ccNone then
|
||||||
|
Compressed^ := FCached
|
||||||
|
else
|
||||||
|
Compressed^ := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
constructor TGPUMemoryStream.Create(ASize: NativeInt);
|
constructor TGPUMemoryStream.Create(ASize: NativeInt);
|
||||||
|
@ -3084,7 +3345,7 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function CopyStream(AStream1, AStream2: TStream; ASize: Int64;
|
function CopyStream(AStream1, AStream2: TStream; ASize: Int64;
|
||||||
ACallback: TProc<Int64>): Int64;
|
ACallback: TFunc<Int64, Boolean>): Int64;
|
||||||
const
|
const
|
||||||
FBufferSize = 65536;
|
FBufferSize = 65536;
|
||||||
var
|
var
|
||||||
|
@ -3102,14 +3363,15 @@ begin
|
||||||
AStream2.WriteBuffer(FBuff[0], I);
|
AStream2.WriteBuffer(FBuff[0], I);
|
||||||
Dec(FSize, I);
|
Dec(FSize, I);
|
||||||
if Assigned(ACallback) then
|
if Assigned(ACallback) then
|
||||||
ACallback(ASize - FSize);
|
if not ACallback(ASize - FSize) then
|
||||||
|
break;
|
||||||
Result := ASize - FSize;
|
Result := ASize - FSize;
|
||||||
I := AStream1.Read(FBuff[0], Min(FBufferSize, FSize));
|
I := AStream1.Read(FBuff[0], Min(FBufferSize, FSize));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure CopyStreamEx(AStream1, AStream2: TStream; ASize: Int64;
|
procedure CopyStreamEx(AStream1, AStream2: TStream; ASize: Int64;
|
||||||
ACallback: TProc<Int64>);
|
ACallback: TFunc<Int64, Boolean>);
|
||||||
const
|
const
|
||||||
FBufferSize = 65536;
|
FBufferSize = 65536;
|
||||||
var
|
var
|
||||||
|
@ -3127,7 +3389,8 @@ begin
|
||||||
AStream2.WriteBuffer(FBuff[0], I);
|
AStream2.WriteBuffer(FBuff[0], I);
|
||||||
Dec(FSize, I);
|
Dec(FSize, I);
|
||||||
if Assigned(ACallback) then
|
if Assigned(ACallback) then
|
||||||
ACallback(ASize - FSize);
|
if not ACallback(ASize - FSize) then
|
||||||
|
break;
|
||||||
I := Min(FBufferSize, FSize);
|
I := Min(FBufferSize, FSize);
|
||||||
AStream1.ReadBuffer(FBuff[0], I);
|
AStream1.ReadBuffer(FBuff[0], I);
|
||||||
end;
|
end;
|
||||||
|
@ -3159,106 +3422,6 @@ begin
|
||||||
C[7] := d[0];
|
C[7] := d[0];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFDEF PUREPASCAL}
|
|
||||||
|
|
||||||
function EndianSwap(A: Int64): Int64;
|
|
||||||
asm
|
|
||||||
{$IF DEFINED(CPUX64)}
|
|
||||||
.NOFRAME
|
|
||||||
{$IFDEF win64}
|
|
||||||
mov rax, rcx
|
|
||||||
{$ELSE}
|
|
||||||
mov rax, rdi
|
|
||||||
{$ENDIF win64}
|
|
||||||
bswap rax
|
|
||||||
{$ELSE}
|
|
||||||
mov edx, A.Int64Rec.Lo
|
|
||||||
mov eax, A.Int64Rec.Hi
|
|
||||||
bswap edx
|
|
||||||
bswap eax
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
|
||||||
|
|
||||||
function EndianSwap(A: UInt64): UInt64;
|
|
||||||
asm
|
|
||||||
{$IF DEFINED(CPUX64)}
|
|
||||||
.NOFRAME
|
|
||||||
{$IFDEF win64}
|
|
||||||
mov rax, rcx
|
|
||||||
{$ELSE}
|
|
||||||
mov rax, rdi
|
|
||||||
{$ENDIF win64}
|
|
||||||
bswap rax
|
|
||||||
{$ELSE}
|
|
||||||
mov edx, A.Int64Rec.Lo
|
|
||||||
mov eax, A.Int64Rec.Hi
|
|
||||||
bswap edx
|
|
||||||
bswap eax
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
|
||||||
|
|
||||||
function EndianSwap(A: Int32): Int32;
|
|
||||||
asm
|
|
||||||
{$IF DEFINED(CPUX64)}
|
|
||||||
.NOFRAME
|
|
||||||
{$IF DEFINED(WIN64)}
|
|
||||||
mov eax, ecx
|
|
||||||
{$ELSE}
|
|
||||||
mov eax, edi
|
|
||||||
{$ENDIF}
|
|
||||||
bswap eax
|
|
||||||
{$ELSEIF DEFINED(CPUX86)}
|
|
||||||
bswap eax
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
|
||||||
|
|
||||||
function EndianSwap(A: UInt32): UInt32;
|
|
||||||
asm
|
|
||||||
{$IF DEFINED(CPUX64)}
|
|
||||||
.NOFRAME
|
|
||||||
{$IF DEFINED(WIN64)}
|
|
||||||
mov eax, ecx
|
|
||||||
{$ELSE}
|
|
||||||
mov eax, edi
|
|
||||||
{$ENDIF}
|
|
||||||
bswap eax
|
|
||||||
{$ELSEIF DEFINED(CPUX86)}
|
|
||||||
bswap eax
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
|
||||||
|
|
||||||
function EndianSwap(A: Int16): Int16;
|
|
||||||
asm
|
|
||||||
{$IF DEFINED(CPUX64)}
|
|
||||||
.NOFRAME
|
|
||||||
{$IF DEFINED(WIN64)}
|
|
||||||
mov ax, cx
|
|
||||||
{$ELSE}
|
|
||||||
mov ax, di
|
|
||||||
{$ENDIF}
|
|
||||||
rol ax,8
|
|
||||||
{$ELSEIF DEFINED(CPUX86)}
|
|
||||||
rol ax,8
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
|
||||||
|
|
||||||
function EndianSwap(A: UInt16): UInt16;
|
|
||||||
asm
|
|
||||||
{$IF DEFINED(CPUX64)}
|
|
||||||
.NOFRAME
|
|
||||||
{$IF DEFINED(WIN64)}
|
|
||||||
mov ax, cx
|
|
||||||
{$ELSE}
|
|
||||||
mov ax, di
|
|
||||||
{$ENDIF}
|
|
||||||
rol ax,8
|
|
||||||
{$ELSEIF DEFINED(CPUX86)}
|
|
||||||
rol ax,8
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
|
||||||
|
|
||||||
{$ELSE}
|
|
||||||
|
|
||||||
function EndianSwap(A: Int64): Int64;
|
function EndianSwap(A: Int64): Int64;
|
||||||
var
|
var
|
||||||
C: array [0 .. 7] of Byte absolute Result;
|
C: array [0 .. 7] of Byte absolute Result;
|
||||||
|
@ -3328,7 +3491,6 @@ begin
|
||||||
C[0] := d[1];
|
C[0] := d[1];
|
||||||
C[1] := d[0];
|
C[1] := d[0];
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
function BinarySearch(SrcMem: Pointer; SrcPos, SrcSize: NativeInt;
|
function BinarySearch(SrcMem: Pointer; SrcPos, SrcSize: NativeInt;
|
||||||
SearchMem: Pointer; SearchSize: NativeInt; var ResultPos: NativeInt): Boolean;
|
SearchMem: Pointer; SearchSize: NativeInt; var ResultPos: NativeInt): Boolean;
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
*.exe
|
||||||
|
*.dcu
|
||||||
|
__history/*.*
|
||||||
|
__recovery/*.*
|
||||||
|
Win32/*.*
|
||||||
|
Win64/*.*
|
||||||
|
__history/libc.pas.~1~
|
||||||
|
__history/libc.pas.~2~
|
||||||
|
__history/libc.pas.~3~
|
||||||
|
__history/libgcc.pas.~11~
|
||||||
|
__history/libgcc.pas.~12~
|
||||||
|
__history/libgcc.pas.~13~
|
||||||
|
__history/libgcc.pas.~14~
|
||||||
|
__history/libgcc.pas.~15~
|
||||||
|
__history/libgcc.pas.~16~
|
||||||
|
__history/libgcc.pas.~17~
|
||||||
|
__history/libgcc.pas.~18~
|
||||||
|
__history/libgcc.pas.~19~
|
||||||
|
__history/libgcc.pas.~20~
|
||||||
|
__history/libmsvcrt.pas.~1~
|
||||||
|
__history/libmsvcrt.pas.~2~
|
||||||
|
__history/libmsvcrt.pas.~3~
|
||||||
|
__history/libmsvcrt.pas.~4~
|
||||||
|
__history/libmsvcrt.pas.~5~
|
||||||
|
__history/libmsvcrt.pas.~6~
|
||||||
|
__history/libmsvcrt.pas.~7~
|
||||||
|
__history/libmsvcrt.pas.~8~
|
||||||
|
__history/libmsvcrt.pas.~9~
|
||||||
|
__history/libucrt.pas.~10~
|
||||||
|
__history/libucrt.pas.~11~
|
||||||
|
__history/libucrt.pas.~12~
|
||||||
|
__history/libucrt.pas.~13~
|
||||||
|
__history/libucrt.pas.~14~
|
||||||
|
__history/libucrt.pas.~15~
|
||||||
|
__history/libucrt.pas.~6~
|
||||||
|
__history/libucrt.pas.~7~
|
||||||
|
__history/libucrt.pas.~8~
|
||||||
|
__history/libucrt.pas.~9~
|
||||||
|
__history/pkglibc.dpk.~1~
|
||||||
|
__history/pkglibc.dpk.~2~
|
||||||
|
__history/pkglibc.dpk.~3~
|
||||||
|
__history/testlibgcc.pas.~1~
|
||||||
|
__history/testlibmsvcrt.pas.~1~
|
||||||
|
__history/testlibmsvcrt.pas.~2~
|
||||||
|
__history/testlibmsvcrt.pas.~3~
|
||||||
|
__history/testlibmsvcrt.pas.~4~
|
||||||
|
__history/testlibmsvcrt.pas.~5~
|
||||||
|
__history/testlibucrt.pas.~1~
|
||||||
|
__history/testlibucrt.pas.~2~
|
||||||
|
__history/testucrt.dpr.~1~
|
||||||
|
__history/testucrt.dpr.~2~
|
||||||
|
__history/testucrt.dpr.~3~
|
||||||
|
__history/testucrt.dpr.~4~
|
||||||
|
__history/testucrt.dpr.~5~
|
|
@ -0,0 +1,8 @@
|
||||||
|
# LIBC
|
||||||
|
a C Run Time library for Delphi, helps link with other C object files
|
||||||
|
|
||||||
|
Delphi come up a build in unit named System.Win.Crtl do the same job. How ever, this build in Unit didn't cover enough C functions.
|
||||||
|
I just copy paste this Unit, and Appends any functions I found when linking other C object files into it.
|
||||||
|
So, it is a better way to use this unit than the buildin one.
|
||||||
|
|
||||||
|
系统自带单元System.Win.Crtl的复制粘贴+扩展版本,覆盖更多的C标准库和一些特定编译器的内建函数,当你想链接的C目标文件调用到这些函数时,添加一句uses libc可能可以帮助你成功链接。
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,457 @@
|
||||||
|
unit libvcruntime140;
|
||||||
|
interface
|
||||||
|
{$IFDEF WIN64}
|
||||||
|
procedure wcsstr;external;
|
||||||
|
{$L x64/libvcruntime140_apps00070.o}
|
||||||
|
procedure wcsrchr;external;
|
||||||
|
{$L x64/libvcruntime140_apps00069.o}
|
||||||
|
procedure wcschr;external;
|
||||||
|
{$L x64/libvcruntime140_apps00068.o}
|
||||||
|
procedure unexpected;external;
|
||||||
|
{$L x64/libvcruntime140_apps00067.o}
|
||||||
|
procedure strstr;external;
|
||||||
|
{$L x64/libvcruntime140_apps00066.o}
|
||||||
|
procedure strrchr;external;
|
||||||
|
{$L x64/libvcruntime140_apps00065.o}
|
||||||
|
procedure strchr;external;
|
||||||
|
{$L x64/libvcruntime140_apps00064.o}
|
||||||
|
procedure set_unexpected;external;
|
||||||
|
{$L x64/libvcruntime140_apps00063.o}
|
||||||
|
procedure memset;external;
|
||||||
|
{$L x64/libvcruntime140_apps00062.o}
|
||||||
|
procedure memmove;external;
|
||||||
|
{$L x64/libvcruntime140_apps00061.o}
|
||||||
|
procedure memcpy;external;
|
||||||
|
{$L x64/libvcruntime140_apps00060.o}
|
||||||
|
procedure memcmp;external;
|
||||||
|
{$L x64/libvcruntime140_apps00059.o}
|
||||||
|
procedure memchr;external;
|
||||||
|
{$L x64/libvcruntime140_apps00058.o}
|
||||||
|
procedure longjmp;external;
|
||||||
|
{$L x64/libvcruntime140_apps00057.o}
|
||||||
|
procedure _set_se_translator;external;
|
||||||
|
{$L x64/libvcruntime140_apps00056.o}
|
||||||
|
procedure _set_purecall_handler;external;
|
||||||
|
{$L x64/libvcruntime140_apps00055.o}
|
||||||
|
procedure _purecall;external;
|
||||||
|
{$L x64/libvcruntime140_apps00054.o}
|
||||||
|
procedure _local_unwind;external;
|
||||||
|
{$L x64/libvcruntime140_apps00053.o}
|
||||||
|
procedure _is_exception_typeof;external;
|
||||||
|
{$L x64/libvcruntime140_apps00052.o}
|
||||||
|
procedure _get_unexpected;external;
|
||||||
|
{$L x64/libvcruntime140_apps00051.o}
|
||||||
|
procedure _get_purecall_handler;external;
|
||||||
|
{$L x64/libvcruntime140_apps00050.o}
|
||||||
|
procedure __vcrt_LoadLibraryExW;external;
|
||||||
|
{$L x64/libvcruntime140_apps00049.o}
|
||||||
|
procedure __vcrt_InitializeCriticalSectionEx;external;
|
||||||
|
{$L x64/libvcruntime140_apps00048.o}
|
||||||
|
procedure __vcrt_GetModuleHandleW;external;
|
||||||
|
{$L x64/libvcruntime140_apps00047.o}
|
||||||
|
procedure __vcrt_GetModuleFileNameW;external;
|
||||||
|
{$L x64/libvcruntime140_apps00046.o}
|
||||||
|
procedure __uncaught_exceptions;external;
|
||||||
|
{$L x64/libvcruntime140_apps00045.o}
|
||||||
|
procedure __uncaught_exception;external;
|
||||||
|
{$L x64/libvcruntime140_apps00044.o}
|
||||||
|
procedure __unDNameEx;external;
|
||||||
|
{$L x64/libvcruntime140_apps00043.o}
|
||||||
|
procedure __unDName;external;
|
||||||
|
{$L x64/libvcruntime140_apps00042.o}
|
||||||
|
procedure __telemetry_main_return_trigger;external;
|
||||||
|
{$L x64/libvcruntime140_apps00041.o}
|
||||||
|
procedure __telemetry_main_invoke_trigger;external;
|
||||||
|
{$L x64/libvcruntime140_apps00040.o}
|
||||||
|
procedure __std_type_info_name;external;
|
||||||
|
{$L x64/libvcruntime140_apps00039.o}
|
||||||
|
procedure __std_type_info_hash;external;
|
||||||
|
{$L x64/libvcruntime140_apps00038.o}
|
||||||
|
procedure __std_type_info_destroy_list;external;
|
||||||
|
{$L x64/libvcruntime140_apps00037.o}
|
||||||
|
procedure __std_type_info_compare;external;
|
||||||
|
{$L x64/libvcruntime140_apps00036.o}
|
||||||
|
procedure __std_terminate;external;
|
||||||
|
{$L x64/libvcruntime140_apps00035.o}
|
||||||
|
procedure __std_exception_destroy;external;
|
||||||
|
{$L x64/libvcruntime140_apps00034.o}
|
||||||
|
procedure __std_exception_copy;external;
|
||||||
|
{$L x64/libvcruntime140_apps00033.o}
|
||||||
|
procedure __report_gsfailure;external;
|
||||||
|
{$L x64/libvcruntime140_apps00032.o}
|
||||||
|
procedure __processing_throw;external;
|
||||||
|
{$L x64/libvcruntime140_apps00031.o}
|
||||||
|
procedure __intrinsic_setjmpex;external;
|
||||||
|
{$L x64/libvcruntime140_apps00030.o}
|
||||||
|
procedure __intrinsic_setjmp;external;
|
||||||
|
{$L x64/libvcruntime140_apps00029.o}
|
||||||
|
procedure __current_exception_context;external;
|
||||||
|
{$L x64/libvcruntime140_apps00028.o}
|
||||||
|
procedure __current_exception;external;
|
||||||
|
{$L x64/libvcruntime140_apps00027.o}
|
||||||
|
procedure __TypeMatch;external;
|
||||||
|
{$L x64/libvcruntime140_apps00026.o}
|
||||||
|
procedure __RTtypeid;external;
|
||||||
|
{$L x64/libvcruntime140_apps00025.o}
|
||||||
|
procedure __RTDynamicCast;external;
|
||||||
|
{$L x64/libvcruntime140_apps00024.o}
|
||||||
|
procedure __RTCastToVoid;external;
|
||||||
|
{$L x64/libvcruntime140_apps00023.o}
|
||||||
|
procedure __NLG_Return2;external;
|
||||||
|
{$L x64/libvcruntime140_apps00022.o}
|
||||||
|
procedure __NLG_Dispatch2;external;
|
||||||
|
{$L x64/libvcruntime140_apps00021.o}
|
||||||
|
procedure __GetPlatformExceptionInfo;external;
|
||||||
|
{$L x64/libvcruntime140_apps00020.o}
|
||||||
|
procedure __FrameUnwindFilter;external;
|
||||||
|
{$L x64/libvcruntime140_apps00019.o}
|
||||||
|
procedure __DestructExceptionObject;external;
|
||||||
|
{$L x64/libvcruntime140_apps00018.o}
|
||||||
|
procedure __CxxUnregisterExceptionObject;external;
|
||||||
|
{$L x64/libvcruntime140_apps00017.o}
|
||||||
|
procedure __CxxRegisterExceptionObject;external;
|
||||||
|
{$L x64/libvcruntime140_apps00016.o}
|
||||||
|
procedure __CxxQueryExceptionSize;external;
|
||||||
|
{$L x64/libvcruntime140_apps00015.o}
|
||||||
|
procedure __CxxFrameHandler3;external;
|
||||||
|
{$L x64/libvcruntime140_apps00014.o}
|
||||||
|
procedure __CxxFrameHandler2;external;
|
||||||
|
{$L x64/libvcruntime140_apps00013.o}
|
||||||
|
procedure __CxxFrameHandler;external;
|
||||||
|
{$L x64/libvcruntime140_apps00012.o}
|
||||||
|
procedure __CxxExceptionFilter;external;
|
||||||
|
{$L x64/libvcruntime140_apps00011.o}
|
||||||
|
procedure __CxxDetectRethrow;external;
|
||||||
|
{$L x64/libvcruntime140_apps00010.o}
|
||||||
|
procedure __C_specific_handler_noexcept;external;
|
||||||
|
{$L x64/libvcruntime140_apps00009.o}
|
||||||
|
procedure __C_specific_handler;external;
|
||||||
|
{$L x64/libvcruntime140_apps00008.o}
|
||||||
|
procedure __BuildCatchObjectHelper;external;
|
||||||
|
{$L x64/libvcruntime140_apps00007.o}
|
||||||
|
procedure __BuildCatchObject;external;
|
||||||
|
{$L x64/libvcruntime140_apps00006.o}
|
||||||
|
procedure __AdjustPointer;external;
|
||||||
|
{$L x64/libvcruntime140_apps00005.o}
|
||||||
|
procedure _SetWinRTOutOfMemoryExceptionCallback;external;
|
||||||
|
{$L x64/libvcruntime140_apps00004.o}
|
||||||
|
procedure _IsExceptionObjectToBeDestroyed;external;
|
||||||
|
{$L x64/libvcruntime140_apps00003.o}
|
||||||
|
procedure _FindAndUnlinkFrame;external;
|
||||||
|
{$L x64/libvcruntime140_apps00002.o}
|
||||||
|
procedure _CxxThrowException;external;
|
||||||
|
{$L x64/libvcruntime140_apps00001.o}
|
||||||
|
procedure _CreateFrameInfo;external;
|
||||||
|
{$L x64/libvcruntime140_apps00000.o}
|
||||||
|
var
|
||||||
|
__lib64_libvcruntime140_app_a_iname : UInt64;
|
||||||
|
_head_lib64_libvcruntime140_app_a : UInt64;
|
||||||
|
__imp_wcsstr : UInt64;
|
||||||
|
__imp_wcsrchr : UInt64;
|
||||||
|
__imp_wcschr : UInt64;
|
||||||
|
__imp_unexpected : UInt64;
|
||||||
|
__imp_strstr : UInt64;
|
||||||
|
__imp_strrchr : UInt64;
|
||||||
|
__imp_strchr : UInt64;
|
||||||
|
__imp_set_unexpected : UInt64;
|
||||||
|
__imp_memset : UInt64;
|
||||||
|
__imp_memmove : UInt64;
|
||||||
|
__imp_memcpy : UInt64;
|
||||||
|
__imp_memcmp : UInt64;
|
||||||
|
__imp_memchr : UInt64;
|
||||||
|
__imp_longjmp : UInt64;
|
||||||
|
__imp__set_se_translator : UInt64;
|
||||||
|
__imp__set_purecall_handler : UInt64;
|
||||||
|
__imp__purecall : UInt64;
|
||||||
|
__imp__local_unwind : UInt64;
|
||||||
|
__imp__is_exception_typeof : UInt64;
|
||||||
|
__imp__get_unexpected : UInt64;
|
||||||
|
__imp__get_purecall_handler : UInt64;
|
||||||
|
__imp___vcrt_LoadLibraryExW : UInt64;
|
||||||
|
__imp___vcrt_InitializeCriticalSectionEx : UInt64;
|
||||||
|
__imp___vcrt_GetModuleHandleW : UInt64;
|
||||||
|
__imp___vcrt_GetModuleFileNameW : UInt64;
|
||||||
|
__imp___uncaught_exceptions : UInt64;
|
||||||
|
__imp___uncaught_exception : UInt64;
|
||||||
|
__imp___unDNameEx : UInt64;
|
||||||
|
__imp___unDName : UInt64;
|
||||||
|
__imp___telemetry_main_return_trigger : UInt64;
|
||||||
|
__imp___telemetry_main_invoke_trigger : UInt64;
|
||||||
|
__imp___std_type_info_name : UInt64;
|
||||||
|
__imp___std_type_info_hash : UInt64;
|
||||||
|
__imp___std_type_info_destroy_list : UInt64;
|
||||||
|
__imp___std_type_info_compare : UInt64;
|
||||||
|
__imp___std_terminate : UInt64;
|
||||||
|
__imp___std_exception_destroy : UInt64;
|
||||||
|
__imp___std_exception_copy : UInt64;
|
||||||
|
__imp___report_gsfailure : UInt64;
|
||||||
|
__imp___processing_throw : UInt64;
|
||||||
|
__imp___intrinsic_setjmpex : UInt64;
|
||||||
|
__imp___intrinsic_setjmp : UInt64;
|
||||||
|
__imp___current_exception_context : UInt64;
|
||||||
|
__imp___current_exception : UInt64;
|
||||||
|
__imp___TypeMatch : UInt64;
|
||||||
|
__imp___RTtypeid : UInt64;
|
||||||
|
__imp___RTDynamicCast : UInt64;
|
||||||
|
__imp___RTCastToVoid : UInt64;
|
||||||
|
__imp___NLG_Return2 : UInt64;
|
||||||
|
__imp___NLG_Dispatch2 : UInt64;
|
||||||
|
__imp___GetPlatformExceptionInfo : UInt64;
|
||||||
|
__imp___FrameUnwindFilter : UInt64;
|
||||||
|
__imp___DestructExceptionObject : UInt64;
|
||||||
|
__imp___CxxUnregisterExceptionObject : UInt64;
|
||||||
|
__imp___CxxRegisterExceptionObject : UInt64;
|
||||||
|
__imp___CxxQueryExceptionSize : UInt64;
|
||||||
|
__imp___CxxFrameHandler3 : UInt64;
|
||||||
|
__imp___CxxFrameHandler2 : UInt64;
|
||||||
|
__imp___CxxFrameHandler : UInt64;
|
||||||
|
__imp___CxxExceptionFilter : UInt64;
|
||||||
|
__imp___CxxDetectRethrow : UInt64;
|
||||||
|
__imp___C_specific_handler_noexcept : UInt64;
|
||||||
|
__imp___C_specific_handler : UInt64;
|
||||||
|
__imp___BuildCatchObjectHelper : UInt64;
|
||||||
|
__imp___BuildCatchObject : UInt64;
|
||||||
|
__imp___AdjustPointer : UInt64;
|
||||||
|
__imp__SetWinRTOutOfMemoryExceptionCallback : UInt64;
|
||||||
|
__imp__IsExceptionObjectToBeDestroyed : UInt64;
|
||||||
|
__imp__FindAndUnlinkFrame : UInt64;
|
||||||
|
__imp__CxxThrowException : UInt64;
|
||||||
|
__imp__CreateFrameInfo : UInt64;
|
||||||
|
{$ELSE}
|
||||||
|
procedure _wcsstr;external;
|
||||||
|
{$L x86/libvcruntime140_apps00080.o}
|
||||||
|
procedure _wcsrchr;external;
|
||||||
|
{$L x86/libvcruntime140_apps00079.o}
|
||||||
|
procedure _wcschr;external;
|
||||||
|
{$L x86/libvcruntime140_apps00078.o}
|
||||||
|
procedure _unexpected;external;
|
||||||
|
{$L x86/libvcruntime140_apps00077.o}
|
||||||
|
procedure _strstr;external;
|
||||||
|
{$L x86/libvcruntime140_apps00076.o}
|
||||||
|
procedure _strrchr;external;
|
||||||
|
{$L x86/libvcruntime140_apps00075.o}
|
||||||
|
procedure _strchr;external;
|
||||||
|
{$L x86/libvcruntime140_apps00074.o}
|
||||||
|
procedure _set_unexpected;external;
|
||||||
|
{$L x86/libvcruntime140_apps00073.o}
|
||||||
|
procedure _memset;external;
|
||||||
|
{$L x86/libvcruntime140_apps00072.o}
|
||||||
|
procedure _memmove;external;
|
||||||
|
{$L x86/libvcruntime140_apps00071.o}
|
||||||
|
procedure _memcpy;external;
|
||||||
|
{$L x86/libvcruntime140_apps00070.o}
|
||||||
|
procedure _memcmp;external;
|
||||||
|
{$L x86/libvcruntime140_apps00069.o}
|
||||||
|
procedure _memchr;external;
|
||||||
|
{$L x86/libvcruntime140_apps00068.o}
|
||||||
|
procedure _longjmp;external;
|
||||||
|
{$L x86/libvcruntime140_apps00067.o}
|
||||||
|
procedure __setjmp3;external;
|
||||||
|
{$L x86/libvcruntime140_apps00066.o}
|
||||||
|
procedure __set_se_translator;external;
|
||||||
|
{$L x86/libvcruntime140_apps00065.o}
|
||||||
|
procedure __set_purecall_handler;external;
|
||||||
|
{$L x86/libvcruntime140_apps00064.o}
|
||||||
|
procedure __purecall;external;
|
||||||
|
{$L x86/libvcruntime140_apps00061.o}
|
||||||
|
procedure __longjmpex;external;
|
||||||
|
{$L x86/libvcruntime140_apps00060.o}
|
||||||
|
procedure __local_unwind4;external;
|
||||||
|
{$L x86/libvcruntime140_apps00059.o}
|
||||||
|
procedure __local_unwind2;external;
|
||||||
|
{$L x86/libvcruntime140_apps00058.o}
|
||||||
|
procedure __is_exception_typeof;external;
|
||||||
|
{$L x86/libvcruntime140_apps00057.o}
|
||||||
|
procedure __global_unwind2;external;
|
||||||
|
{$L x86/libvcruntime140_apps00056.o}
|
||||||
|
procedure __get_unexpected;external;
|
||||||
|
{$L x86/libvcruntime140_apps00055.o}
|
||||||
|
procedure __get_purecall_handler;external;
|
||||||
|
{$L x86/libvcruntime140_apps00054.o}
|
||||||
|
procedure __except_handler4_common;external;
|
||||||
|
{$L x86/libvcruntime140_apps00053.o}
|
||||||
|
procedure __except_handler3;external;
|
||||||
|
{$L x86/libvcruntime140_apps00052.o}
|
||||||
|
procedure __except_handler2;external;
|
||||||
|
{$L x86/libvcruntime140_apps00051.o}
|
||||||
|
procedure __chkesp;external;
|
||||||
|
{$L x86/libvcruntime140_apps00050.o}
|
||||||
|
procedure ___vcrt_LoadLibraryExW;external;
|
||||||
|
{$L x86/libvcruntime140_apps00049.o}
|
||||||
|
procedure ___vcrt_InitializeCriticalSectionEx;external;
|
||||||
|
{$L x86/libvcruntime140_apps00048.o}
|
||||||
|
procedure ___vcrt_GetModuleHandleW;external;
|
||||||
|
{$L x86/libvcruntime140_apps00047.o}
|
||||||
|
procedure ___vcrt_GetModuleFileNameW;external;
|
||||||
|
{$L x86/libvcruntime140_apps00046.o}
|
||||||
|
procedure ___uncaught_exceptions;external;
|
||||||
|
{$L x86/libvcruntime140_apps00045.o}
|
||||||
|
procedure ___uncaught_exception;external;
|
||||||
|
{$L x86/libvcruntime140_apps00044.o}
|
||||||
|
procedure ___unDNameEx;external;
|
||||||
|
{$L x86/libvcruntime140_apps00043.o}
|
||||||
|
procedure ___unDName;external;
|
||||||
|
{$L x86/libvcruntime140_apps00042.o}
|
||||||
|
procedure ___telemetry_main_return_trigger;external;
|
||||||
|
{$L x86/libvcruntime140_apps00041.o}
|
||||||
|
procedure ___telemetry_main_invoke_trigger;external;
|
||||||
|
{$L x86/libvcruntime140_apps00040.o}
|
||||||
|
procedure ___std_type_info_name;external;
|
||||||
|
{$L x86/libvcruntime140_apps00039.o}
|
||||||
|
procedure ___std_type_info_hash;external;
|
||||||
|
{$L x86/libvcruntime140_apps00038.o}
|
||||||
|
procedure ___std_type_info_destroy_list;external;
|
||||||
|
{$L x86/libvcruntime140_apps00037.o}
|
||||||
|
procedure ___std_type_info_compare;external;
|
||||||
|
{$L x86/libvcruntime140_apps00036.o}
|
||||||
|
procedure ___std_terminate;external;
|
||||||
|
{$L x86/libvcruntime140_apps00035.o}
|
||||||
|
procedure ___std_exception_destroy;external;
|
||||||
|
{$L x86/libvcruntime140_apps00034.o}
|
||||||
|
procedure ___std_exception_copy;external;
|
||||||
|
{$L x86/libvcruntime140_apps00033.o}
|
||||||
|
procedure ___report_gsfailure;external;
|
||||||
|
{$L x86/libvcruntime140_apps00032.o}
|
||||||
|
procedure ___processing_throw;external;
|
||||||
|
{$L x86/libvcruntime140_apps00031.o}
|
||||||
|
procedure ___intrinsic_setjmp;external;
|
||||||
|
{$L x86/libvcruntime140_apps00030.o}
|
||||||
|
procedure ___current_exception_context;external;
|
||||||
|
{$L x86/libvcruntime140_apps00029.o}
|
||||||
|
procedure ___current_exception;external;
|
||||||
|
{$L x86/libvcruntime140_apps00028.o}
|
||||||
|
procedure ___TypeMatch;external;
|
||||||
|
{$L x86/libvcruntime140_apps00027.o}
|
||||||
|
procedure ___RTtypeid;external;
|
||||||
|
{$L x86/libvcruntime140_apps00026.o}
|
||||||
|
procedure ___RTDynamicCast;external;
|
||||||
|
{$L x86/libvcruntime140_apps00025.o}
|
||||||
|
procedure ___RTCastToVoid;external;
|
||||||
|
{$L x86/libvcruntime140_apps00024.o}
|
||||||
|
procedure ___GetPlatformExceptionInfo;external;
|
||||||
|
{$L x86/libvcruntime140_apps00023.o}
|
||||||
|
procedure ___FrameUnwindFilter;external;
|
||||||
|
{$L x86/libvcruntime140_apps00022.o}
|
||||||
|
procedure ___DestructExceptionObject;external;
|
||||||
|
{$L x86/libvcruntime140_apps00021.o}
|
||||||
|
procedure ___CxxUnregisterExceptionObject;external;
|
||||||
|
{$L x86/libvcruntime140_apps00020.o}
|
||||||
|
procedure ___CxxRegisterExceptionObject;external;
|
||||||
|
{$L x86/libvcruntime140_apps00019.o}
|
||||||
|
procedure ___CxxQueryExceptionSize;external;
|
||||||
|
{$L x86/libvcruntime140_apps00018.o}
|
||||||
|
procedure ___CxxFrameHandler3;external;
|
||||||
|
{$L x86/libvcruntime140_apps00016.o}
|
||||||
|
procedure ___CxxFrameHandler2;external;
|
||||||
|
{$L x86/libvcruntime140_apps00015.o}
|
||||||
|
procedure ___CxxFrameHandler;external;
|
||||||
|
{$L x86/libvcruntime140_apps00014.o}
|
||||||
|
procedure ___CxxExceptionFilter;external;
|
||||||
|
{$L x86/libvcruntime140_apps00013.o}
|
||||||
|
procedure ___CxxDetectRethrow;external;
|
||||||
|
{$L x86/libvcruntime140_apps00012.o}
|
||||||
|
procedure ___BuildCatchObjectHelper;external;
|
||||||
|
{$L x86/libvcruntime140_apps00011.o}
|
||||||
|
procedure ___BuildCatchObject;external;
|
||||||
|
{$L x86/libvcruntime140_apps00010.o}
|
||||||
|
procedure ___AdjustPointer;external;
|
||||||
|
{$L x86/libvcruntime140_apps00009.o}
|
||||||
|
procedure __SetWinRTOutOfMemoryExceptionCallback;external;
|
||||||
|
{$L x86/libvcruntime140_apps00008.o}
|
||||||
|
procedure __NLG_Return2;external;
|
||||||
|
{$L x86/libvcruntime140_apps00007.o}
|
||||||
|
procedure __NLG_Return;external;
|
||||||
|
{$L x86/libvcruntime140_apps00006.o}
|
||||||
|
procedure __NLG_Dispatch2;external;
|
||||||
|
{$L x86/libvcruntime140_apps00005.o}
|
||||||
|
procedure __IsExceptionObjectToBeDestroyed;external;
|
||||||
|
{$L x86/libvcruntime140_apps00004.o}
|
||||||
|
procedure __FindAndUnlinkFrame;external;
|
||||||
|
{$L x86/libvcruntime140_apps00003.o}
|
||||||
|
procedure __EH_prolog;external;
|
||||||
|
{$L x86/libvcruntime140_apps00002.o}
|
||||||
|
procedure __CreateFrameInfo;external;
|
||||||
|
{$L x86/libvcruntime140_apps00000.o}
|
||||||
|
var
|
||||||
|
__lib32_libvcruntime140_app_a_iname : UInt64;
|
||||||
|
__head_lib32_libvcruntime140_app_a : UInt64;
|
||||||
|
__imp__wcsstr : UInt64;
|
||||||
|
__imp__wcsrchr : UInt64;
|
||||||
|
__imp__wcschr : UInt64;
|
||||||
|
__imp__unexpected : UInt64;
|
||||||
|
__imp__strstr : UInt64;
|
||||||
|
__imp__strrchr : UInt64;
|
||||||
|
__imp__strchr : UInt64;
|
||||||
|
__imp__set_unexpected : UInt64;
|
||||||
|
__imp__memset : UInt64;
|
||||||
|
__imp__memmove : UInt64;
|
||||||
|
__imp__memcpy : UInt64;
|
||||||
|
__imp__memcmp : UInt64;
|
||||||
|
__imp__memchr : UInt64;
|
||||||
|
__imp__longjmp : UInt64;
|
||||||
|
__imp___setjmp3 : UInt64;
|
||||||
|
__imp___set_se_translator : UInt64;
|
||||||
|
__imp___set_purecall_handler : UInt64;
|
||||||
|
__imp___purecall : UInt64;
|
||||||
|
__imp___longjmpex : UInt64;
|
||||||
|
__imp___local_unwind4 : UInt64;
|
||||||
|
__imp___local_unwind2 : UInt64;
|
||||||
|
__imp___is_exception_typeof : UInt64;
|
||||||
|
__imp___global_unwind2 : UInt64;
|
||||||
|
__imp___get_unexpected : UInt64;
|
||||||
|
__imp___get_purecall_handler : UInt64;
|
||||||
|
__imp___except_handler4_common : UInt64;
|
||||||
|
__imp___except_handler3 : UInt64;
|
||||||
|
__imp___except_handler2 : UInt64;
|
||||||
|
__imp___chkesp : UInt64;
|
||||||
|
__imp____vcrt_LoadLibraryExW : UInt64;
|
||||||
|
__imp____vcrt_InitializeCriticalSectionEx : UInt64;
|
||||||
|
__imp____vcrt_GetModuleHandleW : UInt64;
|
||||||
|
__imp____vcrt_GetModuleFileNameW : UInt64;
|
||||||
|
__imp____uncaught_exceptions : UInt64;
|
||||||
|
__imp____uncaught_exception : UInt64;
|
||||||
|
__imp____unDNameEx : UInt64;
|
||||||
|
__imp____unDName : UInt64;
|
||||||
|
__imp____telemetry_main_return_trigger : UInt64;
|
||||||
|
__imp____telemetry_main_invoke_trigger : UInt64;
|
||||||
|
__imp____std_type_info_name : UInt64;
|
||||||
|
__imp____std_type_info_hash : UInt64;
|
||||||
|
__imp____std_type_info_destroy_list : UInt64;
|
||||||
|
__imp____std_type_info_compare : UInt64;
|
||||||
|
__imp____std_terminate : UInt64;
|
||||||
|
__imp____std_exception_destroy : UInt64;
|
||||||
|
__imp____std_exception_copy : UInt64;
|
||||||
|
__imp____report_gsfailure : UInt64;
|
||||||
|
__imp____processing_throw : UInt64;
|
||||||
|
__imp____intrinsic_setjmp : UInt64;
|
||||||
|
__imp____current_exception_context : UInt64;
|
||||||
|
__imp____current_exception : UInt64;
|
||||||
|
__imp____TypeMatch : UInt64;
|
||||||
|
__imp____RTtypeid : UInt64;
|
||||||
|
__imp____RTDynamicCast : UInt64;
|
||||||
|
__imp____RTCastToVoid : UInt64;
|
||||||
|
__imp____GetPlatformExceptionInfo : UInt64;
|
||||||
|
__imp____FrameUnwindFilter : UInt64;
|
||||||
|
__imp____DestructExceptionObject : UInt64;
|
||||||
|
__imp____CxxUnregisterExceptionObject : UInt64;
|
||||||
|
__imp____CxxRegisterExceptionObject : UInt64;
|
||||||
|
__imp____CxxQueryExceptionSize : UInt64;
|
||||||
|
__imp____CxxFrameHandler3 : UInt64;
|
||||||
|
__imp____CxxFrameHandler2 : UInt64;
|
||||||
|
__imp____CxxFrameHandler : UInt64;
|
||||||
|
__imp____CxxExceptionFilter : UInt64;
|
||||||
|
__imp____CxxDetectRethrow : UInt64;
|
||||||
|
__imp____BuildCatchObjectHelper : UInt64;
|
||||||
|
__imp____BuildCatchObject : UInt64;
|
||||||
|
__imp____AdjustPointer : UInt64;
|
||||||
|
__imp___SetWinRTOutOfMemoryExceptionCallback : UInt64;
|
||||||
|
__imp___NLG_Return2 : UInt64;
|
||||||
|
__imp___NLG_Return : UInt64;
|
||||||
|
__imp___NLG_Dispatch2 : UInt64;
|
||||||
|
__imp___IsExceptionObjectToBeDestroyed : UInt64;
|
||||||
|
__imp___FindAndUnlinkFrame : UInt64;
|
||||||
|
__imp___EH_prolog : UInt64;
|
||||||
|
__imp___CreateFrameInfo : UInt64;
|
||||||
|
{$ENDIF}
|
||||||
|
implementation
|
||||||
|
end.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
||||||
|
/* 'pkglibc' Package */
|
||||||
|
OUTPUT_FORMAT(elf64-x86-64)
|
||||||
|
GROUP ( bplpkglibc.so pkglibc_nonshared.a )
|
|
@ -0,0 +1,36 @@
|
||||||
|
package pkglibc;
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
|
||||||
|
{$ALIGN 8}
|
||||||
|
{$ASSERTIONS ON}
|
||||||
|
{$BOOLEVAL OFF}
|
||||||
|
{$DEBUGINFO OFF}
|
||||||
|
{$EXTENDEDSYNTAX ON}
|
||||||
|
{$IMPORTEDDATA ON}
|
||||||
|
{$IOCHECKS ON}
|
||||||
|
{$LOCALSYMBOLS OFF}
|
||||||
|
{$LONGSTRINGS ON}
|
||||||
|
{$OPENSTRINGS ON}
|
||||||
|
{$OPTIMIZATION ON}
|
||||||
|
{$OVERFLOWCHECKS OFF}
|
||||||
|
{$RANGECHECKS OFF}
|
||||||
|
{$REFERENCEINFO OFF}
|
||||||
|
{$SAFEDIVIDE OFF}
|
||||||
|
{$STACKFRAMES OFF}
|
||||||
|
{$TYPEDADDRESS OFF}
|
||||||
|
{$VARSTRINGCHECKS ON}
|
||||||
|
{$WRITEABLECONST OFF}
|
||||||
|
{$MINENUMSIZE 1}
|
||||||
|
{$IMAGEBASE $400000}
|
||||||
|
{$DEFINE RELEASE}
|
||||||
|
{$ENDIF IMPLICITBUILDING}
|
||||||
|
{$IMPLICITBUILD ON}
|
||||||
|
|
||||||
|
requires
|
||||||
|
rtl;
|
||||||
|
|
||||||
|
contains
|
||||||
|
libc in 'libc.pas';
|
||||||
|
|
||||||
|
end.
|
|
@ -0,0 +1,956 @@
|
||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ProjectGuid>{4BF86541-AFCF-4EAD-AF66-367AE6174BAF}</ProjectGuid>
|
||||||
|
<MainSource>pkglibc.dpk</MainSource>
|
||||||
|
<ProjectVersion>19.4</ProjectVersion>
|
||||||
|
<FrameworkType>None</FrameworkType>
|
||||||
|
<Base>True</Base>
|
||||||
|
<Config Condition="'$(Config)'==''">Release</Config>
|
||||||
|
<Platform Condition="'$(Platform)'==''">Win64</Platform>
|
||||||
|
<TargetedPlatforms>131</TargetedPlatforms>
|
||||||
|
<AppType>Package</AppType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
|
||||||
|
<Base_Android>true</Base_Android>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Android64' and '$(Base)'=='true') or '$(Base_Android64)'!=''">
|
||||||
|
<Base_Android64>true</Base_Android64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Base)'=='true') or '$(Base_iOSDevice64)'!=''">
|
||||||
|
<Base_iOSDevice64>true</Base_iOSDevice64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='OSX64' and '$(Base)'=='true') or '$(Base_OSX64)'!=''">
|
||||||
|
<Base_OSX64>true</Base_OSX64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='OSXARM64' and '$(Base)'=='true') or '$(Base_OSXARM64)'!=''">
|
||||||
|
<Base_OSXARM64>true</Base_OSXARM64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||||
|
<Base_Win32>true</Base_Win32>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
|
||||||
|
<Base_Win64>true</Base_Win64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
|
||||||
|
<Cfg_1_Win32>true</Cfg_1_Win32>
|
||||||
|
<CfgParent>Cfg_1</CfgParent>
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
|
||||||
|
<Cfg_2>true</Cfg_2>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''">
|
||||||
|
<Cfg_2_Win64>true</Cfg_2_Win64>
|
||||||
|
<CfgParent>Cfg_2</CfgParent>
|
||||||
|
<Cfg_2>true</Cfg_2>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base)'!=''">
|
||||||
|
<DCC_DcuOutput>..\$(ProductVersion)\$(Platform)\$(Config)</DCC_DcuOutput>
|
||||||
|
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
|
||||||
|
<DCC_E>false</DCC_E>
|
||||||
|
<DCC_N>false</DCC_N>
|
||||||
|
<DCC_S>false</DCC_S>
|
||||||
|
<DCC_F>false</DCC_F>
|
||||||
|
<DCC_K>false</DCC_K>
|
||||||
|
<GenDll>true</GenDll>
|
||||||
|
<GenPackage>true</GenPackage>
|
||||||
|
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<DCC_CBuilderOutput>All</DCC_CBuilderOutput>
|
||||||
|
<SanitizedProjectName>pkglibc</SanitizedProjectName>
|
||||||
|
<VerInfo_Locale>2052</VerInfo_Locale>
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||||
|
<DCC_BAD_GLOBAL_SYMBOL>false</DCC_BAD_GLOBAL_SYMBOL>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Android)'!=''">
|
||||||
|
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||||
|
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar</EnabledSysJars>
|
||||||
|
<Android_LauncherIcon192>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png</Android_LauncherIcon192>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Android64)'!=''">
|
||||||
|
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||||
|
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar</EnabledSysJars>
|
||||||
|
<Android_LauncherIcon192>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png</Android_LauncherIcon192>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_iOSDevice64)'!=''">
|
||||||
|
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||||
|
<iOS_AppStore1024>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png</iOS_AppStore1024>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_OSX64)'!=''">
|
||||||
|
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers</VerInfo_Keys>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_OSXARM64)'!=''">
|
||||||
|
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers</VerInfo_Keys>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||||
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
||||||
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
||||||
|
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_DebugDCUs>true</DCC_DebugDCUs>
|
||||||
|
<DCC_Optimize>false</DCC_Optimize>
|
||||||
|
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
||||||
|
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
|
||||||
|
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
||||||
|
<DCC_RemoteDebug>false</DCC_RemoteDebug>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||||
|
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||||
|
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||||
|
<DCC_DebugInformation>0</DCC_DebugInformation>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<DelphiCompile Include="$(MainSource)">
|
||||||
|
<MainSource>MainSource</MainSource>
|
||||||
|
</DelphiCompile>
|
||||||
|
<DCCReference Include="rtl.dcp"/>
|
||||||
|
<DCCReference Include="libc.pas"/>
|
||||||
|
<BuildConfiguration Include="Base">
|
||||||
|
<Key>Base</Key>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Debug">
|
||||||
|
<Key>Cfg_1</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Release">
|
||||||
|
<Key>Cfg_2</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<ProjectExtensions>
|
||||||
|
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
||||||
|
<Borland.ProjectType>Package</Borland.ProjectType>
|
||||||
|
<BorlandProject>
|
||||||
|
<Delphi.Personality>
|
||||||
|
<Source>
|
||||||
|
<Source Name="MainSource">pkglibc.dpk</Source>
|
||||||
|
</Source>
|
||||||
|
<Excluded_Packages>
|
||||||
|
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k280.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||||
|
<Excluded_Packages Name="$(BDSBIN)\dclofficexp280.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||||
|
</Excluded_Packages>
|
||||||
|
</Delphi.Personality>
|
||||||
|
<Platforms>
|
||||||
|
<Platform value="Android">False</Platform>
|
||||||
|
<Platform value="Android64">False</Platform>
|
||||||
|
<Platform value="iOSDevice64">False</Platform>
|
||||||
|
<Platform value="Linux64">True</Platform>
|
||||||
|
<Platform value="OSX64">False</Platform>
|
||||||
|
<Platform value="OSXARM64">False</Platform>
|
||||||
|
<Platform value="Win32">True</Platform>
|
||||||
|
<Platform value="Win64">True</Platform>
|
||||||
|
</Platforms>
|
||||||
|
<Deployment Version="3">
|
||||||
|
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libcgunwind.1.0.dylib" Class="DependencyModule">
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Win64\pkglibc.bpl" Configuration="Debug" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteName>pkglibc.bpl</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\pkglibc.bpl" Configuration="Release" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteName>pkglibc.bpl</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\Win64\pkglibc.bpl" Configuration="Release" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteName>pkglibc.bpl</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployClass Name="AdditionalDebugSymbols">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidClasses">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidClassesDexFile">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidFileProvider">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\xml</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\xml</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidGDBServer">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeArmeabiFile">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeArmeabiv7aFile">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeMipsFile">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\mips</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\mips</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidServiceOutput">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidServiceOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidSplashImageDef">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidSplashStyles">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidSplashStylesV21">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values-v21</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values-v21</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_Colors">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_DefaultAppIcon">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon144">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon192">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon36">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon48">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon72">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon96">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon24">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon36">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon48">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon72">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon96">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage426">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-small</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-small</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage470">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage640">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-large</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-large</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage960">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_Strings">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="DebugSymbols">
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="DependencyFramework">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.framework</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.framework</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.framework</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="DependencyModule">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
<Extensions>.dll;.bpl</Extensions>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Required="true" Name="DependencyPackage">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
<Extensions>.bpl</Extensions>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="File">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iOS_AppStore1024">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_AppIcon152">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_AppIcon167">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_Launch2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_LaunchDark2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_Notification40">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_Setting58">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_SpotLight80">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_AppIcon120">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_AppIcon180">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Launch2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Launch3x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_LaunchDark2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_LaunchDark3x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Notification40">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Notification60">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Setting58">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Setting87">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Spotlight120">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Spotlight80">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectAndroidManifest">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
|
||||||
|
<DeployClass Name="ProjectiOSEntitlements"/>
|
||||||
|
<DeployClass Name="ProjectiOSInfoPList"/>
|
||||||
|
<DeployClass Name="ProjectiOSLaunchScreen"/>
|
||||||
|
<DeployClass Name="ProjectiOSResource">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXDebug"/>
|
||||||
|
<DeployClass Name="ProjectOSXEntitlements"/>
|
||||||
|
<DeployClass Name="ProjectOSXInfoPList"/>
|
||||||
|
<DeployClass Name="ProjectOSXResource">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Required="true" Name="ProjectOutput">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Linux64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectUWPManifest">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo150">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo44">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
||||||
|
</Deployment>
|
||||||
|
</BorlandProject>
|
||||||
|
<ProjectFileVersion>12</ProjectFileVersion>
|
||||||
|
</ProjectExtensions>
|
||||||
|
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||||
|
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
||||||
|
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
|
||||||
|
</Project>
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<BorlandProject>
|
||||||
|
<Transactions>
|
||||||
|
<Transaction>2020/06/16 10:18:17.000.397,=rtl.dcp</Transaction>
|
||||||
|
<Transaction>2020/06/16 10:18:43.000.119,D:\Users\YW\Documents\Embarcadero\Studio\Projects\Package1.dproj=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\pkglibc.dproj</Transaction>
|
||||||
|
<Transaction>2020/06/16 10:22:07.000.080,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/06/16 10:22:24.000.216,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\libc\Unit1.pas=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/06/16 10:22:42.000.105,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\libc\pkglibc.dproj=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\pkglibc.dproj</Transaction>
|
||||||
|
<Transaction>2020/06/16 10:23:03.000.712,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\libc\libc.pas=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\libc\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2022/04/15 10:09:52.000.440,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libucrt.pas</Transaction>
|
||||||
|
<Transaction>2022/04/15 12:22:21.000.777,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libgcc.pas</Transaction>
|
||||||
|
<Transaction>2022/04/17 16:36:03.763,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libgcc.pas=</Transaction>
|
||||||
|
<Transaction>2022/04/17 16:36:03.813,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libucrt.pas=</Transaction>
|
||||||
|
</Transactions>
|
||||||
|
</BorlandProject>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,438 @@
|
||||||
|
unit testlibgcc;
|
||||||
|
interface
|
||||||
|
uses SysUtils,libgcc;
|
||||||
|
procedure test_libgcc;
|
||||||
|
implementation
|
||||||
|
procedure test_libgcc;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
{$IFDEF WIN64}
|
||||||
|
writeln('__alloca: ',NativeInt(@__alloca));
|
||||||
|
writeln('___chkstk_ms: ',NativeInt(@___chkstk_ms));
|
||||||
|
writeln('__multi3: ',NativeInt(@__multi3));
|
||||||
|
writeln('__negti2: ',NativeInt(@__negti2));
|
||||||
|
writeln('__lshrti3: ',NativeInt(@__lshrti3));
|
||||||
|
writeln('__ashlti3: ',NativeInt(@__ashlti3));
|
||||||
|
writeln('__ashrti3: ',NativeInt(@__ashrti3));
|
||||||
|
writeln('__cmpti2: ',NativeInt(@__cmpti2));
|
||||||
|
writeln('__ucmpti2: ',NativeInt(@__ucmpti2));
|
||||||
|
writeln('__clear_cache: ',NativeInt(@__clear_cache));
|
||||||
|
writeln('getpagesize: ',NativeInt(@getpagesize));
|
||||||
|
writeln('__do_global_dtors: ',NativeInt(@__do_global_dtors));
|
||||||
|
writeln('__absvdi2: ',NativeInt(@__absvdi2));
|
||||||
|
writeln('__absvti2: ',NativeInt(@__absvti2));
|
||||||
|
writeln('__addvdi3: ',NativeInt(@__addvdi3));
|
||||||
|
writeln('__addvti3: ',NativeInt(@__addvti3));
|
||||||
|
writeln('__subvdi3: ',NativeInt(@__subvdi3));
|
||||||
|
writeln('__subvti3: ',NativeInt(@__subvti3));
|
||||||
|
writeln('__mulvdi3: ',NativeInt(@__mulvdi3));
|
||||||
|
writeln('__mulvti3: ',NativeInt(@__mulvti3));
|
||||||
|
writeln('__negvdi2: ',NativeInt(@__negvdi2));
|
||||||
|
writeln('__negvti2: ',NativeInt(@__negvti2));
|
||||||
|
writeln('__ffsdi2: ',NativeInt(@__ffsdi2));
|
||||||
|
writeln('__ffsti2: ',NativeInt(@__ffsti2));
|
||||||
|
writeln('__clzdi2: ',NativeInt(@__clzdi2));
|
||||||
|
writeln('__clzti2: ',NativeInt(@__clzti2));
|
||||||
|
writeln('__ctzdi2: ',NativeInt(@__ctzdi2));
|
||||||
|
writeln('__ctzti2: ',NativeInt(@__ctzti2));
|
||||||
|
writeln('__popcountdi2: ',NativeInt(@__popcountdi2));
|
||||||
|
writeln('__popcountti2: ',NativeInt(@__popcountti2));
|
||||||
|
writeln('__paritydi2: ',NativeInt(@__paritydi2));
|
||||||
|
writeln('__parityti2: ',NativeInt(@__parityti2));
|
||||||
|
writeln('__powisf2: ',NativeInt(@__powisf2));
|
||||||
|
writeln('__powidf2: ',NativeInt(@__powidf2));
|
||||||
|
writeln('__powixf2: ',NativeInt(@__powixf2));
|
||||||
|
writeln('__powitf2: ',NativeInt(@__powitf2));
|
||||||
|
writeln('__mulsc3: ',NativeInt(@__mulsc3));
|
||||||
|
writeln('__muldc3: ',NativeInt(@__muldc3));
|
||||||
|
writeln('__mulxc3: ',NativeInt(@__mulxc3));
|
||||||
|
writeln('__multc3: ',NativeInt(@__multc3));
|
||||||
|
writeln('__divsc3: ',NativeInt(@__divsc3));
|
||||||
|
writeln('__divdc3: ',NativeInt(@__divdc3));
|
||||||
|
writeln('__divxc3: ',NativeInt(@__divxc3));
|
||||||
|
writeln('__divtc3: ',NativeInt(@__divtc3));
|
||||||
|
writeln('__bswapsi2: ',NativeInt(@__bswapsi2));
|
||||||
|
writeln('__bswapdi2: ',NativeInt(@__bswapdi2));
|
||||||
|
writeln('__clrsbdi2: ',NativeInt(@__clrsbdi2));
|
||||||
|
writeln('__clrsbti2: ',NativeInt(@__clrsbti2));
|
||||||
|
writeln('__fixunssfdi: ',NativeInt(@__fixunssfdi));
|
||||||
|
writeln('__fixunsdfdi: ',NativeInt(@__fixunsdfdi));
|
||||||
|
writeln('__fixunsxfdi: ',NativeInt(@__fixunsxfdi));
|
||||||
|
writeln('__fixsfti: ',NativeInt(@__fixsfti));
|
||||||
|
writeln('__fixdfti: ',NativeInt(@__fixdfti));
|
||||||
|
writeln('__fixxfti: ',NativeInt(@__fixxfti));
|
||||||
|
writeln('__fixunssfti: ',NativeInt(@__fixunssfti));
|
||||||
|
writeln('__fixunsdfti: ',NativeInt(@__fixunsdfti));
|
||||||
|
writeln('__fixunsxfti: ',NativeInt(@__fixunsxfti));
|
||||||
|
writeln('__floattisf: ',NativeInt(@__floattisf));
|
||||||
|
writeln('__floattidf: ',NativeInt(@__floattidf));
|
||||||
|
writeln('__floattixf: ',NativeInt(@__floattixf));
|
||||||
|
writeln('__floatuntisf: ',NativeInt(@__floatuntisf));
|
||||||
|
writeln('__floatuntidf: ',NativeInt(@__floatuntidf));
|
||||||
|
writeln('__floatuntixf: ',NativeInt(@__floatuntixf));
|
||||||
|
writeln('__gcc_bcmp: ',NativeInt(@__gcc_bcmp));
|
||||||
|
writeln('__divti3: ',NativeInt(@__divti3));
|
||||||
|
writeln('__modti3: ',NativeInt(@__modti3));
|
||||||
|
writeln('__divmodti4: ',NativeInt(@__divmodti4));
|
||||||
|
writeln('__udivti3: ',NativeInt(@__udivti3));
|
||||||
|
writeln('__umodti3: ',NativeInt(@__umodti3));
|
||||||
|
writeln('__udivmodti4: ',NativeInt(@__udivmodti4));
|
||||||
|
writeln('__udiv_w_sdiv: ',NativeInt(@__udiv_w_sdiv));
|
||||||
|
writeln('__dfp_set_round: ',NativeInt(@__dfp_set_round));
|
||||||
|
writeln('__bid32_to_binary32: ',NativeInt(@__bid32_to_binary32));
|
||||||
|
writeln('isinfd32: ',NativeInt(@isinfd32));
|
||||||
|
writeln('isinfd64: ',NativeInt(@isinfd64));
|
||||||
|
writeln('isinfd128: ',NativeInt(@isinfd128));
|
||||||
|
writeln('__bid64_isSigned: ',NativeInt(@__bid64_isSigned));
|
||||||
|
writeln('__bid128_isSigned: ',NativeInt(@__bid128_isSigned));
|
||||||
|
writeln('__bid_round64_2_18: ',NativeInt(@__bid_round64_2_18));
|
||||||
|
writeln('__bid64_from_int32: ',NativeInt(@__bid64_from_int32));
|
||||||
|
writeln('__bid64_add: ',NativeInt(@__bid64_add));
|
||||||
|
writeln('__bid64dq_add: ',NativeInt(@__bid64dq_add));
|
||||||
|
writeln('__bid64_mul: ',NativeInt(@__bid64_mul));
|
||||||
|
writeln('__bid64qq_mul: ',NativeInt(@__bid64qq_mul));
|
||||||
|
writeln('__bid64_quiet_equal: ',NativeInt(@__bid64_quiet_equal));
|
||||||
|
writeln('__bid128_quiet_equal: ',NativeInt(@__bid128_quiet_equal));
|
||||||
|
writeln('__bid32_to_bid64: ',NativeInt(@__bid32_to_bid64));
|
||||||
|
writeln('__bid32_to_bid128: ',NativeInt(@__bid32_to_bid128));
|
||||||
|
writeln('__bid64_to_bid128: ',NativeInt(@__bid64_to_bid128));
|
||||||
|
writeln('__bid64_to_int32_rnint: ',NativeInt(@__bid64_to_int32_rnint));
|
||||||
|
writeln('__bid64_to_int64_rnint: ',NativeInt(@__bid64_to_int64_rnint));
|
||||||
|
writeln('__bid64_to_uint32_rnint: ',NativeInt(@__bid64_to_uint32_rnint));
|
||||||
|
writeln('__bid64_to_uint64_rnint: ',NativeInt(@__bid64_to_uint64_rnint));
|
||||||
|
writeln('__bid128_to_int32_rnint: ',NativeInt(@__bid128_to_int32_rnint));
|
||||||
|
writeln('__bid128_to_int64_rnint: ',NativeInt(@__bid128_to_int64_rnint));
|
||||||
|
writeln('__bid128_to_uint32_rnint: ',NativeInt(@__bid128_to_uint32_rnint));
|
||||||
|
writeln('__bid128_to_uint64_rnint: ',NativeInt(@__bid128_to_uint64_rnint));
|
||||||
|
writeln('__bid_addsd3: ',NativeInt(@__bid_addsd3));
|
||||||
|
writeln('__bid_divsd3: ',NativeInt(@__bid_divsd3));
|
||||||
|
writeln('__bid_mulsd3: ',NativeInt(@__bid_mulsd3));
|
||||||
|
writeln('__bid_eqsd2: ',NativeInt(@__bid_eqsd2));
|
||||||
|
writeln('__bid_nesd2: ',NativeInt(@__bid_nesd2));
|
||||||
|
writeln('__bid_ltsd2: ',NativeInt(@__bid_ltsd2));
|
||||||
|
writeln('__bid_gtsd2: ',NativeInt(@__bid_gtsd2));
|
||||||
|
writeln('__bid_lesd2: ',NativeInt(@__bid_lesd2));
|
||||||
|
writeln('__bid_gesd2: ',NativeInt(@__bid_gesd2));
|
||||||
|
writeln('__bid_fixsdsi: ',NativeInt(@__bid_fixsdsi));
|
||||||
|
writeln('__bid_fixsddi: ',NativeInt(@__bid_fixsddi));
|
||||||
|
writeln('__bid_fixunssdsi: ',NativeInt(@__bid_fixunssdsi));
|
||||||
|
writeln('__bid_fixunssddi: ',NativeInt(@__bid_fixunssddi));
|
||||||
|
writeln('__bid_floatsisd: ',NativeInt(@__bid_floatsisd));
|
||||||
|
writeln('__bid_floatdisd: ',NativeInt(@__bid_floatdisd));
|
||||||
|
writeln('__bid_floatunssisd: ',NativeInt(@__bid_floatunssisd));
|
||||||
|
writeln('__bid_floatunsdisd: ',NativeInt(@__bid_floatunsdisd));
|
||||||
|
writeln('__bid_truncsdsf: ',NativeInt(@__bid_truncsdsf));
|
||||||
|
writeln('__bid_extendsddf: ',NativeInt(@__bid_extendsddf));
|
||||||
|
writeln('__bid_extendsdxf: ',NativeInt(@__bid_extendsdxf));
|
||||||
|
writeln('__bid_extendsdtf: ',NativeInt(@__bid_extendsdtf));
|
||||||
|
writeln('__bid_extendsfsd: ',NativeInt(@__bid_extendsfsd));
|
||||||
|
writeln('__bid_truncdfsd: ',NativeInt(@__bid_truncdfsd));
|
||||||
|
writeln('__bid_truncxfsd: ',NativeInt(@__bid_truncxfsd));
|
||||||
|
writeln('__bid_trunctfsd: ',NativeInt(@__bid_trunctfsd));
|
||||||
|
writeln('__bid_extendsddd2: ',NativeInt(@__bid_extendsddd2));
|
||||||
|
writeln('__bid_extendsdtd2: ',NativeInt(@__bid_extendsdtd2));
|
||||||
|
writeln('__bid_unordsd2: ',NativeInt(@__bid_unordsd2));
|
||||||
|
writeln('__bid_adddd3: ',NativeInt(@__bid_adddd3));
|
||||||
|
writeln('__bid_divdd3: ',NativeInt(@__bid_divdd3));
|
||||||
|
writeln('__bid_muldd3: ',NativeInt(@__bid_muldd3));
|
||||||
|
writeln('__bid_eqdd2: ',NativeInt(@__bid_eqdd2));
|
||||||
|
writeln('__bid_nedd2: ',NativeInt(@__bid_nedd2));
|
||||||
|
writeln('__bid_ltdd2: ',NativeInt(@__bid_ltdd2));
|
||||||
|
writeln('__bid_gtdd2: ',NativeInt(@__bid_gtdd2));
|
||||||
|
writeln('__bid_ledd2: ',NativeInt(@__bid_ledd2));
|
||||||
|
writeln('__bid_gedd2: ',NativeInt(@__bid_gedd2));
|
||||||
|
writeln('__bid_fixddsi: ',NativeInt(@__bid_fixddsi));
|
||||||
|
writeln('__bid_fixdddi: ',NativeInt(@__bid_fixdddi));
|
||||||
|
writeln('__bid_fixunsddsi: ',NativeInt(@__bid_fixunsddsi));
|
||||||
|
writeln('__bid_fixunsdddi: ',NativeInt(@__bid_fixunsdddi));
|
||||||
|
writeln('__bid_floatsidd: ',NativeInt(@__bid_floatsidd));
|
||||||
|
writeln('__bid_floatdidd: ',NativeInt(@__bid_floatdidd));
|
||||||
|
writeln('__bid_floatunssidd: ',NativeInt(@__bid_floatunssidd));
|
||||||
|
writeln('__bid_floatunsdidd: ',NativeInt(@__bid_floatunsdidd));
|
||||||
|
writeln('__bid_truncddsf: ',NativeInt(@__bid_truncddsf));
|
||||||
|
writeln('__bid_truncdddf: ',NativeInt(@__bid_truncdddf));
|
||||||
|
writeln('__bid_extendddxf: ',NativeInt(@__bid_extendddxf));
|
||||||
|
writeln('__bid_extendddtf: ',NativeInt(@__bid_extendddtf));
|
||||||
|
writeln('__bid_extendsfdd: ',NativeInt(@__bid_extendsfdd));
|
||||||
|
writeln('__bid_extenddfdd: ',NativeInt(@__bid_extenddfdd));
|
||||||
|
writeln('__bid_truncxfdd: ',NativeInt(@__bid_truncxfdd));
|
||||||
|
writeln('__bid_trunctfdd: ',NativeInt(@__bid_trunctfdd));
|
||||||
|
writeln('__bid_truncddsd2: ',NativeInt(@__bid_truncddsd2));
|
||||||
|
writeln('__bid_extendddtd2: ',NativeInt(@__bid_extendddtd2));
|
||||||
|
writeln('__bid_unorddd2: ',NativeInt(@__bid_unorddd2));
|
||||||
|
writeln('__bid_addtd3: ',NativeInt(@__bid_addtd3));
|
||||||
|
writeln('__bid_divtd3: ',NativeInt(@__bid_divtd3));
|
||||||
|
writeln('__bid_multd3: ',NativeInt(@__bid_multd3));
|
||||||
|
writeln('__bid_eqtd2: ',NativeInt(@__bid_eqtd2));
|
||||||
|
writeln('__bid_netd2: ',NativeInt(@__bid_netd2));
|
||||||
|
writeln('__bid_lttd2: ',NativeInt(@__bid_lttd2));
|
||||||
|
writeln('__bid_gttd2: ',NativeInt(@__bid_gttd2));
|
||||||
|
writeln('__bid_letd2: ',NativeInt(@__bid_letd2));
|
||||||
|
writeln('__bid_getd2: ',NativeInt(@__bid_getd2));
|
||||||
|
writeln('__bid_fixtdsi: ',NativeInt(@__bid_fixtdsi));
|
||||||
|
writeln('__bid_fixtddi: ',NativeInt(@__bid_fixtddi));
|
||||||
|
writeln('__bid_fixunstdsi: ',NativeInt(@__bid_fixunstdsi));
|
||||||
|
writeln('__bid_fixunstddi: ',NativeInt(@__bid_fixunstddi));
|
||||||
|
writeln('__bid_floatsitd: ',NativeInt(@__bid_floatsitd));
|
||||||
|
writeln('__bid_floatditd: ',NativeInt(@__bid_floatditd));
|
||||||
|
writeln('__bid_floatunssitd: ',NativeInt(@__bid_floatunssitd));
|
||||||
|
writeln('__bid_floatunsditd: ',NativeInt(@__bid_floatunsditd));
|
||||||
|
writeln('__bid_trunctdsf: ',NativeInt(@__bid_trunctdsf));
|
||||||
|
writeln('__bid_trunctddf: ',NativeInt(@__bid_trunctddf));
|
||||||
|
writeln('__bid_trunctdxf: ',NativeInt(@__bid_trunctdxf));
|
||||||
|
writeln('__bid_trunctdtf: ',NativeInt(@__bid_trunctdtf));
|
||||||
|
writeln('__bid_extendsftd: ',NativeInt(@__bid_extendsftd));
|
||||||
|
writeln('__bid_extenddftd: ',NativeInt(@__bid_extenddftd));
|
||||||
|
writeln('__bid_extendxftd: ',NativeInt(@__bid_extendxftd));
|
||||||
|
writeln('__bid_extendtftd: ',NativeInt(@__bid_extendtftd));
|
||||||
|
writeln('__bid_trunctdsd2: ',NativeInt(@__bid_trunctdsd2));
|
||||||
|
writeln('__bid_trunctddd2: ',NativeInt(@__bid_trunctddd2));
|
||||||
|
writeln('__bid_unordtd2: ',NativeInt(@__bid_unordtd2));
|
||||||
|
writeln('__sfp_handle_exceptions: ',NativeInt(@__sfp_handle_exceptions));
|
||||||
|
writeln('__addtf3: ',NativeInt(@__addtf3));
|
||||||
|
writeln('__divtf3: ',NativeInt(@__divtf3));
|
||||||
|
writeln('__eqtf2: ',NativeInt(@__eqtf2));
|
||||||
|
writeln('__netf2: ',NativeInt(@__netf2));
|
||||||
|
writeln('__getf2: ',NativeInt(@__getf2));
|
||||||
|
writeln('__gttf2: ',NativeInt(@__gttf2));
|
||||||
|
writeln('__letf2: ',NativeInt(@__letf2));
|
||||||
|
writeln('__lttf2: ',NativeInt(@__lttf2));
|
||||||
|
writeln('__multf3: ',NativeInt(@__multf3));
|
||||||
|
writeln('__negtf2: ',NativeInt(@__negtf2));
|
||||||
|
writeln('__subtf3: ',NativeInt(@__subtf3));
|
||||||
|
writeln('__unordtf2: ',NativeInt(@__unordtf2));
|
||||||
|
writeln('__fixtfsi: ',NativeInt(@__fixtfsi));
|
||||||
|
writeln('__fixunstfsi: ',NativeInt(@__fixunstfsi));
|
||||||
|
writeln('__floatsitf: ',NativeInt(@__floatsitf));
|
||||||
|
writeln('__floatunsitf: ',NativeInt(@__floatunsitf));
|
||||||
|
writeln('__fixtfdi: ',NativeInt(@__fixtfdi));
|
||||||
|
writeln('__fixunstfdi: ',NativeInt(@__fixunstfdi));
|
||||||
|
writeln('__floatditf: ',NativeInt(@__floatditf));
|
||||||
|
writeln('__floatunditf: ',NativeInt(@__floatunditf));
|
||||||
|
writeln('__fixtfti: ',NativeInt(@__fixtfti));
|
||||||
|
writeln('__fixunstfti: ',NativeInt(@__fixunstfti));
|
||||||
|
writeln('__floattitf: ',NativeInt(@__floattitf));
|
||||||
|
writeln('__floatuntitf: ',NativeInt(@__floatuntitf));
|
||||||
|
writeln('__extendsftf2: ',NativeInt(@__extendsftf2));
|
||||||
|
writeln('__extenddftf2: ',NativeInt(@__extenddftf2));
|
||||||
|
writeln('__extendxftf2: ',NativeInt(@__extendxftf2));
|
||||||
|
writeln('__trunctfsf2: ',NativeInt(@__trunctfsf2));
|
||||||
|
writeln('__trunctfdf2: ',NativeInt(@__trunctfdf2));
|
||||||
|
writeln('__trunctfxf2: ',NativeInt(@__trunctfxf2));
|
||||||
|
writeln('__enable_execute_stack: ',NativeInt(@__enable_execute_stack));
|
||||||
|
{$ELSE}
|
||||||
|
writeln('___chkstk: ',NativeInt(@___chkstk));
|
||||||
|
writeln('__alloca: ',NativeInt(@__alloca));
|
||||||
|
writeln('___chkstk_ms: ',NativeInt(@___chkstk_ms));
|
||||||
|
writeln('___muldi3: ',NativeInt(@___muldi3));
|
||||||
|
writeln('___negdi2: ',NativeInt(@___negdi2));
|
||||||
|
writeln('___lshrdi3: ',NativeInt(@___lshrdi3));
|
||||||
|
writeln('___ashldi3: ',NativeInt(@___ashldi3));
|
||||||
|
writeln('___ashrdi3: ',NativeInt(@___ashrdi3));
|
||||||
|
writeln('___cmpdi2: ',NativeInt(@___cmpdi2));
|
||||||
|
writeln('___ucmpdi2: ',NativeInt(@___ucmpdi2));
|
||||||
|
writeln('___clear_cache: ',NativeInt(@___clear_cache));
|
||||||
|
writeln('___do_global_dtors: ',NativeInt(@___do_global_dtors));
|
||||||
|
writeln('___absvsi2: ',NativeInt(@___absvsi2));
|
||||||
|
writeln('___absvdi2: ',NativeInt(@___absvdi2));
|
||||||
|
writeln('___addvsi3: ',NativeInt(@___addvsi3));
|
||||||
|
writeln('___addvdi3: ',NativeInt(@___addvdi3));
|
||||||
|
writeln('___subvsi3: ',NativeInt(@___subvsi3));
|
||||||
|
writeln('___subvdi3: ',NativeInt(@___subvdi3));
|
||||||
|
writeln('___mulvsi3: ',NativeInt(@___mulvsi3));
|
||||||
|
writeln('___mulvdi3: ',NativeInt(@___mulvdi3));
|
||||||
|
writeln('___negvsi2: ',NativeInt(@___negvsi2));
|
||||||
|
writeln('___negvdi2: ',NativeInt(@___negvdi2));
|
||||||
|
writeln('___ffssi2: ',NativeInt(@___ffssi2));
|
||||||
|
writeln('___ffsdi2: ',NativeInt(@___ffsdi2));
|
||||||
|
writeln('___clzsi2: ',NativeInt(@___clzsi2));
|
||||||
|
writeln('___clzdi2: ',NativeInt(@___clzdi2));
|
||||||
|
writeln('___ctzsi2: ',NativeInt(@___ctzsi2));
|
||||||
|
writeln('___ctzdi2: ',NativeInt(@___ctzdi2));
|
||||||
|
writeln('___popcountsi2: ',NativeInt(@___popcountsi2));
|
||||||
|
writeln('___popcountdi2: ',NativeInt(@___popcountdi2));
|
||||||
|
writeln('___paritysi2: ',NativeInt(@___paritysi2));
|
||||||
|
writeln('___paritydi2: ',NativeInt(@___paritydi2));
|
||||||
|
writeln('___powisf2: ',NativeInt(@___powisf2));
|
||||||
|
writeln('___powidf2: ',NativeInt(@___powidf2));
|
||||||
|
writeln('___powixf2: ',NativeInt(@___powixf2));
|
||||||
|
writeln('___powitf2: ',NativeInt(@___powitf2));
|
||||||
|
writeln('___mulsc3: ',NativeInt(@___mulsc3));
|
||||||
|
writeln('___muldc3: ',NativeInt(@___muldc3));
|
||||||
|
writeln('___mulxc3: ',NativeInt(@___mulxc3));
|
||||||
|
writeln('___multc3: ',NativeInt(@___multc3));
|
||||||
|
writeln('___divsc3: ',NativeInt(@___divsc3));
|
||||||
|
writeln('___divdc3: ',NativeInt(@___divdc3));
|
||||||
|
writeln('___divxc3: ',NativeInt(@___divxc3));
|
||||||
|
writeln('___divtc3: ',NativeInt(@___divtc3));
|
||||||
|
writeln('___bswapsi2: ',NativeInt(@___bswapsi2));
|
||||||
|
writeln('___bswapdi2: ',NativeInt(@___bswapdi2));
|
||||||
|
writeln('___clrsbsi2: ',NativeInt(@___clrsbsi2));
|
||||||
|
writeln('___clrsbdi2: ',NativeInt(@___clrsbdi2));
|
||||||
|
writeln('___fixunssfsi: ',NativeInt(@___fixunssfsi));
|
||||||
|
writeln('___fixunsdfsi: ',NativeInt(@___fixunsdfsi));
|
||||||
|
writeln('___fixunsxfsi: ',NativeInt(@___fixunsxfsi));
|
||||||
|
writeln('___fixsfdi: ',NativeInt(@___fixsfdi));
|
||||||
|
writeln('___fixdfdi: ',NativeInt(@___fixdfdi));
|
||||||
|
writeln('___fixxfdi: ',NativeInt(@___fixxfdi));
|
||||||
|
writeln('___fixunssfdi: ',NativeInt(@___fixunssfdi));
|
||||||
|
writeln('___fixunsdfdi: ',NativeInt(@___fixunsdfdi));
|
||||||
|
writeln('___fixunsxfdi: ',NativeInt(@___fixunsxfdi));
|
||||||
|
writeln('___floatdisf: ',NativeInt(@___floatdisf));
|
||||||
|
writeln('___floatdidf: ',NativeInt(@___floatdidf));
|
||||||
|
writeln('___floatdixf: ',NativeInt(@___floatdixf));
|
||||||
|
writeln('___floatundisf: ',NativeInt(@___floatundisf));
|
||||||
|
writeln('___floatundidf: ',NativeInt(@___floatundidf));
|
||||||
|
writeln('___floatundixf: ',NativeInt(@___floatundixf));
|
||||||
|
writeln('___gcc_bcmp: ',NativeInt(@___gcc_bcmp));
|
||||||
|
writeln('___divdi3: ',NativeInt(@___divdi3));
|
||||||
|
writeln('___moddi3: ',NativeInt(@___moddi3));
|
||||||
|
writeln('___divmoddi4: ',NativeInt(@___divmoddi4));
|
||||||
|
writeln('___udivdi3: ',NativeInt(@___udivdi3));
|
||||||
|
writeln('___umoddi3: ',NativeInt(@___umoddi3));
|
||||||
|
writeln('___udivmoddi4: ',NativeInt(@___udivmoddi4));
|
||||||
|
writeln('___udiv_w_sdiv: ',NativeInt(@___udiv_w_sdiv));
|
||||||
|
writeln('___dfp_set_round: ',NativeInt(@___dfp_set_round));
|
||||||
|
writeln('___bid32_to_binary32: ',NativeInt(@___bid32_to_binary32));
|
||||||
|
writeln('_isinfd32: ',NativeInt(@_isinfd32));
|
||||||
|
writeln('_isinfd64: ',NativeInt(@_isinfd64));
|
||||||
|
writeln('_isinfd128: ',NativeInt(@_isinfd128));
|
||||||
|
writeln('___bid64_isSigned: ',NativeInt(@___bid64_isSigned));
|
||||||
|
writeln('___bid128_isSigned: ',NativeInt(@___bid128_isSigned));
|
||||||
|
writeln('___bid_round64_2_18: ',NativeInt(@___bid_round64_2_18));
|
||||||
|
writeln('___bid64_from_int32: ',NativeInt(@___bid64_from_int32));
|
||||||
|
writeln('___bid64_add: ',NativeInt(@___bid64_add));
|
||||||
|
writeln('___bid64dq_add: ',NativeInt(@___bid64dq_add));
|
||||||
|
writeln('___bid64_mul: ',NativeInt(@___bid64_mul));
|
||||||
|
writeln('___bid64qq_mul: ',NativeInt(@___bid64qq_mul));
|
||||||
|
writeln('___bid64_quiet_equal: ',NativeInt(@___bid64_quiet_equal));
|
||||||
|
writeln('___bid128_quiet_equal: ',NativeInt(@___bid128_quiet_equal));
|
||||||
|
writeln('___bid32_to_bid64: ',NativeInt(@___bid32_to_bid64));
|
||||||
|
writeln('___bid32_to_bid128: ',NativeInt(@___bid32_to_bid128));
|
||||||
|
writeln('___bid64_to_bid128: ',NativeInt(@___bid64_to_bid128));
|
||||||
|
writeln('___bid64_to_int32_rnint: ',NativeInt(@___bid64_to_int32_rnint));
|
||||||
|
writeln('___bid64_to_int64_rnint: ',NativeInt(@___bid64_to_int64_rnint));
|
||||||
|
writeln('___bid64_to_uint32_rnint: ',NativeInt(@___bid64_to_uint32_rnint));
|
||||||
|
writeln('___bid64_to_uint64_rnint: ',NativeInt(@___bid64_to_uint64_rnint));
|
||||||
|
writeln('___bid128_to_int32_rnint: ',NativeInt(@___bid128_to_int32_rnint));
|
||||||
|
writeln('___bid128_to_int64_rnint: ',NativeInt(@___bid128_to_int64_rnint));
|
||||||
|
writeln('___bid128_to_uint32_rnint: ',NativeInt(@___bid128_to_uint32_rnint));
|
||||||
|
writeln('___bid128_to_uint64_rnint: ',NativeInt(@___bid128_to_uint64_rnint));
|
||||||
|
writeln('___bid_addsd3: ',NativeInt(@___bid_addsd3));
|
||||||
|
writeln('___bid_divsd3: ',NativeInt(@___bid_divsd3));
|
||||||
|
writeln('___bid_mulsd3: ',NativeInt(@___bid_mulsd3));
|
||||||
|
writeln('___bid_eqsd2: ',NativeInt(@___bid_eqsd2));
|
||||||
|
writeln('___bid_nesd2: ',NativeInt(@___bid_nesd2));
|
||||||
|
writeln('___bid_ltsd2: ',NativeInt(@___bid_ltsd2));
|
||||||
|
writeln('___bid_gtsd2: ',NativeInt(@___bid_gtsd2));
|
||||||
|
writeln('___bid_lesd2: ',NativeInt(@___bid_lesd2));
|
||||||
|
writeln('___bid_gesd2: ',NativeInt(@___bid_gesd2));
|
||||||
|
writeln('___bid_fixsdsi: ',NativeInt(@___bid_fixsdsi));
|
||||||
|
writeln('___bid_fixsddi: ',NativeInt(@___bid_fixsddi));
|
||||||
|
writeln('___bid_fixunssdsi: ',NativeInt(@___bid_fixunssdsi));
|
||||||
|
writeln('___bid_fixunssddi: ',NativeInt(@___bid_fixunssddi));
|
||||||
|
writeln('___bid_floatsisd: ',NativeInt(@___bid_floatsisd));
|
||||||
|
writeln('___bid_floatdisd: ',NativeInt(@___bid_floatdisd));
|
||||||
|
writeln('___bid_floatunssisd: ',NativeInt(@___bid_floatunssisd));
|
||||||
|
writeln('___bid_floatunsdisd: ',NativeInt(@___bid_floatunsdisd));
|
||||||
|
writeln('___bid_truncsdsf: ',NativeInt(@___bid_truncsdsf));
|
||||||
|
writeln('___bid_extendsddf: ',NativeInt(@___bid_extendsddf));
|
||||||
|
writeln('___bid_extendsdxf: ',NativeInt(@___bid_extendsdxf));
|
||||||
|
writeln('___bid_extendsdtf: ',NativeInt(@___bid_extendsdtf));
|
||||||
|
writeln('___bid_extendsfsd: ',NativeInt(@___bid_extendsfsd));
|
||||||
|
writeln('___bid_truncdfsd: ',NativeInt(@___bid_truncdfsd));
|
||||||
|
writeln('___bid_truncxfsd: ',NativeInt(@___bid_truncxfsd));
|
||||||
|
writeln('___bid_trunctfsd: ',NativeInt(@___bid_trunctfsd));
|
||||||
|
writeln('___bid_extendsddd2: ',NativeInt(@___bid_extendsddd2));
|
||||||
|
writeln('___bid_extendsdtd2: ',NativeInt(@___bid_extendsdtd2));
|
||||||
|
writeln('___bid_unordsd2: ',NativeInt(@___bid_unordsd2));
|
||||||
|
writeln('___bid_adddd3: ',NativeInt(@___bid_adddd3));
|
||||||
|
writeln('___bid_divdd3: ',NativeInt(@___bid_divdd3));
|
||||||
|
writeln('___bid_muldd3: ',NativeInt(@___bid_muldd3));
|
||||||
|
writeln('___bid_eqdd2: ',NativeInt(@___bid_eqdd2));
|
||||||
|
writeln('___bid_nedd2: ',NativeInt(@___bid_nedd2));
|
||||||
|
writeln('___bid_ltdd2: ',NativeInt(@___bid_ltdd2));
|
||||||
|
writeln('___bid_gtdd2: ',NativeInt(@___bid_gtdd2));
|
||||||
|
writeln('___bid_ledd2: ',NativeInt(@___bid_ledd2));
|
||||||
|
writeln('___bid_gedd2: ',NativeInt(@___bid_gedd2));
|
||||||
|
writeln('___bid_fixddsi: ',NativeInt(@___bid_fixddsi));
|
||||||
|
writeln('___bid_fixdddi: ',NativeInt(@___bid_fixdddi));
|
||||||
|
writeln('___bid_fixunsddsi: ',NativeInt(@___bid_fixunsddsi));
|
||||||
|
writeln('___bid_fixunsdddi: ',NativeInt(@___bid_fixunsdddi));
|
||||||
|
writeln('___bid_floatsidd: ',NativeInt(@___bid_floatsidd));
|
||||||
|
writeln('___bid_floatdidd: ',NativeInt(@___bid_floatdidd));
|
||||||
|
writeln('___bid_floatunssidd: ',NativeInt(@___bid_floatunssidd));
|
||||||
|
writeln('___bid_floatunsdidd: ',NativeInt(@___bid_floatunsdidd));
|
||||||
|
writeln('___bid_truncddsf: ',NativeInt(@___bid_truncddsf));
|
||||||
|
writeln('___bid_truncdddf: ',NativeInt(@___bid_truncdddf));
|
||||||
|
writeln('___bid_extendddxf: ',NativeInt(@___bid_extendddxf));
|
||||||
|
writeln('___bid_extendddtf: ',NativeInt(@___bid_extendddtf));
|
||||||
|
writeln('___bid_extendsfdd: ',NativeInt(@___bid_extendsfdd));
|
||||||
|
writeln('___bid_extenddfdd: ',NativeInt(@___bid_extenddfdd));
|
||||||
|
writeln('___bid_truncxfdd: ',NativeInt(@___bid_truncxfdd));
|
||||||
|
writeln('___bid_trunctfdd: ',NativeInt(@___bid_trunctfdd));
|
||||||
|
writeln('___bid_truncddsd2: ',NativeInt(@___bid_truncddsd2));
|
||||||
|
writeln('___bid_extendddtd2: ',NativeInt(@___bid_extendddtd2));
|
||||||
|
writeln('___bid_unorddd2: ',NativeInt(@___bid_unorddd2));
|
||||||
|
writeln('___bid_addtd3: ',NativeInt(@___bid_addtd3));
|
||||||
|
writeln('___bid_divtd3: ',NativeInt(@___bid_divtd3));
|
||||||
|
writeln('___bid_multd3: ',NativeInt(@___bid_multd3));
|
||||||
|
writeln('___bid_eqtd2: ',NativeInt(@___bid_eqtd2));
|
||||||
|
writeln('___bid_netd2: ',NativeInt(@___bid_netd2));
|
||||||
|
writeln('___bid_lttd2: ',NativeInt(@___bid_lttd2));
|
||||||
|
writeln('___bid_gttd2: ',NativeInt(@___bid_gttd2));
|
||||||
|
writeln('___bid_letd2: ',NativeInt(@___bid_letd2));
|
||||||
|
writeln('___bid_getd2: ',NativeInt(@___bid_getd2));
|
||||||
|
writeln('___bid_fixtdsi: ',NativeInt(@___bid_fixtdsi));
|
||||||
|
writeln('___bid_fixtddi: ',NativeInt(@___bid_fixtddi));
|
||||||
|
writeln('___bid_fixunstdsi: ',NativeInt(@___bid_fixunstdsi));
|
||||||
|
writeln('___bid_fixunstddi: ',NativeInt(@___bid_fixunstddi));
|
||||||
|
writeln('___bid_floatsitd: ',NativeInt(@___bid_floatsitd));
|
||||||
|
writeln('___bid_floatditd: ',NativeInt(@___bid_floatditd));
|
||||||
|
writeln('___bid_floatunssitd: ',NativeInt(@___bid_floatunssitd));
|
||||||
|
writeln('___bid_floatunsditd: ',NativeInt(@___bid_floatunsditd));
|
||||||
|
writeln('___bid_trunctdsf: ',NativeInt(@___bid_trunctdsf));
|
||||||
|
writeln('___bid_trunctddf: ',NativeInt(@___bid_trunctddf));
|
||||||
|
writeln('___bid_trunctdxf: ',NativeInt(@___bid_trunctdxf));
|
||||||
|
writeln('___bid_trunctdtf: ',NativeInt(@___bid_trunctdtf));
|
||||||
|
writeln('___bid_extendsftd: ',NativeInt(@___bid_extendsftd));
|
||||||
|
writeln('___bid_extenddftd: ',NativeInt(@___bid_extenddftd));
|
||||||
|
writeln('___bid_extendxftd: ',NativeInt(@___bid_extendxftd));
|
||||||
|
writeln('___bid_extendtftd: ',NativeInt(@___bid_extendtftd));
|
||||||
|
writeln('___bid_trunctdsd2: ',NativeInt(@___bid_trunctdsd2));
|
||||||
|
writeln('___bid_trunctddd2: ',NativeInt(@___bid_trunctddd2));
|
||||||
|
writeln('___bid_unordtd2: ',NativeInt(@___bid_unordtd2));
|
||||||
|
writeln('___copysigntf3: ',NativeInt(@___copysigntf3));
|
||||||
|
writeln('___sfp_handle_exceptions: ',NativeInt(@___sfp_handle_exceptions));
|
||||||
|
writeln('___addtf3: ',NativeInt(@___addtf3));
|
||||||
|
writeln('___divtf3: ',NativeInt(@___divtf3));
|
||||||
|
writeln('___eqtf2: ',NativeInt(@___eqtf2));
|
||||||
|
writeln('___netf2: ',NativeInt(@___netf2));
|
||||||
|
writeln('___getf2: ',NativeInt(@___getf2));
|
||||||
|
writeln('___gttf2: ',NativeInt(@___gttf2));
|
||||||
|
writeln('___letf2: ',NativeInt(@___letf2));
|
||||||
|
writeln('___lttf2: ',NativeInt(@___lttf2));
|
||||||
|
writeln('___multf3: ',NativeInt(@___multf3));
|
||||||
|
writeln('___negtf2: ',NativeInt(@___negtf2));
|
||||||
|
writeln('___subtf3: ',NativeInt(@___subtf3));
|
||||||
|
writeln('___unordtf2: ',NativeInt(@___unordtf2));
|
||||||
|
writeln('___fixtfsi: ',NativeInt(@___fixtfsi));
|
||||||
|
writeln('___fixunstfsi: ',NativeInt(@___fixunstfsi));
|
||||||
|
writeln('___floatsitf: ',NativeInt(@___floatsitf));
|
||||||
|
writeln('___floatunsitf: ',NativeInt(@___floatunsitf));
|
||||||
|
writeln('___fixtfdi: ',NativeInt(@___fixtfdi));
|
||||||
|
writeln('___fixunstfdi: ',NativeInt(@___fixunstfdi));
|
||||||
|
writeln('___floatditf: ',NativeInt(@___floatditf));
|
||||||
|
writeln('___floatunditf: ',NativeInt(@___floatunditf));
|
||||||
|
writeln('___extendsftf2: ',NativeInt(@___extendsftf2));
|
||||||
|
writeln('___extenddftf2: ',NativeInt(@___extenddftf2));
|
||||||
|
writeln('___extendxftf2: ',NativeInt(@___extendxftf2));
|
||||||
|
writeln('___trunctfsf2: ',NativeInt(@___trunctfsf2));
|
||||||
|
writeln('___trunctfdf2: ',NativeInt(@___trunctfdf2));
|
||||||
|
writeln('___trunctfxf2: ',NativeInt(@___trunctfxf2));
|
||||||
|
{$ENDIF}
|
||||||
|
except
|
||||||
|
on E : Exception do Writeln(E.ClassName,': ',E.Message);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end.
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,164 @@
|
||||||
|
unit testlibvcruntime140;
|
||||||
|
interface
|
||||||
|
uses SysUtils,libvcruntime140;
|
||||||
|
procedure test_libvcruntime140;
|
||||||
|
implementation
|
||||||
|
procedure test_libvcruntime140;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
{$IFDEF WIN64}
|
||||||
|
writeln('wcsstr: ',NativeInt(@wcsstr));
|
||||||
|
writeln('wcsrchr: ',NativeInt(@wcsrchr));
|
||||||
|
writeln('wcschr: ',NativeInt(@wcschr));
|
||||||
|
writeln('unexpected: ',NativeInt(@unexpected));
|
||||||
|
writeln('strstr: ',NativeInt(@strstr));
|
||||||
|
writeln('strrchr: ',NativeInt(@strrchr));
|
||||||
|
writeln('strchr: ',NativeInt(@strchr));
|
||||||
|
writeln('set_unexpected: ',NativeInt(@set_unexpected));
|
||||||
|
writeln('memset: ',NativeInt(@memset));
|
||||||
|
writeln('memmove: ',NativeInt(@memmove));
|
||||||
|
writeln('memcpy: ',NativeInt(@memcpy));
|
||||||
|
writeln('memcmp: ',NativeInt(@memcmp));
|
||||||
|
writeln('memchr: ',NativeInt(@memchr));
|
||||||
|
writeln('longjmp: ',NativeInt(@longjmp));
|
||||||
|
writeln('_set_se_translator: ',NativeInt(@_set_se_translator));
|
||||||
|
writeln('_set_purecall_handler: ',NativeInt(@_set_purecall_handler));
|
||||||
|
writeln('_purecall: ',NativeInt(@_purecall));
|
||||||
|
writeln('_local_unwind: ',NativeInt(@_local_unwind));
|
||||||
|
writeln('_is_exception_typeof: ',NativeInt(@_is_exception_typeof));
|
||||||
|
writeln('_get_unexpected: ',NativeInt(@_get_unexpected));
|
||||||
|
writeln('_get_purecall_handler: ',NativeInt(@_get_purecall_handler));
|
||||||
|
writeln('__vcrt_LoadLibraryExW: ',NativeInt(@__vcrt_LoadLibraryExW));
|
||||||
|
writeln('__vcrt_InitializeCriticalSectionEx: ',NativeInt(@__vcrt_InitializeCriticalSectionEx));
|
||||||
|
writeln('__vcrt_GetModuleHandleW: ',NativeInt(@__vcrt_GetModuleHandleW));
|
||||||
|
writeln('__vcrt_GetModuleFileNameW: ',NativeInt(@__vcrt_GetModuleFileNameW));
|
||||||
|
writeln('__uncaught_exceptions: ',NativeInt(@__uncaught_exceptions));
|
||||||
|
writeln('__uncaught_exception: ',NativeInt(@__uncaught_exception));
|
||||||
|
writeln('__unDNameEx: ',NativeInt(@__unDNameEx));
|
||||||
|
writeln('__unDName: ',NativeInt(@__unDName));
|
||||||
|
writeln('__telemetry_main_return_trigger: ',NativeInt(@__telemetry_main_return_trigger));
|
||||||
|
writeln('__telemetry_main_invoke_trigger: ',NativeInt(@__telemetry_main_invoke_trigger));
|
||||||
|
writeln('__std_type_info_name: ',NativeInt(@__std_type_info_name));
|
||||||
|
writeln('__std_type_info_hash: ',NativeInt(@__std_type_info_hash));
|
||||||
|
writeln('__std_type_info_destroy_list: ',NativeInt(@__std_type_info_destroy_list));
|
||||||
|
writeln('__std_type_info_compare: ',NativeInt(@__std_type_info_compare));
|
||||||
|
writeln('__std_terminate: ',NativeInt(@__std_terminate));
|
||||||
|
writeln('__std_exception_destroy: ',NativeInt(@__std_exception_destroy));
|
||||||
|
writeln('__std_exception_copy: ',NativeInt(@__std_exception_copy));
|
||||||
|
writeln('__report_gsfailure: ',NativeInt(@__report_gsfailure));
|
||||||
|
writeln('__processing_throw: ',NativeInt(@__processing_throw));
|
||||||
|
writeln('__intrinsic_setjmpex: ',NativeInt(@__intrinsic_setjmpex));
|
||||||
|
writeln('__intrinsic_setjmp: ',NativeInt(@__intrinsic_setjmp));
|
||||||
|
writeln('__current_exception_context: ',NativeInt(@__current_exception_context));
|
||||||
|
writeln('__current_exception: ',NativeInt(@__current_exception));
|
||||||
|
writeln('__TypeMatch: ',NativeInt(@__TypeMatch));
|
||||||
|
writeln('__RTtypeid: ',NativeInt(@__RTtypeid));
|
||||||
|
writeln('__RTDynamicCast: ',NativeInt(@__RTDynamicCast));
|
||||||
|
writeln('__RTCastToVoid: ',NativeInt(@__RTCastToVoid));
|
||||||
|
writeln('__NLG_Return2: ',NativeInt(@__NLG_Return2));
|
||||||
|
writeln('__NLG_Dispatch2: ',NativeInt(@__NLG_Dispatch2));
|
||||||
|
writeln('__GetPlatformExceptionInfo: ',NativeInt(@__GetPlatformExceptionInfo));
|
||||||
|
writeln('__FrameUnwindFilter: ',NativeInt(@__FrameUnwindFilter));
|
||||||
|
writeln('__DestructExceptionObject: ',NativeInt(@__DestructExceptionObject));
|
||||||
|
writeln('__CxxUnregisterExceptionObject: ',NativeInt(@__CxxUnregisterExceptionObject));
|
||||||
|
writeln('__CxxRegisterExceptionObject: ',NativeInt(@__CxxRegisterExceptionObject));
|
||||||
|
writeln('__CxxQueryExceptionSize: ',NativeInt(@__CxxQueryExceptionSize));
|
||||||
|
writeln('__CxxFrameHandler3: ',NativeInt(@__CxxFrameHandler3));
|
||||||
|
writeln('__CxxFrameHandler2: ',NativeInt(@__CxxFrameHandler2));
|
||||||
|
writeln('__CxxFrameHandler: ',NativeInt(@__CxxFrameHandler));
|
||||||
|
writeln('__CxxExceptionFilter: ',NativeInt(@__CxxExceptionFilter));
|
||||||
|
writeln('__CxxDetectRethrow: ',NativeInt(@__CxxDetectRethrow));
|
||||||
|
writeln('__C_specific_handler_noexcept: ',NativeInt(@__C_specific_handler_noexcept));
|
||||||
|
writeln('__C_specific_handler: ',NativeInt(@__C_specific_handler));
|
||||||
|
writeln('__BuildCatchObjectHelper: ',NativeInt(@__BuildCatchObjectHelper));
|
||||||
|
writeln('__BuildCatchObject: ',NativeInt(@__BuildCatchObject));
|
||||||
|
writeln('__AdjustPointer: ',NativeInt(@__AdjustPointer));
|
||||||
|
writeln('_SetWinRTOutOfMemoryExceptionCallback: ',NativeInt(@_SetWinRTOutOfMemoryExceptionCallback));
|
||||||
|
writeln('_IsExceptionObjectToBeDestroyed: ',NativeInt(@_IsExceptionObjectToBeDestroyed));
|
||||||
|
writeln('_FindAndUnlinkFrame: ',NativeInt(@_FindAndUnlinkFrame));
|
||||||
|
writeln('_CxxThrowException: ',NativeInt(@_CxxThrowException));
|
||||||
|
writeln('_CreateFrameInfo: ',NativeInt(@_CreateFrameInfo));
|
||||||
|
{$ELSE}
|
||||||
|
writeln('_wcsstr: ',NativeInt(@_wcsstr));
|
||||||
|
writeln('_wcsrchr: ',NativeInt(@_wcsrchr));
|
||||||
|
writeln('_wcschr: ',NativeInt(@_wcschr));
|
||||||
|
writeln('_unexpected: ',NativeInt(@_unexpected));
|
||||||
|
writeln('_strstr: ',NativeInt(@_strstr));
|
||||||
|
writeln('_strrchr: ',NativeInt(@_strrchr));
|
||||||
|
writeln('_strchr: ',NativeInt(@_strchr));
|
||||||
|
writeln('_set_unexpected: ',NativeInt(@_set_unexpected));
|
||||||
|
writeln('_memset: ',NativeInt(@_memset));
|
||||||
|
writeln('_memmove: ',NativeInt(@_memmove));
|
||||||
|
writeln('_memcpy: ',NativeInt(@_memcpy));
|
||||||
|
writeln('_memcmp: ',NativeInt(@_memcmp));
|
||||||
|
writeln('_memchr: ',NativeInt(@_memchr));
|
||||||
|
writeln('_longjmp: ',NativeInt(@_longjmp));
|
||||||
|
writeln('__setjmp3: ',NativeInt(@__setjmp3));
|
||||||
|
writeln('__set_se_translator: ',NativeInt(@__set_se_translator));
|
||||||
|
writeln('__set_purecall_handler: ',NativeInt(@__set_purecall_handler));
|
||||||
|
writeln('__purecall: ',NativeInt(@__purecall));
|
||||||
|
writeln('__longjmpex: ',NativeInt(@__longjmpex));
|
||||||
|
writeln('__local_unwind4: ',NativeInt(@__local_unwind4));
|
||||||
|
writeln('__local_unwind2: ',NativeInt(@__local_unwind2));
|
||||||
|
writeln('__is_exception_typeof: ',NativeInt(@__is_exception_typeof));
|
||||||
|
writeln('__global_unwind2: ',NativeInt(@__global_unwind2));
|
||||||
|
writeln('__get_unexpected: ',NativeInt(@__get_unexpected));
|
||||||
|
writeln('__get_purecall_handler: ',NativeInt(@__get_purecall_handler));
|
||||||
|
writeln('__except_handler4_common: ',NativeInt(@__except_handler4_common));
|
||||||
|
writeln('__except_handler3: ',NativeInt(@__except_handler3));
|
||||||
|
writeln('__except_handler2: ',NativeInt(@__except_handler2));
|
||||||
|
writeln('__chkesp: ',NativeInt(@__chkesp));
|
||||||
|
writeln('___vcrt_LoadLibraryExW: ',NativeInt(@___vcrt_LoadLibraryExW));
|
||||||
|
writeln('___vcrt_InitializeCriticalSectionEx: ',NativeInt(@___vcrt_InitializeCriticalSectionEx));
|
||||||
|
writeln('___vcrt_GetModuleHandleW: ',NativeInt(@___vcrt_GetModuleHandleW));
|
||||||
|
writeln('___vcrt_GetModuleFileNameW: ',NativeInt(@___vcrt_GetModuleFileNameW));
|
||||||
|
writeln('___uncaught_exceptions: ',NativeInt(@___uncaught_exceptions));
|
||||||
|
writeln('___uncaught_exception: ',NativeInt(@___uncaught_exception));
|
||||||
|
writeln('___unDNameEx: ',NativeInt(@___unDNameEx));
|
||||||
|
writeln('___unDName: ',NativeInt(@___unDName));
|
||||||
|
writeln('___telemetry_main_return_trigger: ',NativeInt(@___telemetry_main_return_trigger));
|
||||||
|
writeln('___telemetry_main_invoke_trigger: ',NativeInt(@___telemetry_main_invoke_trigger));
|
||||||
|
writeln('___std_type_info_name: ',NativeInt(@___std_type_info_name));
|
||||||
|
writeln('___std_type_info_hash: ',NativeInt(@___std_type_info_hash));
|
||||||
|
writeln('___std_type_info_destroy_list: ',NativeInt(@___std_type_info_destroy_list));
|
||||||
|
writeln('___std_type_info_compare: ',NativeInt(@___std_type_info_compare));
|
||||||
|
writeln('___std_terminate: ',NativeInt(@___std_terminate));
|
||||||
|
writeln('___std_exception_destroy: ',NativeInt(@___std_exception_destroy));
|
||||||
|
writeln('___std_exception_copy: ',NativeInt(@___std_exception_copy));
|
||||||
|
writeln('___report_gsfailure: ',NativeInt(@___report_gsfailure));
|
||||||
|
writeln('___processing_throw: ',NativeInt(@___processing_throw));
|
||||||
|
writeln('___intrinsic_setjmp: ',NativeInt(@___intrinsic_setjmp));
|
||||||
|
writeln('___current_exception_context: ',NativeInt(@___current_exception_context));
|
||||||
|
writeln('___current_exception: ',NativeInt(@___current_exception));
|
||||||
|
writeln('___TypeMatch: ',NativeInt(@___TypeMatch));
|
||||||
|
writeln('___RTtypeid: ',NativeInt(@___RTtypeid));
|
||||||
|
writeln('___RTDynamicCast: ',NativeInt(@___RTDynamicCast));
|
||||||
|
writeln('___RTCastToVoid: ',NativeInt(@___RTCastToVoid));
|
||||||
|
writeln('___GetPlatformExceptionInfo: ',NativeInt(@___GetPlatformExceptionInfo));
|
||||||
|
writeln('___FrameUnwindFilter: ',NativeInt(@___FrameUnwindFilter));
|
||||||
|
writeln('___DestructExceptionObject: ',NativeInt(@___DestructExceptionObject));
|
||||||
|
writeln('___CxxUnregisterExceptionObject: ',NativeInt(@___CxxUnregisterExceptionObject));
|
||||||
|
writeln('___CxxRegisterExceptionObject: ',NativeInt(@___CxxRegisterExceptionObject));
|
||||||
|
writeln('___CxxQueryExceptionSize: ',NativeInt(@___CxxQueryExceptionSize));
|
||||||
|
writeln('___CxxFrameHandler3: ',NativeInt(@___CxxFrameHandler3));
|
||||||
|
writeln('___CxxFrameHandler2: ',NativeInt(@___CxxFrameHandler2));
|
||||||
|
writeln('___CxxFrameHandler: ',NativeInt(@___CxxFrameHandler));
|
||||||
|
writeln('___CxxExceptionFilter: ',NativeInt(@___CxxExceptionFilter));
|
||||||
|
writeln('___CxxDetectRethrow: ',NativeInt(@___CxxDetectRethrow));
|
||||||
|
writeln('___BuildCatchObjectHelper: ',NativeInt(@___BuildCatchObjectHelper));
|
||||||
|
writeln('___BuildCatchObject: ',NativeInt(@___BuildCatchObject));
|
||||||
|
writeln('___AdjustPointer: ',NativeInt(@___AdjustPointer));
|
||||||
|
writeln('__SetWinRTOutOfMemoryExceptionCallback: ',NativeInt(@__SetWinRTOutOfMemoryExceptionCallback));
|
||||||
|
writeln('__NLG_Return2: ',NativeInt(@__NLG_Return2));
|
||||||
|
writeln('__NLG_Return: ',NativeInt(@__NLG_Return));
|
||||||
|
writeln('__NLG_Dispatch2: ',NativeInt(@__NLG_Dispatch2));
|
||||||
|
writeln('__IsExceptionObjectToBeDestroyed: ',NativeInt(@__IsExceptionObjectToBeDestroyed));
|
||||||
|
writeln('__FindAndUnlinkFrame: ',NativeInt(@__FindAndUnlinkFrame));
|
||||||
|
writeln('__EH_prolog: ',NativeInt(@__EH_prolog));
|
||||||
|
writeln('__CreateFrameInfo: ',NativeInt(@__CreateFrameInfo));
|
||||||
|
{$ENDIF}
|
||||||
|
except
|
||||||
|
on E : Exception do Writeln(E.ClassName,': ',E.Message);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end.
|
|
@ -0,0 +1,21 @@
|
||||||
|
program testucrt;
|
||||||
|
|
||||||
|
{$APPTYPE CONSOLE}
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
uses
|
||||||
|
System.SysUtils,
|
||||||
|
libgcc in 'libgcc.pas',
|
||||||
|
testlibgcc in 'testlibgcc.pas';
|
||||||
|
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
{ TODO -oUser -cConsole Main : Insert code here }
|
||||||
|
test_libgcc;
|
||||||
|
readln;
|
||||||
|
except
|
||||||
|
on E: Exception do
|
||||||
|
Writeln(E.ClassName, ': ', E.Message);
|
||||||
|
end;
|
||||||
|
end.
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,63 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<BorlandProject>
|
||||||
|
<Transactions>
|
||||||
|
<Transaction>1899/12/30 00:00:00.000.157,=C:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899/12/30 00:00:00.000.596,=C:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899/12/30 00:00:00.000.680,=C:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2019/04/24 23:50:32.000.328,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2019/04/26 01:15:08.000.033,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2019/05/03 10:43:39.000.280,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2019/05/16 22:31:10.000.241,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2019/07/10 20:20:16.000.151,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2019/08/03 13:20:55.000.938,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2019/08/27 01:11:51.000.854,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2019/10/24 11:19:25.000.828,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2019/12/12 16:39:55.000.737,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/04/08 13:06:27.000.170,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/05/01 17:35:37.000.296,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/05/01 17:53:21.000.989,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/05/01 17:59:06.000.707,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/05/08 01:21:22.000.549,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/05/20 01:42:41.000.362,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/06/10 10:39:06.000.314,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/07/17 20:09:31.000.050,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/07/20 18:01:04.000.080,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/12/08 22:12:28.000.722,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2020/12/08 22:13:36.000.368,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2021/07/06 12:33:04.000.158,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2021/08/27 15:32:19.000.611,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2021/12/15 01:20:45.000.206,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/01/07 20:18:22.000.353,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/03/19 01:21:32.000.940,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/03/19 22:56:28.000.170,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/03/21 17:17:07.000.537,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/03/21 21:12:56.000.622,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/03/22 17:09:11.000.369,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/03/23 02:13:02.000.497,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/03/23 02:14:08.000.449,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/03/23 02:37:50.000.699,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/03/24 20:58:17.000.488,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/04/08 11:49:19.000.209,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/04/08 13:06:44.000.204,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/04/08 20:53:18.000.172,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/04/09 11:11:16.000.067,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Unit2.pas</Transaction>
|
||||||
|
<Transaction>2022/04/14 20:23:40.000.390,D:\Users\YW\Documents\Embarcadero\Studio\Projects\Project1.dproj=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\testucrt.dproj</Transaction>
|
||||||
|
<Transaction>2022/04/14 20:23:52.000.769,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libmsvcrt.pas</Transaction>
|
||||||
|
<Transaction>2022/04/14 20:24:50.000.186,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\testlibmsvcrt.pas</Transaction>
|
||||||
|
<Transaction>2022/04/14 20:59:07.000.736,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\testlibvcruntime140.pas</Transaction>
|
||||||
|
<Transaction>2022/04/14 20:59:07.000.720,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libvcruntime140.pas</Transaction>
|
||||||
|
<Transaction>2022/04/14 21:00:27.000.751,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\testlibvcruntime140.pas=</Transaction>
|
||||||
|
<Transaction>2022/04/14 21:00:27.000.711,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libvcruntime140.pas=</Transaction>
|
||||||
|
<Transaction>2022/04/15 01:46:00.000.287,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\testlibmsvcrt.pas=</Transaction>
|
||||||
|
<Transaction>2022/04/15 01:46:00.000.224,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libmsvcrt.pas=</Transaction>
|
||||||
|
<Transaction>2022/04/15 01:46:17.000.280,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libucrt.pas</Transaction>
|
||||||
|
<Transaction>2022/04/15 01:46:17.000.484,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\testlibucrt.pas</Transaction>
|
||||||
|
<Transaction>2022/04/15 11:15:34.772,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libucrt.pas=</Transaction>
|
||||||
|
<Transaction>2022/04/15 11:15:34.821,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\testlibucrt.pas=</Transaction>
|
||||||
|
<Transaction>2022/04/15 11:16:14.544,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\libgcc.pas</Transaction>
|
||||||
|
<Transaction>2022/04/15 11:16:14.747,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\LIBC\testlibgcc.pas</Transaction>
|
||||||
|
</Transactions>
|
||||||
|
<ActiveMobileDevice>
|
||||||
|
<NoProfile iOSSimulator="iPhone5" Android="Android6_API23"/>
|
||||||
|
</ActiveMobileDevice>
|
||||||
|
</BorlandProject>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,69 @@
|
||||||
|
# Uncomment these types if you want even more clean repository. But be careful.
|
||||||
|
# It can make harm to an existing project source. Read explanations below.
|
||||||
|
#
|
||||||
|
# Resource files are binaries containing manifest, project icon and version info.
|
||||||
|
# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files.
|
||||||
|
#*.res
|
||||||
|
#
|
||||||
|
# Type library file (binary). In old Delphi versions it should be stored.
|
||||||
|
# Since Delphi 2009 it is produced from .ridl file and can safely be ignored.
|
||||||
|
#*.tlb
|
||||||
|
#
|
||||||
|
# Diagram Portfolio file. Used by the diagram editor up to Delphi 7.
|
||||||
|
# Uncomment this if you are not using diagrams or use newer Delphi version.
|
||||||
|
#*.ddp
|
||||||
|
#
|
||||||
|
# Visual LiveBindings file. Added in Delphi XE2.
|
||||||
|
# Uncomment this if you are not using LiveBindings Designer.
|
||||||
|
#*.vlb
|
||||||
|
#
|
||||||
|
# Deployment Manager configuration file for your project. Added in Delphi XE2.
|
||||||
|
# Uncomment this if it is not mobile development and you do not use remote debug feature.
|
||||||
|
#*.deployproj
|
||||||
|
#
|
||||||
|
# C++ object files produced when C/C++ Output file generation is configured.
|
||||||
|
# Uncomment this if you are not using external objects (zlib library for example).
|
||||||
|
#*.obj
|
||||||
|
#
|
||||||
|
|
||||||
|
# Delphi compiler-generated binaries (safe to delete)
|
||||||
|
*.exe
|
||||||
|
*.dll
|
||||||
|
*.bpl
|
||||||
|
*.bpi
|
||||||
|
*.dcp
|
||||||
|
*.so
|
||||||
|
*.apk
|
||||||
|
*.drc
|
||||||
|
*.map
|
||||||
|
*.dres
|
||||||
|
*.rsm
|
||||||
|
*.tds
|
||||||
|
*.dcu
|
||||||
|
*.lib
|
||||||
|
*.a
|
||||||
|
*.o
|
||||||
|
*.ocx
|
||||||
|
|
||||||
|
# Delphi autogenerated files (duplicated info)
|
||||||
|
*.cfg
|
||||||
|
*.hpp
|
||||||
|
*Resource.rc
|
||||||
|
|
||||||
|
# Delphi local files (user-specific info)
|
||||||
|
*.local
|
||||||
|
*.identcache
|
||||||
|
*.projdata
|
||||||
|
*.tvsconfig
|
||||||
|
*.dsk
|
||||||
|
|
||||||
|
# Delphi history and backups
|
||||||
|
__history/
|
||||||
|
__recovery/
|
||||||
|
*.~*
|
||||||
|
|
||||||
|
# Castalia statistics file (since XE7 Castalia is distributed with Delphi)
|
||||||
|
*.stat
|
||||||
|
|
||||||
|
# Boss dependency manager vendor folder https://github.com/HashLoad/boss
|
||||||
|
modules/
|
|
@ -0,0 +1,403 @@
|
||||||
|
unit LZ4;
|
||||||
|
|
||||||
|
interface
|
||||||
|
uses classes, sysutils, LZ4Lib
|
||||||
|
{$IFDEF YWRTL},YWTypes{$ENDIF};
|
||||||
|
|
||||||
|
const
|
||||||
|
LZ4_VERSION_MAJOR = LZ4Lib.LZ4_VERSION_MAJOR;
|
||||||
|
LZ4_VERSION_MINOR = LZ4Lib.LZ4_VERSION_MINOR;
|
||||||
|
LZ4_VERSION_RELEASE = LZ4Lib.LZ4_VERSION_RELEASE;
|
||||||
|
LZ4_VERSION_NUMBER = LZ4_VERSION_MAJOR*100*100+LZ4_VERSION_MINOR*100+
|
||||||
|
LZ4_VERSION_RELEASE;
|
||||||
|
LZ4_VERSION_STRING = '1.9.3';
|
||||||
|
LZ4HC_CLEVEL_DEFAULT = LZ4Lib.LZ4HC_CLEVEL_DEFAULT;
|
||||||
|
|
||||||
|
type
|
||||||
|
LZ4_Buffer = record
|
||||||
|
src : Pointer;
|
||||||
|
size, pos : NativeInt;
|
||||||
|
end;
|
||||||
|
LZ4_outBuffer = record
|
||||||
|
dst : Pointer;
|
||||||
|
size, pos : NativeInt;
|
||||||
|
end;
|
||||||
|
TCustomLZ4Stream = class(TStream)
|
||||||
|
private
|
||||||
|
FStream: TStream;
|
||||||
|
FStreamStartPos: Int64;
|
||||||
|
FStreamPos: Int64;
|
||||||
|
_buf : Pointer;
|
||||||
|
_bufPos : NativeUInt;
|
||||||
|
total_in, total_out : NativeInt;
|
||||||
|
public
|
||||||
|
constructor Create(stream: TStream);
|
||||||
|
destructor Destroy; override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TLZ4CompressStream=class(TCustomLZ4Stream)
|
||||||
|
private
|
||||||
|
pref : LZ4F_preferences_t;
|
||||||
|
CCTX : PLZ4F_cctx;
|
||||||
|
function GetCompressionRate: Single;
|
||||||
|
procedure DoCompress(buf : Pointer);
|
||||||
|
public
|
||||||
|
constructor Create(dest: TStream; compressionLevel: Integer=2);
|
||||||
|
function Read(var buffer; count: Longint): Longint; override;
|
||||||
|
function Write(const buffer; count: Longint): Longint; override;
|
||||||
|
function Read(Buffer: TBytes; Offset, Count: Longint): Longint; override;
|
||||||
|
function Write(const Buffer: TBytes; Offset: Longint=0; Count:Longint =-1): Longint; override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
|
||||||
|
property CompressionRate: Single read GetCompressionRate;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TLZ4DecompressStream = class(TCustomLZ4Stream)
|
||||||
|
private
|
||||||
|
FOwnsStream: Boolean;
|
||||||
|
_eof : boolean;
|
||||||
|
_bufSize : NativeUInt;
|
||||||
|
DCTX : PLZ4F_dctx;
|
||||||
|
public
|
||||||
|
constructor Create(source: TStream; OwnsStream: Boolean=false);
|
||||||
|
destructor Destroy; override;
|
||||||
|
function Read(var buffer; count: Longint): Longint; override;
|
||||||
|
function Write(const buffer; count: Longint): Longint; override;
|
||||||
|
function Read(Buffer: TBytes; Offset:LongInt=0;Count: Longint=-1): Longint; override;
|
||||||
|
function Write(const Buffer: TBytes; Offset, Count: Longint): Longint; override;
|
||||||
|
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CompressData(source : Pointer;srcSize:NativeInt; dst:Pointer;
|
||||||
|
dstCapacity:NativeInt; compressionLevel:integer=2):NativeInt; overload;
|
||||||
|
function DecompressData(Source:Pointer;srcSize:NativeInt;dst:Pointer;
|
||||||
|
dstCapacity:NativeInt):NativeInt; overload;
|
||||||
|
function CompressData(source :TBytes;index:NativeInt=0;size:NativeInt=-1;
|
||||||
|
compressionLevel:integer=2):TBytes; overload;
|
||||||
|
function DecompressData(Source:TBytes;index:NativeInt=0;Size:NativeInt=-1):TBytes; overload;
|
||||||
|
implementation
|
||||||
|
uses libc;
|
||||||
|
type
|
||||||
|
Context = record
|
||||||
|
class var _DCTX:PLZ4F_dctx;
|
||||||
|
class var _CCTX:PLZ4F_cctx;
|
||||||
|
class function GetDCTX:PLZ4F_dctx; inline; static;
|
||||||
|
class procedure FreeDCTX(C : PLZ4F_dctx); inline; static;
|
||||||
|
class function GetCCTX:PLZ4F_cctx; inline; static;
|
||||||
|
class procedure FreeCCTX(C : PLZ4F_cctx); inline; static;
|
||||||
|
class constructor Create;
|
||||||
|
class destructor Destroy;
|
||||||
|
end;
|
||||||
|
var
|
||||||
|
[volatile]_state : Pointer;
|
||||||
|
|
||||||
|
function GetBuffer : Pointer; inline;
|
||||||
|
begin
|
||||||
|
{$IFDEF YWRTL}Result:=BufferPool256K.GetBuffer{$ELSE}GetMem(Result,256*1024){$ENDIF};
|
||||||
|
end;
|
||||||
|
procedure FreeBuffer(b : Pointer); inline;
|
||||||
|
begin
|
||||||
|
{$IFDEF YWRTL}BufferPool256K.FreeBuffer(b){$ELSE}Freemem(b){$ENDIF};
|
||||||
|
end;
|
||||||
|
function GetBuffer512:Pointer;inline;
|
||||||
|
begin
|
||||||
|
{$IFDEF YWRTL}
|
||||||
|
Result := BufferPool512K.GetBuffer
|
||||||
|
{$ELSE}
|
||||||
|
GetMem(Result,512*1024);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
procedure FreeBuffer512(var b : Pointer); inline;
|
||||||
|
begin
|
||||||
|
{$IFDEF YWRTL}
|
||||||
|
BufferPool512K.FreeBuffer(b)
|
||||||
|
{$ELSE}
|
||||||
|
FreeMem(b);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CompressData(source : Pointer;srcSize:NativeInt; dst:Pointer;
|
||||||
|
dstCapacity:NativeInt; compressionLevel:integer=2):NativeInt; overload;
|
||||||
|
begin
|
||||||
|
var P := LZ4F_INIT_PREFERENCES;
|
||||||
|
P. compressionLevel :=compressionLevel;
|
||||||
|
Result := LZ4F_compressFrame(dst,dstCapacity,source,srcSize,@P);
|
||||||
|
if LZ4F_isError(Result)<>0 then raise Exception.Create(LZ4F_getErrorName(Result));
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CompressData(source :TBytes;index:NativeInt=0;size:NativeInt=-1;compressionLevel:integer=2):TBytes;
|
||||||
|
overload;
|
||||||
|
begin
|
||||||
|
if size=-1 then size := Length(source);
|
||||||
|
if size=0 then exit(nil);
|
||||||
|
var P := LZ4F_INIT_PREFERENCES;
|
||||||
|
P. compressionLevel :=compressionLevel;
|
||||||
|
var s := LZ4F_compressFrameBound(size,@P);
|
||||||
|
SetLength(Result,s);
|
||||||
|
s := LZ4F_compressFrame(@Result[0],s,@source[index],Size,@P);
|
||||||
|
if s>0 then SetLength(Result,s)
|
||||||
|
else Result := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function DecompressData(Source:Pointer;srcSize:NativeInt;dst:Pointer;
|
||||||
|
dstCapacity:NativeInt):NativeInt; overload;
|
||||||
|
var TX : PLZ4F_dctx;
|
||||||
|
ds,ss,r : NativeUInt;
|
||||||
|
s,d : PByte;
|
||||||
|
begin
|
||||||
|
TX := Context.GetDCTX;
|
||||||
|
Result := 0;
|
||||||
|
try
|
||||||
|
s := Source; d := dst;
|
||||||
|
repeat
|
||||||
|
ds := dstCapacity;
|
||||||
|
ss := srcSize;
|
||||||
|
r := LZ4F_decompress(TX,d,@ds,s,@ss,nil);
|
||||||
|
if LZ4F_isError(r)<>0 then exit(-abs(r));
|
||||||
|
inc(Result,ds);
|
||||||
|
dec(dstCapacity,ds);
|
||||||
|
dec(srcSize,ss);
|
||||||
|
s := s+ss;
|
||||||
|
d := d+ds;
|
||||||
|
until (dstCapacity=0)or(srcSize=0);
|
||||||
|
finally
|
||||||
|
Context.FreeDCTX(TX);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
function DecompressData(Source:TBytes;index:NativeInt=0;Size:NativeInt=-1):TBytes; overload;
|
||||||
|
var s : Nativeint;
|
||||||
|
begin
|
||||||
|
if Size=-1 then Size := Length(Source);
|
||||||
|
SetLength(Result,Size*32);
|
||||||
|
s := DecompressData(@Source[Index],Size,@Result[0],Length(Result));
|
||||||
|
if s<0 then raise Exception.Create('LZ4 Decompress Error!');
|
||||||
|
SetLength(Result,S);
|
||||||
|
end;
|
||||||
|
{ TLZ4Stream }
|
||||||
|
|
||||||
|
constructor TLZ4CompressStream.Create(dest: TStream; compressionLevel: Integer=2);
|
||||||
|
begin
|
||||||
|
inherited Create(dest);
|
||||||
|
pref := LZ4F_INIT_PREFERENCES;
|
||||||
|
pref.compressionLevel :=compressionLevel;
|
||||||
|
CCTX := Context.GetCCTX;
|
||||||
|
FStream.Write(_buf^,LZ4F_compressBegin(CCTX,_buf,256*1024,@pref));
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TLZ4CompressStream.Destroy;
|
||||||
|
begin
|
||||||
|
if _BufPos>0 then begin
|
||||||
|
var b := GetBuffer512;
|
||||||
|
try
|
||||||
|
var s := LZ4F_compressUpdate(CCTX,b,512*1024,_buf,_bufPos,nil);
|
||||||
|
if LZ4F_isError(s)<>0 then raise Exception.Create(LZ4F_getErrorName(s));
|
||||||
|
FStream.Write(b^,s);
|
||||||
|
finally
|
||||||
|
FreeBuffer512(b);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
FStream.Write(_buf^,LZ4F_compressEnd(CCTX,_buf,256*1024,nil));
|
||||||
|
Context.FreeCCTX(CCTX);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TLZ4CompressStream.DoCompress(buf: Pointer);
|
||||||
|
begin
|
||||||
|
var b := GetBuffer512;
|
||||||
|
try
|
||||||
|
var s := LZ4F_compressUpdate(CCTX,b,512*1024,buf,256*1024,nil);
|
||||||
|
if LZ4F_isError(s)<>0 then raise Exception.Create(LZ4F_getErrorName(s));
|
||||||
|
inc(total_out,s);
|
||||||
|
FStream.Write(b^,s);
|
||||||
|
finally
|
||||||
|
FreeBuffer512(b);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4CompressStream.GetCompressionRate: Single;
|
||||||
|
begin
|
||||||
|
if total_in = 0 then result := 0
|
||||||
|
else result := (1.0 - (total_out / total_in)) * 100.0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4CompressStream.Read(var buffer; count: Longint): Longint;
|
||||||
|
begin
|
||||||
|
raise Exception.Create('Compress Stream is WriteOnly');
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4CompressStream.Read(Buffer: TBytes; Offset, Count: Longint): Longint;
|
||||||
|
begin
|
||||||
|
raise Exception.Create('Compress Stream is WriteOnly');
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4CompressStream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;
|
||||||
|
begin
|
||||||
|
if (offset = 0) and (origin = soCurrent) then
|
||||||
|
begin
|
||||||
|
result := total_in;
|
||||||
|
end
|
||||||
|
else Result := -1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4CompressStream.Write(const Buffer: TBytes; Offset: Longint=0; Count:Longint =-1): Longint;
|
||||||
|
begin
|
||||||
|
if Count=-1 then Count := Length(Buffer)-Offset;
|
||||||
|
Result := Write(Buffer[Offset],Count);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4CompressStream.Write(const buffer; count: Longint): Longint;
|
||||||
|
var s : Cardinal;
|
||||||
|
source : PByte;
|
||||||
|
begin
|
||||||
|
Result := Count;
|
||||||
|
inc(total_in,Count);
|
||||||
|
source := @buffer;
|
||||||
|
while count>0 do begin
|
||||||
|
if (_bufpos>0)or(count<256*1024) then begin
|
||||||
|
s := count; if s>256*1024-_bufpos then s:= 256*1024-_bufpos;
|
||||||
|
{$IFDEF POSIX}
|
||||||
|
move(source^,(PByte(_buf)+_bufPos)^,s);
|
||||||
|
{$ELSE}
|
||||||
|
memmove(PByte(_buf)+_bufPos,source,s);
|
||||||
|
{$ENDIF}
|
||||||
|
inc(_bufPos,s);
|
||||||
|
dec(count,s);
|
||||||
|
inc(source,s);
|
||||||
|
if _bufPos=256*1024 then begin
|
||||||
|
DoCompress(_buf);
|
||||||
|
_bufPos := 0;
|
||||||
|
end
|
||||||
|
end else begin
|
||||||
|
DoCompress(source);
|
||||||
|
dec(count,256*1024);
|
||||||
|
inc(source,256*1024);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TCustomLZ4Stream }
|
||||||
|
|
||||||
|
constructor TCustomLZ4Stream.Create(stream: TStream);
|
||||||
|
begin
|
||||||
|
inherited Create;
|
||||||
|
FStream := stream;
|
||||||
|
FStreamStartPos := Stream.Position;
|
||||||
|
FStreamPos := FStreamStartPos;
|
||||||
|
_buf := GetBuffer;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TZDecompressionStream }
|
||||||
|
|
||||||
|
constructor TLZ4DecompressStream.Create(source: TStream; OwnsStream: Boolean=false);
|
||||||
|
begin
|
||||||
|
inherited Create(source);
|
||||||
|
FOwnsStream := OwnsStream;
|
||||||
|
DCTX := Context.GetDCTX;
|
||||||
|
_eof := false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TLZ4DecompressStream.Destroy;
|
||||||
|
begin
|
||||||
|
if FOwnsStream then
|
||||||
|
FStream.Free;
|
||||||
|
Context.FreeDCTX(DCTX);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4DecompressStream.Read(Buffer: TBytes; Offset:LongInt=0;Count: Longint=-1): Longint;
|
||||||
|
begin
|
||||||
|
if Count=-1 then Count := Length(Buffer)-Offset;
|
||||||
|
if Offset+Count>Length(Buffer) then SetLength(Buffer,Offset+Count);
|
||||||
|
Result := Read(Buffer[Offset],Count);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4DecompressStream.Read(var buffer; count: Longint): Longint;
|
||||||
|
var dst : PByte;
|
||||||
|
t,r,w : NativeInt;
|
||||||
|
begin
|
||||||
|
Dst := @buffer;
|
||||||
|
Result := 0;
|
||||||
|
while (count>0) do
|
||||||
|
if _bufPos<_bufSize then begin
|
||||||
|
w := count; r := _bufSize-_bufPos;
|
||||||
|
t := LZ4F_decompress(DCTX,Dst,@w,PByte(_buf)+_bufPos,@r,nil);
|
||||||
|
if LZ4F_isError(t)<>0 then raise Exception.Create(LZ4F_getErrorName(t));
|
||||||
|
inc(total_in,w);
|
||||||
|
dec(count,w);
|
||||||
|
inc(Dst,w);
|
||||||
|
inc(Result,w);
|
||||||
|
inc(_bufPos,r);
|
||||||
|
inc(total_out,r);
|
||||||
|
end else if _eof then break
|
||||||
|
else begin
|
||||||
|
_BufSize := FStream.Read(_Buf^,256*1024);
|
||||||
|
_bufPos := 0;
|
||||||
|
_eof := _BufSize<256*1024;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4DecompressStream.Seek(const Offset: Int64;
|
||||||
|
Origin: TSeekOrigin): Int64;
|
||||||
|
begin
|
||||||
|
Result := -1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4DecompressStream.Write(const Buffer: TBytes; Offset,
|
||||||
|
Count: Longint): Longint;
|
||||||
|
begin
|
||||||
|
raise Exception.Create('Compress Stream is ReadOnly');
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TLZ4DecompressStream.Write(const buffer; count: Longint): Longint;
|
||||||
|
begin
|
||||||
|
raise Exception.Create('Compress Stream is ReadOnly');
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TCustomLZ4Stream.Destroy;
|
||||||
|
begin
|
||||||
|
FreeBuffer(_buf);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ Context }
|
||||||
|
|
||||||
|
class constructor Context.Create;
|
||||||
|
begin
|
||||||
|
_DCTX := nil;
|
||||||
|
_CCTX := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
class destructor Context.Destroy;
|
||||||
|
begin
|
||||||
|
if _DCTX<>nil then LZ4F_freeDecompressionContext(_DCTX);
|
||||||
|
if _CCTX<>nil then LZ4F_freeCompressionContext(_CCTX);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure Context.FreeCCTX(C: PLZ4F_cctx);
|
||||||
|
begin
|
||||||
|
C := atomicexchange(_CCTX,C);
|
||||||
|
if C<>nil then LZ4F_freeCompressionContext(C);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure Context.FreeDCTX(C: PLZ4F_dctx);
|
||||||
|
begin
|
||||||
|
LZ4F_resetDecompressionContext(C);
|
||||||
|
C := atomicexchange(_DCTX,C);
|
||||||
|
if C<>nil then LZ4F_freeDecompressionContext(C);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class function Context.GetCCTX: PLZ4F_cctx;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
Result := atomicexchange(_CCTX,Result);
|
||||||
|
if Result = nil then LZ4F_createCompressionContext(@Result,LZ4F_VERSION);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class function Context.GetDCTX: PLZ4F_dctx;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
Result := atomicexchange(_DCTX,Result);
|
||||||
|
if Result = nil then LZ4F_createDecompressionContext(@Result,LZ4F_VERSION);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
|
@ -0,0 +1,37 @@
|
||||||
|
package PKGLZ4;
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
|
||||||
|
{$ALIGN 8}
|
||||||
|
{$ASSERTIONS ON}
|
||||||
|
{$BOOLEVAL OFF}
|
||||||
|
{$DEBUGINFO OFF}
|
||||||
|
{$EXTENDEDSYNTAX ON}
|
||||||
|
{$IMPORTEDDATA ON}
|
||||||
|
{$IOCHECKS ON}
|
||||||
|
{$LOCALSYMBOLS OFF}
|
||||||
|
{$LONGSTRINGS ON}
|
||||||
|
{$OPENSTRINGS ON}
|
||||||
|
{$OPTIMIZATION ON}
|
||||||
|
{$OVERFLOWCHECKS OFF}
|
||||||
|
{$RANGECHECKS OFF}
|
||||||
|
{$REFERENCEINFO OFF}
|
||||||
|
{$SAFEDIVIDE OFF}
|
||||||
|
{$STACKFRAMES OFF}
|
||||||
|
{$TYPEDADDRESS OFF}
|
||||||
|
{$VARSTRINGCHECKS ON}
|
||||||
|
{$WRITEABLECONST OFF}
|
||||||
|
{$MINENUMSIZE 1}
|
||||||
|
{$IMAGEBASE $400000}
|
||||||
|
{$DEFINE RELEASE}
|
||||||
|
{$ENDIF IMPLICITBUILDING}
|
||||||
|
{$IMPLICITBUILD ON}
|
||||||
|
|
||||||
|
requires
|
||||||
|
rtl;
|
||||||
|
|
||||||
|
contains
|
||||||
|
lz4lib in 'lz4lib.pas',
|
||||||
|
LZ4 in 'LZ4.pas';
|
||||||
|
|
||||||
|
end.
|
|
@ -0,0 +1,928 @@
|
||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ProjectGuid>{4E7B2FC9-A63E-48D8-9E21-89F56754E11A}</ProjectGuid>
|
||||||
|
<MainSource>PKGLZ4.dpk</MainSource>
|
||||||
|
<ProjectVersion>19.4</ProjectVersion>
|
||||||
|
<FrameworkType>None</FrameworkType>
|
||||||
|
<Base>True</Base>
|
||||||
|
<Config Condition="'$(Config)'==''">Release</Config>
|
||||||
|
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||||
|
<TargetedPlatforms>3</TargetedPlatforms>
|
||||||
|
<AppType>Package</AppType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
|
||||||
|
<Base_Android>true</Base_Android>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Android64' and '$(Base)'=='true') or '$(Base_Android64)'!=''">
|
||||||
|
<Base_Android64>true</Base_Android64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Base)'=='true') or '$(Base_iOSDevice64)'!=''">
|
||||||
|
<Base_iOSDevice64>true</Base_iOSDevice64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='OSX64' and '$(Base)'=='true') or '$(Base_OSX64)'!=''">
|
||||||
|
<Base_OSX64>true</Base_OSX64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='OSXARM64' and '$(Base)'=='true') or '$(Base_OSXARM64)'!=''">
|
||||||
|
<Base_OSXARM64>true</Base_OSXARM64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||||
|
<Base_Win32>true</Base_Win32>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
|
||||||
|
<Base_Win64>true</Base_Win64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
|
||||||
|
<Cfg_1_Win32>true</Cfg_1_Win32>
|
||||||
|
<CfgParent>Cfg_1</CfgParent>
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
|
||||||
|
<Cfg_2>true</Cfg_2>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base)'!=''">
|
||||||
|
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
|
||||||
|
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
|
||||||
|
<DCC_E>false</DCC_E>
|
||||||
|
<DCC_N>false</DCC_N>
|
||||||
|
<DCC_S>false</DCC_S>
|
||||||
|
<DCC_F>false</DCC_F>
|
||||||
|
<DCC_K>false</DCC_K>
|
||||||
|
<GenDll>true</GenDll>
|
||||||
|
<GenPackage>true</GenPackage>
|
||||||
|
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<DCC_CBuilderOutput>All</DCC_CBuilderOutput>
|
||||||
|
<SanitizedProjectName>PKGLZ4</SanitizedProjectName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Android)'!=''">
|
||||||
|
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||||
|
<EnabledSysJars>annotation-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.0.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.0.1.dex.jar;core-runtime-2.0.1.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.0.0.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.0.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.0.0.dex.jar;lifecycle-runtime-2.0.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.0.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar</EnabledSysJars>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Android64)'!=''">
|
||||||
|
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||||
|
<EnabledSysJars>annotation-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.0.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.0.1.dex.jar;core-runtime-2.0.1.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.0.0.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.0.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.0.0.dex.jar;lifecycle-runtime-2.0.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.0.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar</EnabledSysJars>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_iOSDevice64)'!=''">
|
||||||
|
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_OSX64)'!=''">
|
||||||
|
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers</VerInfo_Keys>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_OSXARM64)'!=''">
|
||||||
|
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers</VerInfo_Keys>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||||
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
||||||
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
||||||
|
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_DebugDCUs>true</DCC_DebugDCUs>
|
||||||
|
<DCC_Optimize>false</DCC_Optimize>
|
||||||
|
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
||||||
|
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
|
||||||
|
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
||||||
|
<DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck>
|
||||||
|
<DCC_RangeChecking>true</DCC_RangeChecking>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
||||||
|
<DCC_RemoteDebug>false</DCC_RemoteDebug>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||||
|
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||||
|
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||||
|
<DCC_DebugInformation>0</DCC_DebugInformation>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<DelphiCompile Include="$(MainSource)">
|
||||||
|
<MainSource>MainSource</MainSource>
|
||||||
|
</DelphiCompile>
|
||||||
|
<DCCReference Include="rtl.dcp"/>
|
||||||
|
<DCCReference Include="lz4lib.pas"/>
|
||||||
|
<DCCReference Include="LZ4.pas"/>
|
||||||
|
<None Include="lz4delphi.c"/>
|
||||||
|
<BuildConfiguration Include="Base">
|
||||||
|
<Key>Base</Key>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Debug">
|
||||||
|
<Key>Cfg_1</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Release">
|
||||||
|
<Key>Cfg_2</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<ProjectExtensions>
|
||||||
|
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
||||||
|
<Borland.ProjectType>Package</Borland.ProjectType>
|
||||||
|
<BorlandProject>
|
||||||
|
<Delphi.Personality>
|
||||||
|
<Source>
|
||||||
|
<Source Name="MainSource">PKGLZ4.dpk</Source>
|
||||||
|
</Source>
|
||||||
|
</Delphi.Personality>
|
||||||
|
<Deployment Version="3">
|
||||||
|
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libcgunwind.1.0.dylib" Class="DependencyModule">
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\PKGLZ4.bpl" Configuration="Debug" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteName>PKGLZ4.bpl</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\PKGLZ4.bpl" Configuration="Release" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteName>PKGLZ4.bpl</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\Win64\PKGLZ4.bpl" Configuration="Release" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteName>PKGLZ4.bpl</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployClass Name="AdditionalDebugSymbols">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidClasses">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidFileProvider">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\xml</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\xml</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidGDBServer">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeArmeabiFile">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeArmeabiv7aFile">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeMipsFile">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\mips</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\mips</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidServiceOutput">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidServiceOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidSplashImageDef">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidSplashStyles">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidSplashStylesV21">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values-v21</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values-v21</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_Colors">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_DefaultAppIcon">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon144">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon192">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon36">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon48">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon72">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon96">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon24">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon36">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon48">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon72">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon96">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage426">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-small</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-small</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage470">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage640">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-large</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-large</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage960">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_Strings">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="DebugSymbols">
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="DependencyFramework">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.framework</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.framework</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.framework</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="DependencyModule">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
<Extensions>.dll;.bpl</Extensions>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Required="true" Name="DependencyPackage">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
<Extensions>.bpl</Extensions>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="File">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iOS_AppStore1024">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_AppIcon152">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_AppIcon167">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_Launch2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_LaunchDark2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_Notification40">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_Setting58">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_SpotLight80">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_AppIcon120">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_AppIcon180">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Launch2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Launch3x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_LaunchDark2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_LaunchDark3x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Notification40">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Notification60">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Setting58">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Setting87">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Spotlight120">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Spotlight80">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectAndroidManifest">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSEntitlements"/>
|
||||||
|
<DeployClass Name="ProjectiOSInfoPList"/>
|
||||||
|
<DeployClass Name="ProjectiOSLaunchScreen"/>
|
||||||
|
<DeployClass Name="ProjectiOSResource">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXDebug"/>
|
||||||
|
<DeployClass Name="ProjectOSXEntitlements"/>
|
||||||
|
<DeployClass Name="ProjectOSXInfoPList"/>
|
||||||
|
<DeployClass Name="ProjectOSXResource">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Required="true" Name="ProjectOutput">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Linux64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectUWPManifest">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo150">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo44">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
||||||
|
</Deployment>
|
||||||
|
<Platforms>
|
||||||
|
<Platform value="Android">False</Platform>
|
||||||
|
<Platform value="Android64">False</Platform>
|
||||||
|
<Platform value="iOSDevice64">False</Platform>
|
||||||
|
<Platform value="Linux64">False</Platform>
|
||||||
|
<Platform value="OSX64">False</Platform>
|
||||||
|
<Platform value="OSXARM64">False</Platform>
|
||||||
|
<Platform value="Win32">True</Platform>
|
||||||
|
<Platform value="Win64">True</Platform>
|
||||||
|
</Platforms>
|
||||||
|
</BorlandProject>
|
||||||
|
<ProjectFileVersion>12</ProjectFileVersion>
|
||||||
|
</ProjectExtensions>
|
||||||
|
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||||
|
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
||||||
|
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
|
||||||
|
</Project>
|
Binary file not shown.
|
@ -0,0 +1,7 @@
|
||||||
|
# LZ4Delphi
|
||||||
|
LZ4 Static Link Library for Delphi
|
||||||
|
For Demos Check [YW_DEMOS](https://github.com/YWtheGod/YW_DEMOS)
|
||||||
|
|
||||||
|
LZ4压缩静态链接库
|
||||||
|
LZ4算法速度很快,但是压缩率不高,但一个很大的优点是即使设置到最高压缩率,其解压速度依然是极端的快,所以适合单次压缩,频繁高速解压的应用场景。
|
||||||
|
示范程序,参看 [YW_DEMOS](https://gitee.com/YWtheGod/YW_DEMOS)
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
||||||
|
#include "..\..\..\lib\lz4.c"
|
||||||
|
#include "..\..\..\lib\lz4hc.c"
|
||||||
|
#include "..\..\..\lib\lz4frame.c"
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -338,6 +338,7 @@ function XXH64_update;begin exit(_XXH64_update(state,input,length))end;
|
||||||
function XXH64_digest;begin exit(_XXH64_digest(state))end;
|
function XXH64_digest;begin exit(_XXH64_digest(state))end;
|
||||||
procedure XXH64_canonicalFromHash;begin _XXH64_canonicalFromHash(dst,hash)end;
|
procedure XXH64_canonicalFromHash;begin _XXH64_canonicalFromHash(dst,hash)end;
|
||||||
function XXH64_hashFromCanonical;begin exit(_XXH64_hashFromCanonical(src))end;
|
function XXH64_hashFromCanonical;begin exit(_XXH64_hashFromCanonical(src))end;
|
||||||
|
function XXH3_64bits;begin exit(_XXH3_64bits(data,len))end;
|
||||||
function XXH3_128bits;begin exit(_XXH3_128bits(data,len))end;
|
function XXH3_128bits;begin exit(_XXH3_128bits(data,len))end;
|
||||||
function XXH3_128bits_withSeed;begin exit(_XXH3_128bits_withSeed(data,len,seed))end;
|
function XXH3_128bits_withSeed;begin exit(_XXH3_128bits_withSeed(data,len,seed))end;
|
||||||
function XXH3_128bits_withSecret;begin exit(_XXH3_128bits_withSecret(data,len,secret,secretSize))end;
|
function XXH3_128bits_withSecret;begin exit(_XXH3_128bits_withSecret(data,len,secret,secretSize))end;
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
*.tar filter=lfs diff=lfs merge=lfs -text
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
*.~*
|
|
@ -0,0 +1,39 @@
|
||||||
|
# ZSTD static link library for DELPHI
|
||||||
|
|
||||||
|
I got a lot problem try linking zstd with delphi since 1.5.1, everything is smooth when it was 1.5.0
|
||||||
|
I got AV error when using mingw GCC 11.2, and failed to compile when using mingw clang 13.0.1
|
||||||
|
And finally I got it success compiled with VS 17.1.1, but delphi raise a internal AV error when linking with 32bit object files.
|
||||||
|
So, I compiled 32bit object file with VS Clang 13.0 tool set, seems it work, but it won't work on 64bit mode(AV in run time).
|
||||||
|
So, VC tool set only works on 64bit mode, and Clang only works on 32bit mode, I just combined two together...
|
||||||
|
|
||||||
|
Some thing you should know:
|
||||||
|
This library depends on other two librarys:
|
||||||
|
|
||||||
|
- [libc](https://github.com/YWtheGod/LIBC)
|
||||||
|
- [XXHASH4DELPHI](https://github.com/YWtheGod/XXHASH4Delphi)
|
||||||
|
- ZSTD on Github: [ZSTD](https://github.com/facebook/zstd)
|
||||||
|
- For Demos: [YW_DEMOS](https://github.com/YWtheGod/YW_DEMOS)
|
||||||
|
|
||||||
|
ZSTD comes with a xxhash source code with its own, but I thought sharing a library would be better.
|
||||||
|
And I didn't compiled legecy supporting code into the object files, so it can't decompress data that was compressed by very old zstd library(before 1.0 I thought), if it will be a problem, let me known.
|
||||||
|
Now I compiled both AVX2 and SSE2 version of the codes, but if to run it on CPU that don't have AVX2 support, you also need to compile my XXHASH4Delphi library in SSE2 mode too.
|
||||||
|
It didn't use ASM codes for huffman decompressing on Windows platform, I don't think decompressing is really a matter, so I just let it be.
|
||||||
|
And finally, the 1.5.2 version of zstd runs about same speeds with 1.5.0, slighly slower in high compressing rate setting. but it also got slighly better compression rates on all compression levels.
|
||||||
|
|
||||||
|
我在编译1.5.1以上版本时遇到很多问题, gcc编译出来的代码总是AV错, mingw上的Clang编译不过
|
||||||
|
最终用的是VC 17.1.1编译过了,64位初步测试正常, 32位下Delphi链接时报内部AV错了!
|
||||||
|
用VC切换到Clang工具集, 32位下初步测试过了,64位竟然继续报AV错!
|
||||||
|
没办法,最终提供的目标文件,64位是VC++工具集编译的, 32位是VS Clang 13.0工具集编译的。
|
||||||
|
|
||||||
|
这个库依赖另外两个库,需要另外下载安装:
|
||||||
|
|
||||||
|
- [libc](https://github.com/YWtheGod/LIBC)
|
||||||
|
- [XXHASH4DELPHI](https://github.com/YWtheGod/XXHASH4Delphi)
|
||||||
|
- ZSTD官方Github: [ZSTD](https://github.com/facebook/zstd)
|
||||||
|
- 使用范例: [YW_DEMOS](https://gitee.com/YWtheGod/YW_DEMOS)
|
||||||
|
|
||||||
|
ZSTD自带一个xxhash源码,并且它修改了xxhash源码的命名前缀以独占这些代码,我取消了独占前缀,让它与其他模块共享独立安装的XXHASH库。
|
||||||
|
我并没有将ZSTD老算法兼容代码编译进去,所以它不能解压一些很老版本的ZSTD压缩数据(我估计起码老于1.0版本).
|
||||||
|
这次我附带了AVX2和SSE2版本的目标文件,通过编译开关可以切换,但是单独切换ZSTD还不够,你还得在编译XXHASH4DELPHI时也选择同样的SSE2版本,才能在没有AVX2的CPU上运行。
|
||||||
|
ZSTD在Windows平台下没有采用汇编代码的哈夫曼解压,我觉得解压也不需要极限速度,所以我就由得它没动它的汇编代码。
|
||||||
|
最后,1.5.2速度基本和1.5.0版本差不多,高压缩设定下轻微慢一点点,但是在所有压缩率设定下,压缩体积都要更小一点点
|
|
@ -0,0 +1,356 @@
|
||||||
|
unit ZSTD;
|
||||||
|
|
||||||
|
interface
|
||||||
|
uses classes, sysutils, ZSTDLib
|
||||||
|
{$IFDEF YWRTL},YWTypes{$ENDIF}
|
||||||
|
;
|
||||||
|
|
||||||
|
const
|
||||||
|
ZSTD_VERSION_MAJOR = ZSTDLib.ZSTD_VERSION_MAJOR;
|
||||||
|
ZSTD_VERSION_MINOR = ZSTDLib.ZSTD_VERSION_MINOR;
|
||||||
|
ZSTD_VERSION_RELEASE = ZSTDLib.ZSTD_VERSION_RELEASE;
|
||||||
|
ZSTD_VERSION_NUMBER = ZSTD_VERSION_MAJOR*100*100+ZSTD_VERSION_MINOR*100+
|
||||||
|
ZSTD_VERSION_RELEASE;
|
||||||
|
ZSTD_VERSION_STRING = ZSTDLib.ZSTD_VERSION_STRING;
|
||||||
|
ZSTD_CLEVEL_DEFAULT = ZSTDLib.ZSTD_CLEVEL_DEFAULT;
|
||||||
|
|
||||||
|
type
|
||||||
|
TCustomZSTDStream = class(TStream)
|
||||||
|
private
|
||||||
|
FStream: TStream;
|
||||||
|
FStreamStartPos: Int64;
|
||||||
|
FStreamPos: Int64;
|
||||||
|
FInBuffer :ZSTD_inBuffer;
|
||||||
|
FOutBuffer : ZSTD_outBuffer;
|
||||||
|
total_in, total_out : NativeInt;
|
||||||
|
protected
|
||||||
|
constructor Create(stream: TStream);
|
||||||
|
end;
|
||||||
|
|
||||||
|
TZSTDCompressStream=class(TCustomZSTDStream)
|
||||||
|
private
|
||||||
|
FCStream : ZSTD_CStream;
|
||||||
|
flevel : integer;
|
||||||
|
function GetCompressionRate: Single;
|
||||||
|
public
|
||||||
|
constructor Create(dest: TStream; compressionLevel: Integer=3);
|
||||||
|
destructor Destroy; override;
|
||||||
|
function Read(var buffer; count: Longint): Longint; override;
|
||||||
|
function Write(const buffer; count: Longint): Longint; override;
|
||||||
|
function Read(Buffer: TBytes; Offset, Count: Longint): Longint; override;
|
||||||
|
function Write(const Buffer: TBytes; Offset: Longint=0;Count:LongInt=-1): Longint; override;
|
||||||
|
|
||||||
|
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
|
||||||
|
property CompressionRate: Single read GetCompressionRate;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TZSTDDecompressStream = class(TCustomZSTDStream)
|
||||||
|
private
|
||||||
|
FOwnsStream: Boolean;
|
||||||
|
FDStream : ZSTD_DStream;
|
||||||
|
_eof : boolean;
|
||||||
|
public
|
||||||
|
constructor Create(source: TStream; OwnsStream: Boolean=false);
|
||||||
|
destructor Destroy; override;
|
||||||
|
function Read(var buffer; count: Longint): Longint; override;
|
||||||
|
function Write(const buffer; count: Longint): Longint; override;
|
||||||
|
function Read(Buffer: TBytes; Offset, Count: Longint): Longint; override;
|
||||||
|
function Write(const Buffer: TBytes; Offset, Count: Longint): Longint; override;
|
||||||
|
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CompressData(source : Pointer;srcSize:NativeInt; dst:Pointer;
|
||||||
|
dstCapacity:NativeInt; compressionLevel:integer=3):NativeInt; overload;
|
||||||
|
function DecompressData(Source:Pointer;srcSize:NativeInt;dst:Pointer;
|
||||||
|
dstCapacity:NativeInt):NativeInt; overload;
|
||||||
|
function CompressData(source :TBytes;index:NativeInt=0;size:NativeInt=-1;
|
||||||
|
compressionLevel:integer=3):TBytes; overload;
|
||||||
|
function DecompressData(Source:TBytes;Size:NativeInt=-1):TBytes; overload;
|
||||||
|
implementation
|
||||||
|
type
|
||||||
|
Context = record
|
||||||
|
class var [volatile]_CCTX : ZSTD_CCtx;
|
||||||
|
class var [volatile]_DCTX : ZSTD_DCtx;
|
||||||
|
class var [volatile]_CStream : ZSTD_CStream;
|
||||||
|
class var [volatile]_DStream : ZSTD_DStream;
|
||||||
|
class function GetCCTX:ZSTD_CCTX; inline; static;
|
||||||
|
class function GetDCTX:ZSTD_DCTX; inline; static;
|
||||||
|
class procedure FreeCCTX(C : ZSTD_CCTX); inline; static;
|
||||||
|
class procedure FreeDCTX(C : ZSTD_DCTX); inline; static;
|
||||||
|
class function GetCStream(cl:integer):ZSTD_CStream; inline; static;
|
||||||
|
class function GetDStream:ZSTD_DStream; inline; static;
|
||||||
|
class procedure FreeCStream(C : ZSTD_CStream); inline; static;
|
||||||
|
class procedure FreeDStream(C : ZSTD_DStream); inline; static;
|
||||||
|
class constructor Create;
|
||||||
|
class destructor Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function GetBuffer : Pointer; inline;
|
||||||
|
begin
|
||||||
|
{$IFDEF YWRTL}Result:=BufferPool256K.GetBuffer{$ELSE}GetMem(Result,256*1024){$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure FreeBuffer(var b : Pointer); inline;
|
||||||
|
begin
|
||||||
|
{$IFDEF YWRTL}BufferPool256K.FreeBuffer(b){$ELSE}FreeMem(b){$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CompressData(source : Pointer;srcSize:NativeInt; dst:Pointer;
|
||||||
|
dstCapacity:NativeInt; compressionLevel:integer=3):NativeInt; overload;
|
||||||
|
var TX : ZSTD_CCTX;
|
||||||
|
begin
|
||||||
|
TX := Context.GetCCTX;
|
||||||
|
try
|
||||||
|
Result:= ZSTD_CompressCCTX(TX,dst,dstCapacity,source,srcSize,compressionLevel);
|
||||||
|
finally
|
||||||
|
Context.FreeCCTX(TX);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
function CompressData(source :TBytes;index:NativeInt=0;size:NativeInt=-1;compressionLevel:integer=3):TBytes;
|
||||||
|
overload;
|
||||||
|
begin
|
||||||
|
if size=-1 then size := Length(source);
|
||||||
|
if size=0 then exit(nil);
|
||||||
|
setlength(Result,ZSTD_COMPRESSBOUND(size));
|
||||||
|
setLength(Result,CompressData(@Source[0],size,@Result[0],Length(Result),
|
||||||
|
compressionLevel));
|
||||||
|
end;
|
||||||
|
function DecompressData(Source:Pointer;srcSize:NativeInt;dst:Pointer;
|
||||||
|
dstCapacity:NativeInt):NativeInt; overload;
|
||||||
|
var TX : ZSTD_DCTX;
|
||||||
|
begin
|
||||||
|
TX := Context.GetDCTX;
|
||||||
|
try
|
||||||
|
Result := ZSTD_decompressDCTX(TX,dst,dstCapacity,source,srcSize);
|
||||||
|
finally
|
||||||
|
Context.FreeDCTX(TX);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
function DecompressData(Source:TBytes;Size:NativeInt=-1):TBytes; overload;
|
||||||
|
begin
|
||||||
|
if Size=-1 then Size := Length(Source);
|
||||||
|
SetLength(Result,Size*32);
|
||||||
|
SetLength(Result,DecompressData(@Source[0],Size,@Result[0],Length(Result)));
|
||||||
|
end;
|
||||||
|
{ TZSTDStream }
|
||||||
|
|
||||||
|
constructor TZSTDCompressStream.Create(dest: TStream; compressionLevel: Integer=3);
|
||||||
|
begin
|
||||||
|
inherited Create(dest);
|
||||||
|
flevel :=compressionLevel;
|
||||||
|
FCStream := Context.GetCStream(flevel);
|
||||||
|
FoutBuffer.size := 256*1024;
|
||||||
|
FoutBuffer.dst := GetBuffer;
|
||||||
|
FoutBuffer.pos := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TZSTDCompressStream.Destroy;
|
||||||
|
begin
|
||||||
|
ZSTD_flushStream(FCStream,FoutBuffer);
|
||||||
|
FStream.Write(FoutBuffer.dst^,FoutBuffer.pos);
|
||||||
|
FreeBuffer(FoutBuffer.dst);
|
||||||
|
Context.FreeCStream(FCStream);
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDCompressStream.GetCompressionRate: Single;
|
||||||
|
begin
|
||||||
|
if total_in = 0 then result := 0
|
||||||
|
else result := (1.0 - (total_out / total_in)) * 100.0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDCompressStream.Read(var buffer; count: Longint): Longint;
|
||||||
|
begin
|
||||||
|
raise Exception.Create('Compress Stream is WriteOnly');
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDCompressStream.Read(Buffer: TBytes; Offset, Count: Longint): Longint;
|
||||||
|
begin
|
||||||
|
raise Exception.Create('Compress Stream is WriteOnly');
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDCompressStream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;
|
||||||
|
begin
|
||||||
|
if (offset = 0) and (origin = soCurrent) then
|
||||||
|
begin
|
||||||
|
result := total_in;
|
||||||
|
end
|
||||||
|
else Result := -1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDCompressStream.Write(const Buffer: TBytes; Offset: Longint=0;Count:LongInt=-1): Longint;
|
||||||
|
begin
|
||||||
|
if Count=-1 then Count := Length(Buffer)-Offset;
|
||||||
|
Result := Write(Buffer[Offset],Count);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDCompressStream.Write(const buffer; count: Longint): Longint;
|
||||||
|
begin
|
||||||
|
Finbuffer.src := @buffer;
|
||||||
|
Finbuffer.size := count;
|
||||||
|
Finbuffer.pos := 0;
|
||||||
|
while Finbuffer.pos<Finbuffer.size do begin
|
||||||
|
ZSTD_compressStream2(FCStream,Foutbuffer,FinBuffer,ZSTD_e_continue);
|
||||||
|
if FoutBuffer.pos>0 then begin
|
||||||
|
FStream.Write(FoutBuffer.dst^,FoutBuffer.pos);
|
||||||
|
total_out := total_out+FoutBuffer.pos;
|
||||||
|
FoutBuffer.pos := 0;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
total_in := total_in+count;
|
||||||
|
Result := Count;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TCustomZSTDStream }
|
||||||
|
|
||||||
|
constructor TCustomZSTDStream.Create(stream: TStream);
|
||||||
|
begin
|
||||||
|
inherited Create;
|
||||||
|
FStream := stream;
|
||||||
|
FStreamStartPos := Stream.Position;
|
||||||
|
FStreamPos := FStreamStartPos;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TZDecompressionStream }
|
||||||
|
|
||||||
|
constructor TZSTDDecompressStream.Create(source: TStream; OwnsStream: Boolean=false);
|
||||||
|
begin
|
||||||
|
inherited Create(source);
|
||||||
|
FOwnsStream := OwnsStream;
|
||||||
|
FDStream := Context.GetDStream;
|
||||||
|
FinBuffer.size := 256*1024; //128K
|
||||||
|
FinBuffer.src := GetBuffer;
|
||||||
|
total_in := FStream.Read(FinBuffer.src^,FinBuffer.size);
|
||||||
|
_eof := total_in<FinBuffer.size;
|
||||||
|
FinBuffer.size := total_in;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TZSTDDecompressStream.Destroy;
|
||||||
|
begin
|
||||||
|
FreeBuffer(FinBuffer.src);
|
||||||
|
Context.FreeDStream(FDStream);
|
||||||
|
if FOwnsStream then
|
||||||
|
FStream.Free;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDDecompressStream.Read(Buffer: TBytes; Offset,
|
||||||
|
Count: Longint): Longint;
|
||||||
|
begin
|
||||||
|
Result := Read(Buffer[Offset],Count);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDDecompressStream.Read(var buffer; count: Longint): Longint;
|
||||||
|
var a,b : NativeInt;
|
||||||
|
begin
|
||||||
|
FoutBuffer.dst := @Buffer;
|
||||||
|
FoutBuffer.size := Count;
|
||||||
|
FoutBuffer.pos := 0;
|
||||||
|
repeat
|
||||||
|
b := ZSTD_decompressStream(FDStream,FoutBuffer,FinBuffer);
|
||||||
|
if ZSTD_iserror(b)<>0 then raise Exception.Create('ZSTD Error '+b.toString);
|
||||||
|
if (FInBuffer.pos=FInBuffer.size) then begin
|
||||||
|
if _eof then break;
|
||||||
|
a := FStream.Read(FInBuffer.src^,FInBuffer.size);
|
||||||
|
total_in := total_in+a;
|
||||||
|
_eof := a<FInBuffer.size;
|
||||||
|
FInBuffer.size:= a;
|
||||||
|
FInBuffer.pos := 0;
|
||||||
|
end;
|
||||||
|
until FoutBuffer.pos=FoutBuffer.size;
|
||||||
|
total_out:=total_out+FoutBuffer.pos;
|
||||||
|
Result := FOutBuffer.pos;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDDecompressStream.Seek(const Offset: Int64;
|
||||||
|
Origin: TSeekOrigin): Int64;
|
||||||
|
begin
|
||||||
|
Result := -1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDDecompressStream.Write(const Buffer: TBytes; Offset,
|
||||||
|
Count: Longint): Longint;
|
||||||
|
begin
|
||||||
|
raise Exception.Create('Compress Stream is ReadOnly');
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TZSTDDecompressStream.Write(const buffer; count: Longint): Longint;
|
||||||
|
begin
|
||||||
|
raise Exception.Create('Compress Stream is ReadOnly');
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ Contex }
|
||||||
|
|
||||||
|
class constructor Context.Create;
|
||||||
|
begin
|
||||||
|
_CCtx := nil;
|
||||||
|
_DCTX := nil;
|
||||||
|
_CStream := nil;
|
||||||
|
_DStream := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
class destructor Context.Destroy;
|
||||||
|
begin
|
||||||
|
if _CCTX<>nil then ZSTD_FreeCCTX(_CCtx);
|
||||||
|
if _DCTX<>nil then ZSTD_FreeDCTX(_DCTX);
|
||||||
|
if _CStream<>nil then ZSTD_FreeCStream(_CStream);
|
||||||
|
if _DStream<>nil then ZSTD_FreeDStream(_DStream);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure Context.FreeCCTX(C: ZSTD_CCTX);
|
||||||
|
begin
|
||||||
|
ZSTD_CCTX_reset(C,ZSTD_reset_session_only);
|
||||||
|
C := atomicExchange(_CCTX,C);
|
||||||
|
if C<>nil then ZSTD_FreeCCTX(c);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure Context.FreeCStream(C: ZSTD_CStream);
|
||||||
|
begin
|
||||||
|
C := atomicExchange(_CStream,C);
|
||||||
|
if C<>nil then ZSTD_FreeCStream(c);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure Context.FreeDCTX(C: ZSTD_DCTX);
|
||||||
|
begin
|
||||||
|
ZSTD_CCTX_reset(C,ZSTD_reset_session_only);
|
||||||
|
C := atomicExchange(_DCTX,C);
|
||||||
|
if C<>nil then ZSTD_FreeDCTX(c);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure Context.FreeDStream(C: ZSTD_DStream);
|
||||||
|
begin
|
||||||
|
ZSTD_initDStream(C);
|
||||||
|
C := atomicExchange(_DStream,C);
|
||||||
|
if C<>nil then ZSTD_FreeDStream(c);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class function Context.GetCCTX: ZSTD_CCTX;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
Result := atomicExchange(_CCTX,Result);
|
||||||
|
if Result=nil then Result := ZSTD_CreateCCTX;
|
||||||
|
end;
|
||||||
|
|
||||||
|
class function Context.GetCStream(cl: integer): ZSTD_CStream;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
Result := atomicExchange(_CStream,Result);
|
||||||
|
if Result = nil then Result := ZSTD_createCStream;
|
||||||
|
ZSTD_initCStream(Result,cl);
|
||||||
|
end;
|
||||||
|
|
||||||
|
class function Context.GetDCTX: ZSTD_DCTX;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
Result := atomicExchange(_DCTX,Result);
|
||||||
|
if Result=nil then Result := ZSTD_CreateDCTX;
|
||||||
|
end;
|
||||||
|
|
||||||
|
class function Context.GetDStream: ZSTD_DStream;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
Result := atomicExchange(_DStream,Result);
|
||||||
|
if Result=nil then Result := ZSTD_CreateDStream;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
|
@ -0,0 +1,38 @@
|
||||||
|
package ZSTD4Delphi;
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
|
||||||
|
{$ALIGN 8}
|
||||||
|
{$ASSERTIONS ON}
|
||||||
|
{$BOOLEVAL OFF}
|
||||||
|
{$DEBUGINFO OFF}
|
||||||
|
{$EXTENDEDSYNTAX ON}
|
||||||
|
{$IMPORTEDDATA ON}
|
||||||
|
{$IOCHECKS ON}
|
||||||
|
{$LOCALSYMBOLS OFF}
|
||||||
|
{$LONGSTRINGS ON}
|
||||||
|
{$OPENSTRINGS ON}
|
||||||
|
{$OPTIMIZATION ON}
|
||||||
|
{$OVERFLOWCHECKS OFF}
|
||||||
|
{$RANGECHECKS OFF}
|
||||||
|
{$REFERENCEINFO OFF}
|
||||||
|
{$SAFEDIVIDE OFF}
|
||||||
|
{$STACKFRAMES OFF}
|
||||||
|
{$TYPEDADDRESS OFF}
|
||||||
|
{$VARSTRINGCHECKS ON}
|
||||||
|
{$WRITEABLECONST OFF}
|
||||||
|
{$MINENUMSIZE 1}
|
||||||
|
{$IMAGEBASE $400000}
|
||||||
|
{$DEFINE RELEASE}
|
||||||
|
{$ENDIF IMPLICITBUILDING}
|
||||||
|
{$IMPLICITBUILD ON}
|
||||||
|
|
||||||
|
requires
|
||||||
|
rtl,
|
||||||
|
pkglibc;
|
||||||
|
|
||||||
|
contains
|
||||||
|
ZSTDLib in 'ZSTDLib.pas',
|
||||||
|
ZSTD in 'ZSTD.pas';
|
||||||
|
|
||||||
|
end.
|
|
@ -0,0 +1,975 @@
|
||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ProjectGuid>{AFFD1778-C01B-4A4A-9F25-E26FCD58EC71}</ProjectGuid>
|
||||||
|
<MainSource>ZSTD4Delphi.dpk</MainSource>
|
||||||
|
<ProjectVersion>19.4</ProjectVersion>
|
||||||
|
<FrameworkType>None</FrameworkType>
|
||||||
|
<Base>True</Base>
|
||||||
|
<Config Condition="'$(Config)'==''">Release</Config>
|
||||||
|
<Platform Condition="'$(Platform)'==''">Win64</Platform>
|
||||||
|
<TargetedPlatforms>3</TargetedPlatforms>
|
||||||
|
<AppType>Package</AppType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
|
||||||
|
<Base_Android>true</Base_Android>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Android64' and '$(Base)'=='true') or '$(Base_Android64)'!=''">
|
||||||
|
<Base_Android64>true</Base_Android64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Base)'=='true') or '$(Base_iOSDevice64)'!=''">
|
||||||
|
<Base_iOSDevice64>true</Base_iOSDevice64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='OSX64' and '$(Base)'=='true') or '$(Base_OSX64)'!=''">
|
||||||
|
<Base_OSX64>true</Base_OSX64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='OSXARM64' and '$(Base)'=='true') or '$(Base_OSXARM64)'!=''">
|
||||||
|
<Base_OSXARM64>true</Base_OSXARM64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||||
|
<Base_Win32>true</Base_Win32>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
|
||||||
|
<Base_Win64>true</Base_Win64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
|
||||||
|
<Cfg_1_Win32>true</Cfg_1_Win32>
|
||||||
|
<CfgParent>Cfg_1</CfgParent>
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
|
||||||
|
<Cfg_2>true</Cfg_2>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
|
||||||
|
<Cfg_2_Win32>true</Cfg_2_Win32>
|
||||||
|
<CfgParent>Cfg_2</CfgParent>
|
||||||
|
<Cfg_2>true</Cfg_2>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''">
|
||||||
|
<Cfg_2_Win64>true</Cfg_2_Win64>
|
||||||
|
<CfgParent>Cfg_2</CfgParent>
|
||||||
|
<Cfg_2>true</Cfg_2>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base)'!=''">
|
||||||
|
<DCC_DcuOutput>..\$(ProductVersion)\$(Platform)\$(Config)</DCC_DcuOutput>
|
||||||
|
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
|
||||||
|
<DCC_E>false</DCC_E>
|
||||||
|
<DCC_N>false</DCC_N>
|
||||||
|
<DCC_S>false</DCC_S>
|
||||||
|
<DCC_F>false</DCC_F>
|
||||||
|
<DCC_K>false</DCC_K>
|
||||||
|
<GenDll>true</GenDll>
|
||||||
|
<GenPackage>true</GenPackage>
|
||||||
|
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<DCC_CBuilderOutput>All</DCC_CBuilderOutput>
|
||||||
|
<SanitizedProjectName>ZSTD4Delphi</SanitizedProjectName>
|
||||||
|
<VerInfo_Locale>2052</VerInfo_Locale>
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Android)'!=''">
|
||||||
|
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||||
|
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar</EnabledSysJars>
|
||||||
|
<Android_LauncherIcon192>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png</Android_LauncherIcon192>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Android64)'!=''">
|
||||||
|
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||||
|
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar</EnabledSysJars>
|
||||||
|
<Android_LauncherIcon192>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png</Android_LauncherIcon192>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_iOSDevice64)'!=''">
|
||||||
|
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
|
||||||
|
<iOS_AppStore1024>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_1024x1024.png</iOS_AppStore1024>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_OSX64)'!=''">
|
||||||
|
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers</VerInfo_Keys>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_OSXARM64)'!=''">
|
||||||
|
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts;NSCalendarsUsageDescription=The reason for accessing the calendar data;NSRemindersUsageDescription=The reason for accessing the reminders;NSCameraUsageDescription=The reason for accessing the camera;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSMotionUsageDescription=The reason for accessing the accelerometer;NSDesktopFolderUsageDescription=The reason for accessing the Desktop folder;NSDocumentsFolderUsageDescription=The reason for accessing the Documents folder;NSDownloadsFolderUsageDescription=The reason for accessing the Downloads folder;NSNetworkVolumesUsageDescription=The reason for accessing files on a network volume;NSRemovableVolumesUsageDescription=The reason for accessing files on a removable volume;NSSpeechRecognitionUsageDescription=The reason for requesting to send user data to Apple's speech recognition servers</VerInfo_Keys>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||||
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
||||||
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<BT_BuildType>Debug</BT_BuildType>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
||||||
|
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_DebugDCUs>true</DCC_DebugDCUs>
|
||||||
|
<DCC_Optimize>false</DCC_Optimize>
|
||||||
|
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
||||||
|
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
|
||||||
|
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
||||||
|
<DCC_Inlining>off</DCC_Inlining>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
||||||
|
<DCC_RemoteDebug>false</DCC_RemoteDebug>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||||
|
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||||
|
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||||
|
<DCC_DebugInformation>0</DCC_DebugInformation>
|
||||||
|
<DCC_Inlining>auto</DCC_Inlining>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
|
||||||
|
<DCC_DcuOutput>..\$(ProductVersion)\$(Platform)\$(Config)</DCC_DcuOutput>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<DelphiCompile Include="$(MainSource)">
|
||||||
|
<MainSource>MainSource</MainSource>
|
||||||
|
</DelphiCompile>
|
||||||
|
<DCCReference Include="rtl.dcp"/>
|
||||||
|
<DCCReference Include="pkglibc.dcp"/>
|
||||||
|
<DCCReference Include="ZSTDLib.pas"/>
|
||||||
|
<DCCReference Include="ZSTD.pas"/>
|
||||||
|
<None Include="zstd4delphi.c"/>
|
||||||
|
<BuildConfiguration Include="Base">
|
||||||
|
<Key>Base</Key>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Debug">
|
||||||
|
<Key>Cfg_1</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Release">
|
||||||
|
<Key>Cfg_2</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<ProjectExtensions>
|
||||||
|
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
||||||
|
<Borland.ProjectType>Package</Borland.ProjectType>
|
||||||
|
<BorlandProject>
|
||||||
|
<Delphi.Personality>
|
||||||
|
<Source>
|
||||||
|
<Source Name="MainSource">ZSTD4Delphi.dpk</Source>
|
||||||
|
</Source>
|
||||||
|
<Excluded_Packages>
|
||||||
|
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k280.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||||
|
<Excluded_Packages Name="$(BDSBIN)\dclofficexp280.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||||
|
</Excluded_Packages>
|
||||||
|
</Delphi.Personality>
|
||||||
|
<Platforms>
|
||||||
|
<Platform value="Android">False</Platform>
|
||||||
|
<Platform value="Android64">False</Platform>
|
||||||
|
<Platform value="iOSDevice64">False</Platform>
|
||||||
|
<Platform value="Linux64">False</Platform>
|
||||||
|
<Platform value="OSX64">False</Platform>
|
||||||
|
<Platform value="OSXARM64">False</Platform>
|
||||||
|
<Platform value="Win32">True</Platform>
|
||||||
|
<Platform value="Win64">True</Platform>
|
||||||
|
</Platforms>
|
||||||
|
<Deployment Version="3">
|
||||||
|
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libcgunwind.1.0.dylib" Class="DependencyModule">
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Win64\ZSTD4Delphi.bpl" Configuration="Debug" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteName>ZSTD4Delphi.bpl</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\ZSTD4Delphi.bpl" Configuration="Debug" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteName>ZSTD4Delphi.bpl</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\ZSTD4Delphi.bpl" Configuration="Release" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteName>ZSTD4Delphi.bpl</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\Win64\ZSTD4Delphi.bpl" Configuration="Release" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteName>ZSTD4Delphi.bpl</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployClass Name="AdditionalDebugSymbols">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidClasses">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidClassesDexFile">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>classes</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidFileProvider">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\xml</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\xml</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidGDBServer">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeArmeabiFile">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeArmeabiv7aFile">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidLibnativeMipsFile">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\mips</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\mips</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidServiceOutput">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidServiceOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidSplashImageDef">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidSplashStyles">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="AndroidSplashStylesV21">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values-v21</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values-v21</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_Colors">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_DefaultAppIcon">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon144">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon192">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon36">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon48">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon72">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_LauncherIcon96">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon24">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon36">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon48">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon72">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_NotificationIcon96">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xxxhdpi</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage426">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-small</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-small</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage470">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage640">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-large</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-large</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_SplashImage960">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="Android_Strings">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>res\values</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="DebugSymbols">
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="DependencyFramework">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.framework</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.framework</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.framework</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="DependencyModule">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
<Extensions>.dll;.bpl</Extensions>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Required="true" Name="DependencyPackage">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
<Extensions>.dylib</Extensions>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
<Extensions>.bpl</Extensions>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="File">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iOS_AppStore1024">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_AppIcon152">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_AppIcon167">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_Launch2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_LaunchDark2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_Notification40">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_Setting58">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPad_SpotLight80">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_AppIcon120">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_AppIcon180">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Launch2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Launch3x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_LaunchDark2x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_LaunchDark3x">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Notification40">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Notification60">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Setting58">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Setting87">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Spotlight120">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="iPhone_Spotlight80">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectAndroidManifest">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
|
||||||
|
<DeployClass Name="ProjectiOSEntitlements"/>
|
||||||
|
<DeployClass Name="ProjectiOSInfoPList"/>
|
||||||
|
<DeployClass Name="ProjectiOSLaunchScreen"/>
|
||||||
|
<DeployClass Name="ProjectiOSResource">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXDebug"/>
|
||||||
|
<DeployClass Name="ProjectOSXEntitlements"/>
|
||||||
|
<DeployClass Name="ProjectOSXInfoPList"/>
|
||||||
|
<DeployClass Name="ProjectOSXResource">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Required="true" Name="ProjectOutput">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimulator">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Linux64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectUWPManifest">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo150">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo44">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||||
|
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
|
||||||
|
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
||||||
|
</Deployment>
|
||||||
|
</BorlandProject>
|
||||||
|
<ProjectFileVersion>12</ProjectFileVersion>
|
||||||
|
</ProjectExtensions>
|
||||||
|
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||||
|
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
||||||
|
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
|
||||||
|
</Project>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<BorlandProject>
|
||||||
|
<Transactions>
|
||||||
|
<Transaction>2020/06/16 01:28:10.000.042,=rtl.dcp</Transaction>
|
||||||
|
<Transaction>2020/06/16 01:28:41.000.583,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\ZSTD.dproj=D:\Users\YW\Documents\Embarcadero\Studio\Projects\Package1.dproj</Transaction>
|
||||||
|
<Transaction>2020/06/16 01:28:54.000.792,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/06/16 01:29:04.000.967,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\ZSTDLib.pas=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/06/16 08:05:04.000.477,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/06/16 08:05:13.000.496,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\libc.pas=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/06/16 13:10:08.000.869,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\libc.pas=</Transaction>
|
||||||
|
<Transaction>2020/06/16 14:00:05.000.919,=pkglibc.dcp</Transaction>
|
||||||
|
<Transaction>2020/06/18 14:33:14.000.515,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\Unit1.pas</Transaction>
|
||||||
|
<Transaction>2020/06/18 14:33:33.000.922,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\Unit1.pas=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\ZSTDStream.pas</Transaction>
|
||||||
|
<Transaction>2020/12/24 22:59:00.000.255,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd148\ZSTD.dproj=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd148\ZSTD148.dproj</Transaction>
|
||||||
|
<Transaction>2021/01/25 20:51:35.000.742,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd148\ZSTDStream.pas=</Transaction>
|
||||||
|
<Transaction>2021/01/25 20:51:44.000.149,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd148\ZSTD.pas</Transaction>
|
||||||
|
<Transaction>2021/04/19 22:24:34.000.284,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd149\ZSTD148.dproj=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd149\ZSTD149.dproj</Transaction>
|
||||||
|
<Transaction>2021/05/20 22:52:35.000.767,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd150\ZSTD150.dproj=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd150\ZSTD149.dproj</Transaction>
|
||||||
|
<Transaction>2022/03/08 17:01:53.000.619,D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\ZSTD4Delphi.dproj=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\ZSTD150.dproj</Transaction>
|
||||||
|
<Transaction>2022/03/09 19:37:43.000.296,=D:\Users\YW\Documents\Embarcadero\Studio\Projects\YWLIB\zstd\zstd4delphi.c</Transaction>
|
||||||
|
</Transactions>
|
||||||
|
<ProjectSortOrder AutoSort="0" SortType="0">
|
||||||
|
<File Path="ZSTD.pas"/>
|
||||||
|
<File Path="zstd4delphi.c"/>
|
||||||
|
<File Path="ZSTDLib.pas"/>
|
||||||
|
<File Path="pkglibc.dcp"/>
|
||||||
|
<File Path="rtl.dcp"/>
|
||||||
|
</ProjectSortOrder>
|
||||||
|
</BorlandProject>
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,24 @@
|
||||||
|
#define ZSTD_NO_TRACE
|
||||||
|
#define XXH_NAMESPACE
|
||||||
|
#include"common/error_private.c"
|
||||||
|
#include"common/zstd_common.c"
|
||||||
|
#include"compress/zstd_compress.c"
|
||||||
|
#include"compress/zstd_ldm.c"
|
||||||
|
#include"compress/zstd_double_fast.c"
|
||||||
|
#include"compress/zstd_fast.c"
|
||||||
|
#include"compress/zstd_opt.c"
|
||||||
|
#include"compress/zstd_lazy.c"
|
||||||
|
#include"compress/zstd_compress_literals.c"
|
||||||
|
#include"compress/hist.c"
|
||||||
|
#include"compress/zstd_compress_sequences.c"
|
||||||
|
#include"compress/zstd_compress_superblock.c"
|
||||||
|
#include"compress/huf_compress.c"
|
||||||
|
#define FSE_isError entropy_FSE_isErr
|
||||||
|
#define HUF_isError entropy_HUF_isErr
|
||||||
|
#include"common/entropy_common.c"
|
||||||
|
#include"compress/fse_compress.c"
|
||||||
|
#include"common/fse_decompress.c"
|
||||||
|
#include"decompress/zstd_decompress.c"
|
||||||
|
#include"decompress/zstd_ddict.c"
|
||||||
|
#include"decompress/zstd_decompress_block.c"
|
||||||
|
#include"decompress/huf_decompress.c"
|
Binary file not shown.
Binary file not shown.
|
@ -193,7 +193,7 @@ begin
|
||||||
if FileExists(Input1) then
|
if FileExists(Input1) then
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1))
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1))
|
||||||
else if DirectoryExists(Input1) then
|
else if DirectoryExists(Input1) then
|
||||||
BaseDir := IncludeTrailingBackSlash(TPath.GetFullPath(Input1))
|
BaseDir := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input1))
|
||||||
else
|
else
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1));
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1));
|
||||||
LList := GetFileList([Input1], True);
|
LList := GetFileList([Input1], True);
|
||||||
|
@ -305,7 +305,7 @@ begin
|
||||||
if FileExists(Input2) then
|
if FileExists(Input2) then
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2))
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2))
|
||||||
else if DirectoryExists(Input2) then
|
else if DirectoryExists(Input2) then
|
||||||
BaseDir := IncludeTrailingBackSlash(TPath.GetFullPath(Input2))
|
BaseDir := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input2))
|
||||||
else
|
else
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2));
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2));
|
||||||
LList := GetFileList([Input2], True);
|
LList := GetFileList([Input2], True);
|
||||||
|
|
|
@ -97,7 +97,7 @@ begin
|
||||||
if FileExists(Input[I]) then
|
if FileExists(Input[I]) then
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input[I]))
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input[I]))
|
||||||
else if DirectoryExists(Input[I]) then
|
else if DirectoryExists(Input[I]) then
|
||||||
BaseDir := IncludeTrailingBackSlash(TPath.GetFullPath(Input[I]))
|
BaseDir := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input[I]))
|
||||||
else
|
else
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input[I]));
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input[I]));
|
||||||
LList := GetFileList([Input[I]], True);
|
LList := GetFileList([Input[I]], True);
|
||||||
|
@ -136,7 +136,7 @@ var
|
||||||
LBytes: TBytes;
|
LBytes: TBytes;
|
||||||
FStream: TFileStream;
|
FStream: TFileStream;
|
||||||
begin
|
begin
|
||||||
BaseDir := IncludeTrailingBackSlash(Output);
|
BaseDir := IncludeTrailingPathDelimiter(Output);
|
||||||
Input.ReadBuffer(I, I.Size);
|
Input.ReadBuffer(I, I.Size);
|
||||||
while I >= 0 do
|
while I >= 0 do
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -93,13 +93,13 @@ begin
|
||||||
if FileExists(Input2) then
|
if FileExists(Input2) then
|
||||||
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2))
|
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2))
|
||||||
else if DirectoryExists(Input2) then
|
else if DirectoryExists(Input2) then
|
||||||
BaseDir1 := IncludeTrailingBackSlash(TPath.GetFullPath(Input2))
|
BaseDir1 := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input2))
|
||||||
else
|
else
|
||||||
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2));
|
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2));
|
||||||
if FileExists(Output) then
|
if FileExists(Output) then
|
||||||
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Output))
|
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Output))
|
||||||
else if DirectoryExists(Output) then
|
else if DirectoryExists(Output) then
|
||||||
BaseDir2 := IncludeTrailingBackSlash(TPath.GetFullPath(Output))
|
BaseDir2 := IncludeTrailingPathDelimiter(TPath.GetFullPath(Output))
|
||||||
else
|
else
|
||||||
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Output));
|
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Output));
|
||||||
while true do
|
while true do
|
||||||
|
@ -154,13 +154,13 @@ begin
|
||||||
if FileExists(Input2) then
|
if FileExists(Input2) then
|
||||||
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2))
|
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2))
|
||||||
else if DirectoryExists(Input2) then
|
else if DirectoryExists(Input2) then
|
||||||
BaseDir1 := IncludeTrailingBackSlash(TPath.GetFullPath(Input2))
|
BaseDir1 := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input2))
|
||||||
else
|
else
|
||||||
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2));
|
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2));
|
||||||
if FileExists(Output) then
|
if FileExists(Output) then
|
||||||
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Output))
|
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Output))
|
||||||
else if DirectoryExists(Output) then
|
else if DirectoryExists(Output) then
|
||||||
BaseDir2 := IncludeTrailingBackSlash(TPath.GetFullPath(Output))
|
BaseDir2 := IncludeTrailingPathDelimiter(TPath.GetFullPath(Output))
|
||||||
else
|
else
|
||||||
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Output));
|
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Output));
|
||||||
while true do
|
while true do
|
||||||
|
|
|
@ -123,7 +123,7 @@ begin
|
||||||
if FileExists(Input1) then
|
if FileExists(Input1) then
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1))
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1))
|
||||||
else if DirectoryExists(Input1) then
|
else if DirectoryExists(Input1) then
|
||||||
BaseDir := IncludeTrailingBackSlash(TPath.GetFullPath(Input1))
|
BaseDir := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input1))
|
||||||
else
|
else
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1));
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1));
|
||||||
LList := GetFileList([Input1], True);
|
LList := GetFileList([Input1], True);
|
||||||
|
@ -235,7 +235,7 @@ begin
|
||||||
if FileExists(Input2) then
|
if FileExists(Input2) then
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2))
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2))
|
||||||
else if DirectoryExists(Input2) then
|
else if DirectoryExists(Input2) then
|
||||||
BaseDir := IncludeTrailingBackSlash(TPath.GetFullPath(Input2))
|
BaseDir := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input2))
|
||||||
else
|
else
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2));
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2));
|
||||||
LList := GetFileList([Input2], True);
|
LList := GetFileList([Input2], True);
|
||||||
|
|
|
@ -215,7 +215,7 @@ begin
|
||||||
SS := TSharedMemoryStream.Create
|
SS := TSharedMemoryStream.Create
|
||||||
(LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
(LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
||||||
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF2)),
|
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF2)),
|
||||||
IncludeTrailingBackSlash(PString(WorkDir)^) + InFile);
|
IncludeTrailingPathDelimiter(PString(WorkDir)^) + InFile);
|
||||||
try
|
try
|
||||||
Res := ExecStdin(Exec, Param, PString(WorkDir)^,
|
Res := ExecStdin(Exec, Param, PString(WorkDir)^,
|
||||||
SS.Memory, SS.Size);
|
SS.Memory, SS.Size);
|
||||||
|
@ -226,7 +226,7 @@ begin
|
||||||
STDOUT_MODE:
|
STDOUT_MODE:
|
||||||
begin
|
begin
|
||||||
TFS := TFileStream.Create
|
TFS := TFileStream.Create
|
||||||
(IncludeTrailingBackSlash(PString(WorkDir)^) + OutFile,
|
(IncludeTrailingPathDelimiter(PString(WorkDir)^) + OutFile,
|
||||||
fmCreate);
|
fmCreate);
|
||||||
try
|
try
|
||||||
Res := ExecStdout(Exec, Param, PString(WorkDir)^, Callback);
|
Res := ExecStdout(Exec, Param, PString(WorkDir)^, Callback);
|
||||||
|
@ -239,9 +239,9 @@ begin
|
||||||
SS := TSharedMemoryStream.Create
|
SS := TSharedMemoryStream.Create
|
||||||
(LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
(LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
||||||
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF2)),
|
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF2)),
|
||||||
IncludeTrailingBackSlash(PString(WorkDir)^) + InFile);
|
IncludeTrailingPathDelimiter(PString(WorkDir)^) + InFile);
|
||||||
TFS := TFileStream.Create
|
TFS := TFileStream.Create
|
||||||
(IncludeTrailingBackSlash(PString(WorkDir)^) + OutFile,
|
(IncludeTrailingPathDelimiter(PString(WorkDir)^) + OutFile,
|
||||||
fmCreate);
|
fmCreate);
|
||||||
try
|
try
|
||||||
Res := ExecStdio(Exec, Param, PString(WorkDir)^, SS.Memory,
|
Res := ExecStdio(Exec, Param, PString(WorkDir)^, SS.Memory,
|
||||||
|
@ -278,11 +278,11 @@ var
|
||||||
|
|
||||||
procedure Load(X: Integer);
|
procedure Load(X: Integer);
|
||||||
begin
|
begin
|
||||||
DeleteFile(IncludeTrailingBackSlash(WorkDir[X]) + LCtx.InFile);
|
DeleteFile(IncludeTrailingPathDelimiter(WorkDir[X]) + LCtx.InFile);
|
||||||
DeleteFile(IncludeTrailingBackSlash(WorkDir[X]) + LCtx.OutFile);
|
DeleteFile(IncludeTrailingPathDelimiter(WorkDir[X]) + LCtx.OutFile);
|
||||||
if not Done then
|
if not Done then
|
||||||
begin
|
begin
|
||||||
FStream := TFileStream.Create(IncludeTrailingBackSlash(WorkDir[X]) +
|
FStream := TFileStream.Create(IncludeTrailingPathDelimiter(WorkDir[X]) +
|
||||||
LCtx.InFile, fmCreate);
|
LCtx.InFile, fmCreate);
|
||||||
try
|
try
|
||||||
Done := CopyStream(Input, FStream, Options.ChunkSize) = 0;
|
Done := CopyStream(Input, FStream, Options.ChunkSize) = 0;
|
||||||
|
@ -307,7 +307,7 @@ begin
|
||||||
SetLength(State, Options.Threads);
|
SetLength(State, Options.Threads);
|
||||||
for I := Low(Tasks) to High(Tasks) do
|
for I := Low(Tasks) to High(Tasks) do
|
||||||
begin
|
begin
|
||||||
WorkDir[I] := IncludeTrailingBackSlash(GetCurrentDir) +
|
WorkDir[I] := IncludeTrailingPathDelimiter(GetCurrentDir) +
|
||||||
LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
||||||
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF1));
|
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF1));
|
||||||
CreateDir(WorkDir[I]);
|
CreateDir(WorkDir[I]);
|
||||||
|
@ -333,10 +333,10 @@ begin
|
||||||
continue;
|
continue;
|
||||||
B := 0;
|
B := 0;
|
||||||
if State[I] = STATE_EXECUTED then
|
if State[I] = STATE_EXECUTED then
|
||||||
S := IncludeTrailingBackSlash(WorkDir[I]) + LCtx.OutFile
|
S := IncludeTrailingPathDelimiter(WorkDir[I]) + LCtx.OutFile
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
S := IncludeTrailingBackSlash(WorkDir[I]) + LCtx.InFile;
|
S := IncludeTrailingPathDelimiter(WorkDir[I]) + LCtx.InFile;
|
||||||
B := 1;
|
B := 1;
|
||||||
end;
|
end;
|
||||||
SStream := TSharedMemoryStream.Create
|
SStream := TSharedMemoryStream.Create
|
||||||
|
@ -386,8 +386,8 @@ var
|
||||||
B: Byte;
|
B: Byte;
|
||||||
I64: Int64;
|
I64: Int64;
|
||||||
begin
|
begin
|
||||||
DeleteFile(IncludeTrailingBackSlash(WorkDir[X]) + LCtx.InFile);
|
DeleteFile(IncludeTrailingPathDelimiter(WorkDir[X]) + LCtx.InFile);
|
||||||
DeleteFile(IncludeTrailingBackSlash(WorkDir[X]) + LCtx.OutFile);
|
DeleteFile(IncludeTrailingPathDelimiter(WorkDir[X]) + LCtx.OutFile);
|
||||||
if not Done then
|
if not Done then
|
||||||
begin
|
begin
|
||||||
repeat
|
repeat
|
||||||
|
@ -395,7 +395,7 @@ var
|
||||||
Input.ReadBuffer(I64, I64.Size);
|
Input.ReadBuffer(I64, I64.Size);
|
||||||
if I64 >= 0 then
|
if I64 >= 0 then
|
||||||
begin
|
begin
|
||||||
FStream := TFileStream.Create(IncludeTrailingBackSlash(WorkDir[X]) +
|
FStream := TFileStream.Create(IncludeTrailingPathDelimiter(WorkDir[X]) +
|
||||||
LCtx.InFile, fmCreate);
|
LCtx.InFile, fmCreate);
|
||||||
try
|
try
|
||||||
if B = 0 then
|
if B = 0 then
|
||||||
|
@ -425,7 +425,7 @@ begin
|
||||||
SetLength(State, Options.Threads);
|
SetLength(State, Options.Threads);
|
||||||
for I := Low(Tasks) to High(Tasks) do
|
for I := Low(Tasks) to High(Tasks) do
|
||||||
begin
|
begin
|
||||||
WorkDir[I] := IncludeTrailingBackSlash(GetCurrentDir) +
|
WorkDir[I] := IncludeTrailingPathDelimiter(GetCurrentDir) +
|
||||||
LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
||||||
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF1));
|
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF1));
|
||||||
CreateDir(WorkDir[I]);
|
CreateDir(WorkDir[I]);
|
||||||
|
@ -450,7 +450,7 @@ begin
|
||||||
if State[I] = STATE_DONE then
|
if State[I] = STATE_DONE then
|
||||||
continue;
|
continue;
|
||||||
if State[I] = STATE_EXECUTED then
|
if State[I] = STATE_EXECUTED then
|
||||||
S := IncludeTrailingBackSlash(WorkDir[I]) + LCtx.OutFile
|
S := IncludeTrailingPathDelimiter(WorkDir[I]) + LCtx.OutFile
|
||||||
else
|
else
|
||||||
raise Exception.CreateRes(@SWriteError);
|
raise Exception.CreateRes(@SWriteError);
|
||||||
SStream := TSharedMemoryStream.Create
|
SStream := TSharedMemoryStream.Create
|
||||||
|
|
|
@ -123,7 +123,7 @@ begin
|
||||||
if FileExists(Input1) then
|
if FileExists(Input1) then
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1))
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1))
|
||||||
else if DirectoryExists(Input1) then
|
else if DirectoryExists(Input1) then
|
||||||
BaseDir := IncludeTrailingBackSlash(TPath.GetFullPath(Input1))
|
BaseDir := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input1))
|
||||||
else
|
else
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1));
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input1));
|
||||||
LList := GetFileList([Input1], True);
|
LList := GetFileList([Input1], True);
|
||||||
|
@ -235,7 +235,7 @@ begin
|
||||||
if FileExists(Input2) then
|
if FileExists(Input2) then
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2))
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2))
|
||||||
else if DirectoryExists(Input2) then
|
else if DirectoryExists(Input2) then
|
||||||
BaseDir := IncludeTrailingBackSlash(TPath.GetFullPath(Input2))
|
BaseDir := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input2))
|
||||||
else
|
else
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2));
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Input2));
|
||||||
LList := GetFileList([Input2], True);
|
LList := GetFileList([Input2], True);
|
||||||
|
|
|
@ -131,7 +131,7 @@ begin
|
||||||
if FileExists(Input1) then
|
if FileExists(Input1) then
|
||||||
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input1))
|
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input1))
|
||||||
else if DirectoryExists(Input1) then
|
else if DirectoryExists(Input1) then
|
||||||
BaseDir1 := IncludeTrailingBackSlash(TPath.GetFullPath(Input1))
|
BaseDir1 := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input1))
|
||||||
else
|
else
|
||||||
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input1));
|
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input1));
|
||||||
LList1 := GetFileList([Input1], True);
|
LList1 := GetFileList([Input1], True);
|
||||||
|
@ -140,7 +140,7 @@ begin
|
||||||
if FileExists(Input2) then
|
if FileExists(Input2) then
|
||||||
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Input2))
|
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Input2))
|
||||||
else if DirectoryExists(Input2) then
|
else if DirectoryExists(Input2) then
|
||||||
BaseDir2 := IncludeTrailingBackSlash(TPath.GetFullPath(Input2))
|
BaseDir2 := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input2))
|
||||||
else
|
else
|
||||||
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Input2));
|
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Input2));
|
||||||
LList2 := GetFileList([Input2], True);
|
LList2 := GetFileList([Input2], True);
|
||||||
|
@ -223,7 +223,7 @@ begin
|
||||||
end;
|
end;
|
||||||
Delete(LList2, I, 1);
|
Delete(LList2, I, 1);
|
||||||
end;
|
end;
|
||||||
TempDir := IncludeTrailingBackSlash(GetCurrentDir) +
|
TempDir := IncludeTrailingPathDelimiter(GetCurrentDir) +
|
||||||
LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
||||||
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF1));
|
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF1));
|
||||||
if not DirectoryExists(TempDir) then
|
if not DirectoryExists(TempDir) then
|
||||||
|
@ -250,7 +250,7 @@ begin
|
||||||
Y := AtomicIncrement(J);
|
Y := AtomicIncrement(J);
|
||||||
while Y < Z do
|
while Y < Z do
|
||||||
begin
|
begin
|
||||||
S1 := IncludeTrailingBackSlash(TempDir) + Y.ToHexString +
|
S1 := IncludeTrailingPathDelimiter(TempDir) + Y.ToHexString +
|
||||||
XTOOL_MAPSUF3;
|
XTOOL_MAPSUF3;
|
||||||
if C then
|
if C then
|
||||||
S2 := Input1
|
S2 := Input1
|
||||||
|
@ -296,7 +296,7 @@ begin
|
||||||
begin
|
begin
|
||||||
while I >= K do
|
while I >= K do
|
||||||
Sleep(10);
|
Sleep(10);
|
||||||
LFilename := IncludeTrailingBackSlash(TempDir) + I.ToHexString +
|
LFilename := IncludeTrailingPathDelimiter(TempDir) + I.ToHexString +
|
||||||
XTOOL_MAPSUF3;
|
XTOOL_MAPSUF3;
|
||||||
if FileExists(LFilename) then
|
if FileExists(LFilename) then
|
||||||
begin
|
begin
|
||||||
|
@ -357,10 +357,10 @@ begin
|
||||||
if FileExists(Output) then
|
if FileExists(Output) then
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Output))
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Output))
|
||||||
else if DirectoryExists(Output) then
|
else if DirectoryExists(Output) then
|
||||||
BaseDir := IncludeTrailingBackSlash(TPath.GetFullPath(Output))
|
BaseDir := IncludeTrailingPathDelimiter(TPath.GetFullPath(Output))
|
||||||
else
|
else
|
||||||
BaseDir := ExtractFilePath(TPath.GetFullPath(Output));
|
BaseDir := ExtractFilePath(TPath.GetFullPath(Output));
|
||||||
S1 := IncludeTrailingBackSlash(GetCurrentDir) +
|
S1 := IncludeTrailingPathDelimiter(GetCurrentDir) +
|
||||||
LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
LowerCase(ChangeFileExt(ExtractFileName(Utils.GetModuleName),
|
||||||
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF3));
|
'_' + Random($7FFFFFFF).ToHexString + XTOOL_MAPSUF3));
|
||||||
SStream0 := TSharedMemoryStream.Create
|
SStream0 := TSharedMemoryStream.Create
|
||||||
|
|
|
@ -126,7 +126,7 @@ begin
|
||||||
if FileExists(Input1) then
|
if FileExists(Input1) then
|
||||||
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input1))
|
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input1))
|
||||||
else if DirectoryExists(Input1) then
|
else if DirectoryExists(Input1) then
|
||||||
BaseDir1 := IncludeTrailingBackSlash(TPath.GetFullPath(Input1))
|
BaseDir1 := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input1))
|
||||||
else
|
else
|
||||||
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input1));
|
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input1));
|
||||||
LList := GetFileList([Input1], True);
|
LList := GetFileList([Input1], True);
|
||||||
|
@ -238,13 +238,13 @@ begin
|
||||||
if FileExists(Input2) then
|
if FileExists(Input2) then
|
||||||
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2))
|
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2))
|
||||||
else if DirectoryExists(Input2) then
|
else if DirectoryExists(Input2) then
|
||||||
BaseDir1 := IncludeTrailingBackSlash(TPath.GetFullPath(Input2))
|
BaseDir1 := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input2))
|
||||||
else
|
else
|
||||||
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2));
|
BaseDir1 := ExtractFilePath(TPath.GetFullPath(Input2));
|
||||||
if FileExists(Input3) then
|
if FileExists(Input3) then
|
||||||
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Input3))
|
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Input3))
|
||||||
else if DirectoryExists(Input3) then
|
else if DirectoryExists(Input3) then
|
||||||
BaseDir2 := IncludeTrailingBackSlash(TPath.GetFullPath(Input3))
|
BaseDir2 := IncludeTrailingPathDelimiter(TPath.GetFullPath(Input3))
|
||||||
else
|
else
|
||||||
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Input3));
|
BaseDir2 := ExtractFilePath(TPath.GetFullPath(Input3));
|
||||||
LList := GetFileList([Input3], True);
|
LList := GetFileList([Input3], True);
|
||||||
|
|
|
@ -452,11 +452,11 @@ begin
|
||||||
for Y := Low(CodecSize) to High(CodecSize) do
|
for Y := Low(CodecSize) to High(CodecSize) do
|
||||||
begin
|
begin
|
||||||
repeat
|
repeat
|
||||||
CodecExe[X].WorkDir[Y, Z] := IncludeTrailingBackSlash
|
CodecExe[X].WorkDir[Y, Z] := IncludeTrailingPathDelimiter
|
||||||
(IncludeTrailingBackSlash(GetCurrentDir) + CodecExe[X].Name + '_' +
|
(IncludeTrailingPathDelimiter(GetCurrentDir) + CodecExe[X].Name + '_' +
|
||||||
IntToHex(Random($10000), 4));
|
IntToHex(Random($10000), 4));
|
||||||
until DirectoryExists(CodecExe[X].WorkDir[Y, Z]) = False;
|
until DirectoryExists(CodecExe[X].WorkDir[Y, Z]) = False;
|
||||||
IncludeTrailingBackSlash(CodecExe[X].WorkDir[Y, Z]);
|
IncludeTrailingPathDelimiter(CodecExe[X].WorkDir[Y, Z]);
|
||||||
if CodecExe[X].Mode[Z] = STDIO_MODE then
|
if CodecExe[X].Mode[Z] = STDIO_MODE then
|
||||||
CodecExe[X].Ctx[Y, Z] := ExecStdioInit(Y, PChar(CodecExe[X].Exec[Z]),
|
CodecExe[X].Ctx[Y, Z] := ExecStdioInit(Y, PChar(CodecExe[X].Exec[Z]),
|
||||||
PChar(CodecExe[X].Param[Z]), PChar(CodecExe[X].WorkDir[Y, Z]),
|
PChar(CodecExe[X].Param[Z]), PChar(CodecExe[X].WorkDir[Y, Z]),
|
||||||
|
|
|
@ -66,13 +66,15 @@ procedure PrecompLogPatch1(OldSize, NewSize, PatchSize: Integer;
|
||||||
Status: Boolean)cdecl;
|
Status: Boolean)cdecl;
|
||||||
procedure PrecompLogPatch2(OldSize, NewSize, PatchSize: Integer;
|
procedure PrecompLogPatch2(OldSize, NewSize, PatchSize: Integer;
|
||||||
Status: Boolean)cdecl;
|
Status: Boolean)cdecl;
|
||||||
|
procedure PrecompLogReprocess(Method: PChar; Size1, Size2, Size3: Integer;
|
||||||
|
Status: Boolean)cdecl;
|
||||||
|
|
||||||
procedure PrecompOutput1(Instance: Integer; const Buffer: Pointer;
|
procedure PrecompOutput1(Instance: Integer; const Buffer: Pointer;
|
||||||
Size: Integer);
|
Size: Integer)cdecl;
|
||||||
procedure PrecompOutput2(Instance: Integer; const Buffer: Pointer;
|
procedure PrecompOutput2(Instance: Integer; const Buffer: Pointer;
|
||||||
Size: Integer);
|
Size: Integer)cdecl;
|
||||||
procedure PrecompOutput3(Instance: Integer; const Buffer: Pointer;
|
procedure PrecompOutput3(Instance: Integer; const Buffer: Pointer;
|
||||||
Size: Integer);
|
Size: Integer)cdecl;
|
||||||
procedure PrecompAddStream(Instance: Integer; Info: PStrInfo1; Codec: PChar;
|
procedure PrecompAddStream(Instance: Integer; Info: PStrInfo1; Codec: PChar;
|
||||||
DepthInfo: PDepthInfo)cdecl;
|
DepthInfo: PDepthInfo)cdecl;
|
||||||
procedure PrecompTransfer(Instance: Integer; Codec: PChar)cdecl;
|
procedure PrecompTransfer(Instance: Integer; Codec: PChar)cdecl;
|
||||||
|
@ -98,6 +100,7 @@ type
|
||||||
DupCount: Integer;
|
DupCount: Integer;
|
||||||
InSize, InflSize, SrepSize, CompSize: Int64;
|
InSize, InflSize, SrepSize, CompSize: Int64;
|
||||||
SrepMem: Integer;
|
SrepMem: Integer;
|
||||||
|
CachedComp, CachedUsed: Int64;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
@ -114,6 +117,7 @@ var
|
||||||
VERBOSE: Boolean = False;
|
VERBOSE: Boolean = False;
|
||||||
EXTRACT: Boolean = False;
|
EXTRACT: Boolean = False;
|
||||||
NOVERIFY: Boolean = False;
|
NOVERIFY: Boolean = False;
|
||||||
|
REPROCESS: String = '';
|
||||||
COMPRESS: Byte = 0;
|
COMPRESS: Byte = 0;
|
||||||
EXTCOMP: String = '';
|
EXTCOMP: String = '';
|
||||||
GPUMEM: Int64 = 0;
|
GPUMEM: Int64 = 0;
|
||||||
|
@ -140,31 +144,30 @@ var
|
||||||
I, J: Integer;
|
I, J: Integer;
|
||||||
S: string;
|
S: string;
|
||||||
begin
|
begin
|
||||||
WriteLn(ErrOutput, 'precomp - data precompressor');
|
WriteLine('precomp - data precompressor');
|
||||||
WriteLn(ErrOutput, '');
|
WriteLine('');
|
||||||
WriteLn(ErrOutput, 'Usage:');
|
WriteLine('Usage:');
|
||||||
WriteLn(ErrOutput, ' xtool precomp [parameters] input output');
|
WriteLine(' xtool precomp [parameters] input output');
|
||||||
WriteLn(ErrOutput, '');
|
WriteLine('');
|
||||||
WriteLn(ErrOutput, '');
|
WriteLine('');
|
||||||
WriteLn(ErrOutput, 'Parameters:');
|
WriteLine('Parameters:');
|
||||||
WriteLn(ErrOutput,
|
WriteLine(
|
||||||
' -m# - codecs to use for precompression (separate with "+" if more than one)');
|
' -m# - codecs to use for precompression (separate with "+" if more than one)');
|
||||||
WriteLn(ErrOutput, ' -c# - scanning range of precompressor [16mb]');
|
WriteLine(' -c# - scanning range of precompressor [16mb]');
|
||||||
WriteLn(ErrOutput, ' -t# - number of working threads [50p]');
|
WriteLine(' -t# - number of working threads [50p]');
|
||||||
WriteLn(ErrOutput, ' -d# - scan depth [0]');
|
WriteLine(' -d# - scan depth [0]');
|
||||||
WriteLn(ErrOutput, ' -dd - use stream deduplication');
|
WriteLine(' -dd - use stream deduplication');
|
||||||
WriteLn(ErrOutput,
|
WriteLine(
|
||||||
' -l# - compress data using fast lzma2 (separate params with ":")');
|
' -l# - compress data using fast lzma2 (separate params with ":")');
|
||||||
WriteLn(ErrOutput, ' d# - dictionary size');
|
WriteLine(' d# - dictionary size');
|
||||||
WriteLn(ErrOutput, ' -lm - low memory mode');
|
WriteLine(' -lm - low memory mode');
|
||||||
WriteLn(ErrOutput, ' -s - skip stream verification');
|
WriteLine(' -s - skip stream verification');
|
||||||
WriteLn(ErrOutput, ' -v - enables verbose');
|
WriteLine(' -v - enables verbose');
|
||||||
WriteLn(ErrOutput, ' -df# - set xdelta threshold to accept streams [5p]');
|
WriteLine(' -df# - set xdelta threshold to accept streams [5p]');
|
||||||
WriteLn(ErrOutput, ' -x# - extract streams to directory path');
|
WriteLine(' -x# - extract streams to directory path');
|
||||||
WriteLn(ErrOutput,
|
WriteLine(' -dm# - deduplication memory usage limit (#=size) [75p]');
|
||||||
' -dm# - deduplication memory usage limit (#=size) [75p]');
|
WriteLine(' -sm# - srep memory usage limit (#=size) [75p]');
|
||||||
WriteLn(ErrOutput, ' -sm# - srep memory usage limit (#=size) [75p]');
|
WriteLine('');
|
||||||
WriteLn(ErrOutput, '');
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure Parse(ParamArg: TArray<string>; out Options: TEncodeOptions);
|
procedure Parse(ParamArg: TArray<string>; out Options: TEncodeOptions);
|
||||||
|
@ -211,6 +214,8 @@ begin
|
||||||
S := ReplaceText(S, 'K', '* 1024^1');
|
S := ReplaceText(S, 'K', '* 1024^1');
|
||||||
S := ReplaceText(S, 'M', '* 1024^2');
|
S := ReplaceText(S, 'M', '* 1024^2');
|
||||||
S := ReplaceText(S, 'G', '* 1024^3');
|
S := ReplaceText(S, 'G', '* 1024^3');
|
||||||
|
if GPUMEM > MEM_LIMIT then
|
||||||
|
GPUMEM := MEM_LIMIT;
|
||||||
Options.ChunkSize := EnsureRange(Round(ExpParse.Evaluate(S)),
|
Options.ChunkSize := EnsureRange(Round(ExpParse.Evaluate(S)),
|
||||||
4 * 1024 * 1024, 2047 * 1024 * 1024);
|
4 * 1024 * 1024, 2047 * 1024 * 1024);
|
||||||
S := ArgParse.AsString('-t', 0, '50p');
|
S := ArgParse.AsString('-t', 0, '50p');
|
||||||
|
@ -304,6 +309,8 @@ begin
|
||||||
EXTCOMP := ArgParse.AsString('-e');
|
EXTCOMP := ArgParse.AsString('-e');
|
||||||
if FileExists(ExpandPath(PluginsPath + ExtractExec(EXTCOMP), True)) then
|
if FileExists(ExpandPath(PluginsPath + ExtractExec(EXTCOMP), True)) then
|
||||||
COMPRESS := 2;
|
COMPRESS := 2;
|
||||||
|
REPROCESS := ReplaceStr(ArgParse.AsString('-r'), SPrecompSep3,
|
||||||
|
SPrecompSep2);
|
||||||
finally
|
finally
|
||||||
ArgParse.Free;
|
ArgParse.Free;
|
||||||
ExpParse.Free;
|
ExpParse.Free;
|
||||||
|
@ -528,11 +535,11 @@ begin
|
||||||
S := '(%d >> %d)';
|
S := '(%d >> %d)';
|
||||||
if (OutSize > 0) and (Position < DataStore.Size(0)) and
|
if (OutSize > 0) and (Position < DataStore.Size(0)) and
|
||||||
(MemOutput1[0].Position - CurPos1[0] = OutSize) then
|
(MemOutput1[0].Position - CurPos1[0] = OutSize) then
|
||||||
WriteLn(ErrOutput, Format('[%d] Actual %s stream found at %s ' + S,
|
WriteLine(Format('[%d] Actual %s stream found at %s ' + S,
|
||||||
[CurDepth[0], Codec, (DataStore.Position(0) + Position).ToHexString,
|
[CurDepth[0], Codec, (DataStore.Position(0) + Position).ToHexString,
|
||||||
InSize, OutSize]))
|
InSize, OutSize]))
|
||||||
else
|
else
|
||||||
WriteLn(ErrOutput, Format('[%d] Possible %s stream located at %s ' + S,
|
WriteLine(Format('[%d] Possible %s stream located at %s ' + S,
|
||||||
[CurDepth[0], Codec, (DataStore.Position(0) + Position).ToHexString,
|
[CurDepth[0], Codec, (DataStore.Position(0) + Position).ToHexString,
|
||||||
InSize, OutSize]));
|
InSize, OutSize]));
|
||||||
end;
|
end;
|
||||||
|
@ -548,8 +555,8 @@ begin
|
||||||
S := '(%d)'
|
S := '(%d)'
|
||||||
else
|
else
|
||||||
S := '(%d >> %d)';
|
S := '(%d >> %d)';
|
||||||
WriteLn(ErrOutput, Format('[%d] Confirmed %s stream at %s ' + S,
|
WriteLine(Format('[%d] Confirmed %s stream at %s ' + S, [CurDepth[0], Codec,
|
||||||
[CurDepth[0], Codec, LogInt64.ToHexString, InSize, OutSize]));
|
LogInt64.ToHexString, InSize, OutSize]));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure PrecompLogProcess(Codec, Method: PChar; Size1, Size2, Size3: Integer;
|
procedure PrecompLogProcess(Codec, Method: PChar; Size1, Size2, Size3: Integer;
|
||||||
|
@ -573,8 +580,8 @@ begin
|
||||||
S2 := '[%d] Processing %s stream at %s ' + S1 +
|
S2 := '[%d] Processing %s stream at %s ' + S1 +
|
||||||
IfThen(String(Method) <> '', ' using ' + String(Method), '') +
|
IfThen(String(Method) <> '', ' using ' + String(Method), '') +
|
||||||
' has failed';
|
' has failed';
|
||||||
WriteLn(ErrOutput, Format(S2, [CurDepth[0], Codec, LogInt64.ToHexString,
|
WriteLine(Format(S2, [CurDepth[0], Codec, LogInt64.ToHexString, Size1,
|
||||||
Size1, Size2, Size3]));
|
Size2, Size3]));
|
||||||
end;
|
end;
|
||||||
if EXTRACT and (CurDepth[0] = 0) then
|
if EXTRACT and (CurDepth[0] = 0) then
|
||||||
begin
|
begin
|
||||||
|
@ -608,8 +615,8 @@ begin
|
||||||
else
|
else
|
||||||
S2 := '[%d] Restoring %s stream at %s ' + S1 + IfThen(String(Method) <> '',
|
S2 := '[%d] Restoring %s stream at %s ' + S1 + IfThen(String(Method) <> '',
|
||||||
' using ' + String(Method), '') + ' has failed';
|
' using ' + String(Method), '') + ' has failed';
|
||||||
WriteLn(ErrOutput, Format(S2, [CurDepth[0], Codec, LogInt64.ToHexString,
|
WriteLine(Format(S2, [CurDepth[0], Codec, LogInt64.ToHexString, Size1,
|
||||||
Size1, Size2, Size3]));
|
Size2, Size3]));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure PrecompLogPatch1(OldSize, NewSize, PatchSize: Integer;
|
procedure PrecompLogPatch1(OldSize, NewSize, PatchSize: Integer;
|
||||||
|
@ -623,8 +630,8 @@ begin
|
||||||
S := '[%d] - Patched stream at %s (%d >> %d) [%d] successfully'
|
S := '[%d] - Patched stream at %s (%d >> %d) [%d] successfully'
|
||||||
else
|
else
|
||||||
S := '[%d] - Patching stream at %s (%d >> %d) [%d] has failed';
|
S := '[%d] - Patching stream at %s (%d >> %d) [%d] has failed';
|
||||||
WriteLn(ErrOutput, Format(S, [CurDepth[0], LogInt64.ToHexString, OldSize,
|
WriteLine(Format(S, [CurDepth[0], LogInt64.ToHexString, OldSize, NewSize,
|
||||||
NewSize, PatchSize]));
|
PatchSize]));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure PrecompLogPatch2(OldSize, NewSize, PatchSize: Integer;
|
procedure PrecompLogPatch2(OldSize, NewSize, PatchSize: Integer;
|
||||||
|
@ -638,8 +645,44 @@ begin
|
||||||
S := '[%d] - Patched stream at %s (%d >> %d) [%d] successfully'
|
S := '[%d] - Patched stream at %s (%d >> %d) [%d] successfully'
|
||||||
else
|
else
|
||||||
S := '[%d] - Patching stream at %s (%d >> %d) [%d] has failed';
|
S := '[%d] - Patching stream at %s (%d >> %d) [%d] has failed';
|
||||||
WriteLn(ErrOutput, Format(S, [CurDepth[0], LogInt64.ToHexString, OldSize,
|
WriteLine(Format(S, [CurDepth[0], LogInt64.ToHexString, OldSize, NewSize,
|
||||||
NewSize, PatchSize]));
|
PatchSize]));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure PrecompLogReprocess(Method: PChar; Size1, Size2, Size3: Integer;
|
||||||
|
Status: Boolean);
|
||||||
|
var
|
||||||
|
S1, S2: String;
|
||||||
|
begin
|
||||||
|
if VERBOSE then
|
||||||
|
begin
|
||||||
|
if Size2 < 0 then
|
||||||
|
S1 := '(%d)'
|
||||||
|
else if Size3 < 0 then
|
||||||
|
S1 := '(%d >> %d)'
|
||||||
|
else
|
||||||
|
S1 := '(%d >> %d >> %d)';
|
||||||
|
if Status then
|
||||||
|
S2 := '[%d] Reprocessed stream at %s ' + S1 + IfThen(String(Method) <> '',
|
||||||
|
' using ' + String(Method), '') + ' successfully'
|
||||||
|
else
|
||||||
|
S2 := '[%d] Reprocessing stream at %s ' + S1 +
|
||||||
|
IfThen(String(Method) <> '', ' using ' + String(Method), '') +
|
||||||
|
' has failed';
|
||||||
|
WriteLine(Format(S2, [CurDepth[0], LogInt64.ToHexString, Size1,
|
||||||
|
Size2, Size3]));
|
||||||
|
end;
|
||||||
|
if EXTRACT and (CurDepth[0] = 0) then
|
||||||
|
begin
|
||||||
|
S1 := '%s_%s.raw';
|
||||||
|
with TFileStream.Create(ExtDir + Format(S1, [LogInt64.ToHexString]),
|
||||||
|
fmCreate) do
|
||||||
|
try
|
||||||
|
WriteBuffer(LogPtr^, Size1);
|
||||||
|
finally
|
||||||
|
Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure PrecompOutput1(Instance: Integer; const Buffer: Pointer;
|
procedure PrecompOutput1(Instance: Integer; const Buffer: Pointer;
|
||||||
|
@ -1087,6 +1130,36 @@ var
|
||||||
LValid: Boolean;
|
LValid: Boolean;
|
||||||
LCodec: Byte;
|
LCodec: Byte;
|
||||||
LOption: Integer;
|
LOption: Integer;
|
||||||
|
|
||||||
|
function Reproc(Method: String): Boolean;
|
||||||
|
var
|
||||||
|
Buffer: Pointer;
|
||||||
|
Res: Integer;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
with ComVars1[Depth] do
|
||||||
|
begin
|
||||||
|
Buffer := PrecompAllocator(ThreadIndex, SI1.NewSize);
|
||||||
|
Res := PrecompCompress(PChar(Method),
|
||||||
|
PByte(MemOutput1[ThreadIndex].Memory) + SI2.StorePosition, SI1.NewSize,
|
||||||
|
Buffer, SI1.NewSize, nil, 0);
|
||||||
|
if (Res > 0) and (Res < SI1.OldSize) then
|
||||||
|
begin
|
||||||
|
ThreadSync[ThreadIndex].Acquire;
|
||||||
|
try
|
||||||
|
Move(Buffer^, (PByte(DataStore.Slot(ThreadIndex).Memory) +
|
||||||
|
SI2.ActualPosition)^, Res);
|
||||||
|
FillChar((PByte(DataStore.Slot(ThreadIndex).Memory) +
|
||||||
|
SI2.ActualPosition + Res)^, SI1.OldSize - Res, 0);
|
||||||
|
Result := True;
|
||||||
|
finally
|
||||||
|
ThreadSync[ThreadIndex].Release;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
PrecompLogReprocess(PChar(Method), SI1.OldSize, SI1.NewSize, Res, Result);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
with ComVars1[Depth] do
|
with ComVars1[Depth] do
|
||||||
|
@ -1119,6 +1192,12 @@ begin
|
||||||
try
|
try
|
||||||
if NOVERIFY and not(SI2.Codec in [5]) then
|
if NOVERIFY and not(SI2.Codec in [5]) then
|
||||||
Result := True
|
Result := True
|
||||||
|
else if (REPROCESS <> '') and not(SI2.Codec in [5]) then
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
if Reproc(REPROCESS) then
|
||||||
|
AtomicIncrement(EncInfo.Processed);
|
||||||
|
end
|
||||||
else
|
else
|
||||||
Result := Codecs[SI2.Codec].Process(Index, Depth,
|
Result := Codecs[SI2.Codec].Process(Index, Depth,
|
||||||
PByte(DataStore.Slot(ThreadIndex).Memory) + SI2.ActualPosition,
|
PByte(DataStore.Slot(ThreadIndex).Memory) + SI2.ActualPosition,
|
||||||
|
@ -1296,14 +1375,13 @@ begin
|
||||||
if InRange(Y, Low(InfoStore1), High(InfoStore1)) then
|
if InRange(Y, Low(InfoStore1), High(InfoStore1)) then
|
||||||
begin
|
begin
|
||||||
if VERBOSE then
|
if VERBOSE then
|
||||||
WriteLn(ErrOutput,
|
WriteLine(Format('[%d] Performing scan from block %s to %s (%d)',
|
||||||
Format('[%d] Performing scan from block %s to %s (%d)',
|
|
||||||
[W, DataStore.Position(0).ToHexString,
|
[W, DataStore.Position(0).ToHexString,
|
||||||
(DataStore.Position(0) + Pred(DataStore.Size(0))).ToHexString,
|
(DataStore.Position(0) + Pred(DataStore.Size(0))).ToHexString,
|
||||||
DataStore.Size(0)]));
|
DataStore.Size(0)]));
|
||||||
Scan1(Y, W);
|
Scan1(Y, W);
|
||||||
if VERBOSE then
|
if VERBOSE then
|
||||||
WriteLn(ErrOutput, '');
|
WriteLine('');
|
||||||
if W = 0 then
|
if W = 0 then
|
||||||
begin
|
begin
|
||||||
Scanned1[Y] := True;
|
Scanned1[Y] := True;
|
||||||
|
@ -1334,8 +1412,7 @@ begin
|
||||||
else
|
else
|
||||||
Z := Y;
|
Z := Y;
|
||||||
if VERBOSE and (InfoStore1[Z].Count > 0) then
|
if VERBOSE and (InfoStore1[Z].Count > 0) then
|
||||||
WriteLn(ErrOutput,
|
WriteLine(Format('[%d] Processing streams on block %s to %s (%d)',
|
||||||
Format('[%d] Processing streams on block %s to %s (%d)',
|
|
||||||
[W, DataStore.Position(0).ToHexString,
|
[W, DataStore.Position(0).ToHexString,
|
||||||
(DataStore.Position(0) + Pred(DataStore.Size(0))).ToHexString,
|
(DataStore.Position(0) + Pred(DataStore.Size(0))).ToHexString,
|
||||||
DataStore.Size(0)]));
|
DataStore.Size(0)]));
|
||||||
|
@ -1362,7 +1439,7 @@ begin
|
||||||
while not BoolArray(Helping, False) do
|
while not BoolArray(Helping, False) do
|
||||||
Sleep(10);
|
Sleep(10);
|
||||||
if VERBOSE and (InfoStore1[Z].Count > 0) then
|
if VERBOSE and (InfoStore1[Z].Count > 0) then
|
||||||
WriteLn(ErrOutput, '');
|
WriteLine('');
|
||||||
if W = 0 then
|
if W = 0 then
|
||||||
begin
|
begin
|
||||||
if Z < -1 then
|
if Z < -1 then
|
||||||
|
@ -1392,7 +1469,8 @@ begin
|
||||||
for I := Low(ThreadSync) to High(ThreadSync) do
|
for I := Low(ThreadSync) to High(ThreadSync) do
|
||||||
ThreadSync[I] := TCriticalSection.Create;
|
ThreadSync[I] := TCriticalSection.Create;
|
||||||
I := XTOOL_PRECOMP;
|
I := XTOOL_PRECOMP;
|
||||||
Output.WriteBuffer(I, I.Size);
|
if REPROCESS = '' then
|
||||||
|
Output.WriteBuffer(I, I.Size);
|
||||||
if UseDB then
|
if UseDB then
|
||||||
begin
|
begin
|
||||||
SetLength(DBInfo, $10000);
|
SetLength(DBInfo, $10000);
|
||||||
|
@ -1505,7 +1583,8 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
ExtDir := IncludeTrailingBackSlash(Options^.ExtractDir);
|
ExtDir := IncludeTrailingBackSlash(Options^.ExtractDir);
|
||||||
Output.WriteBuffer(Options^.Depth, Options^.Depth.Size);
|
if REPROCESS = '' then
|
||||||
|
Output.WriteBuffer(Options^.Depth, Options^.Depth.Size);
|
||||||
DoScan2 := True;
|
DoScan2 := True;
|
||||||
for J := 0 to ExternalMethods.Count - 1 do
|
for J := 0 to ExternalMethods.Count - 1 do
|
||||||
begin
|
begin
|
||||||
|
@ -1558,23 +1637,26 @@ begin
|
||||||
else
|
else
|
||||||
S := S + SPrecompSep1 + ExternalMethods[J];
|
S := S + SPrecompSep1 + ExternalMethods[J];
|
||||||
end;
|
end;
|
||||||
Bytes := BytesOf(S);
|
if REPROCESS = '' then
|
||||||
B := Length(Bytes);
|
|
||||||
Output.WriteBuffer(B, B.Size);
|
|
||||||
Output.WriteBuffer(Bytes[0], B);
|
|
||||||
I := Length(Resources);
|
|
||||||
Output.WriteBuffer(I, I.Size);
|
|
||||||
for J := Low(Resources) to High(Resources) do
|
|
||||||
begin
|
begin
|
||||||
Bytes := BytesOf(Resources[J].Name);
|
Bytes := BytesOf(S);
|
||||||
B := Length(Bytes);
|
B := Length(Bytes);
|
||||||
Output.WriteBuffer(B, B.Size);
|
Output.WriteBuffer(B, B.Size);
|
||||||
Output.WriteBuffer(Bytes[0], B);
|
Output.WriteBuffer(Bytes[0], B);
|
||||||
Output.WriteBuffer(Resources[J].Size, Resources[J].Size.Size);
|
I := Length(Resources);
|
||||||
Output.WriteBuffer(Resources[J].Data^, Resources[J].Size);
|
Output.WriteBuffer(I, I.Size);
|
||||||
|
for J := Low(Resources) to High(Resources) do
|
||||||
|
begin
|
||||||
|
Bytes := BytesOf(Resources[J].Name);
|
||||||
|
B := Length(Bytes);
|
||||||
|
Output.WriteBuffer(B, B.Size);
|
||||||
|
Output.WriteBuffer(Bytes[0], B);
|
||||||
|
Output.WriteBuffer(Resources[J].Size, Resources[J].Size.Size);
|
||||||
|
Output.WriteBuffer(Resources[J].Data^, Resources[J].Size);
|
||||||
|
end;
|
||||||
|
ResCount := Length(Resources);
|
||||||
|
Output.WriteBuffer(StoreDD, StoreDD.Size);
|
||||||
end;
|
end;
|
||||||
ResCount := Length(Resources);
|
|
||||||
Output.WriteBuffer(StoreDD, StoreDD.Size);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure EncFree;
|
procedure EncFree;
|
||||||
|
@ -1721,8 +1803,7 @@ begin
|
||||||
'-dd.tmp')), fmCreate or fmShareDenyNone), False, XTOOL_BSIZE)
|
'-dd.tmp')), fmCreate or fmShareDenyNone), False, XTOOL_BSIZE)
|
||||||
else
|
else
|
||||||
LOutput := Output;
|
LOutput := Output;
|
||||||
TempOutput := TBufferedStream.Create(TCacheWriteStream.Create(LOutput,
|
TempOutput := TCacheWriteStream.Create(LOutput, LCache, True, ccZSTD);
|
||||||
LCache), False, XTOOL_BSIZE);
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
TempOutput := Output;
|
TempOutput := Output;
|
||||||
|
@ -1882,8 +1963,11 @@ begin
|
||||||
MemStream[I].Position := 0;
|
MemStream[I].Position := 0;
|
||||||
MemStream[I].WriteBuffer(StreamCount, StreamCount.Size);
|
MemStream[I].WriteBuffer(StreamCount, StreamCount.Size);
|
||||||
MemStream[I].WriteBuffer(BlockSize, BlockSize.Size);
|
MemStream[I].WriteBuffer(BlockSize, BlockSize.Size);
|
||||||
SaveResources;
|
if REPROCESS = '' then
|
||||||
TempOutput.WriteBuffer(MemStream[I].Memory^, I64);
|
begin
|
||||||
|
SaveResources;
|
||||||
|
TempOutput.WriteBuffer(MemStream[I].Memory^, I64);
|
||||||
|
end;
|
||||||
if Depth = 0 then
|
if Depth = 0 then
|
||||||
Inc(EncInfo.InflSize, I64);
|
Inc(EncInfo.InflSize, I64);
|
||||||
InfoStore1[I].Index := LastIndex;
|
InfoStore1[I].Index := LastIndex;
|
||||||
|
@ -1950,7 +2034,8 @@ begin
|
||||||
UI32 := Max(DataStore.Size(I) - LastPos, 0)
|
UI32 := Max(DataStore.Size(I) - LastPos, 0)
|
||||||
else
|
else
|
||||||
UI32 := 0;
|
UI32 := 0;
|
||||||
TempOutput.WriteBuffer(UI32, UI32.Size);
|
if REPROCESS = '' then
|
||||||
|
TempOutput.WriteBuffer(UI32, UI32.Size);
|
||||||
if UI32 > 0 then
|
if UI32 > 0 then
|
||||||
TempOutput.WriteBuffer
|
TempOutput.WriteBuffer
|
||||||
((PByte(DataStore.Slot(I).Memory) + LastPos)^, UI32);
|
((PByte(DataStore.Slot(I).Memory) + LastPos)^, UI32);
|
||||||
|
@ -1958,6 +2043,9 @@ begin
|
||||||
Inc(EncInfo.InflSize, UI32 + UI32.Size);
|
Inc(EncInfo.InflSize, UI32 + UI32.Size);
|
||||||
until LastIndex = InfoStore1[I].Count;
|
until LastIndex = InfoStore1[I].Count;
|
||||||
LastStream := Max(LastStream - DataStore.Size(I), 0);
|
LastStream := Max(LastStream - DataStore.Size(I), 0);
|
||||||
|
if Depth = 0 then
|
||||||
|
EncInfo.CachedUsed := TCacheWriteStream(TempOutput)
|
||||||
|
.Cached(@EncInfo.CachedComp);
|
||||||
if Depth = 0 then
|
if Depth = 0 then
|
||||||
if I > 0 then
|
if I > 0 then
|
||||||
TDataStore1(DataStore).LoadEx;
|
TDataStore1(DataStore).LoadEx;
|
||||||
|
@ -1972,11 +2060,18 @@ begin
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
end;
|
end;
|
||||||
SaveResources;
|
if REPROCESS = '' then
|
||||||
StreamCount := StreamCount.MinValue;
|
begin
|
||||||
TempOutput.WriteBuffer(StreamCount, StreamCount.Size);
|
SaveResources;
|
||||||
|
StreamCount := StreamCount.MinValue;
|
||||||
|
TempOutput.WriteBuffer(StreamCount, StreamCount.Size);
|
||||||
|
end;
|
||||||
if Depth = 0 then
|
if Depth = 0 then
|
||||||
|
begin
|
||||||
Inc(EncInfo.InflSize, StreamCount.Size);
|
Inc(EncInfo.InflSize, StreamCount.Size);
|
||||||
|
EncInfo.CachedUsed := TCacheWriteStream(TempOutput)
|
||||||
|
.Cached(@EncInfo.CachedComp);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
if Depth = 0 then
|
if Depth = 0 then
|
||||||
begin
|
begin
|
||||||
|
@ -2148,6 +2243,8 @@ begin
|
||||||
Result := Max(0, Abs(DupSysMem) - GetUsedProcessMemory(GetCurrentProcess))
|
Result := Max(0, Abs(DupSysMem) - GetUsedProcessMemory(GetCurrentProcess))
|
||||||
else
|
else
|
||||||
Result := Max(0, DupSysMem - GetUsedSystemMemory);
|
Result := Max(0, DupSysMem - GetUsedSystemMemory);
|
||||||
|
if Result > MEM_LIMIT then
|
||||||
|
Result := MEM_LIMIT;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
@ -2531,12 +2628,10 @@ begin
|
||||||
True), '-d -s -mem' + SrepMemCfg + ' - -', GetCurrentDir, Input, nil);
|
True), '-d -s -mem' + SrepMemCfg + ' - -', GetCurrentDir, Input, nil);
|
||||||
if not LStream.Execute then
|
if not LStream.Execute then
|
||||||
raise EReadError.CreateRes(@SReadError);
|
raise EReadError.CreateRes(@SReadError);
|
||||||
DecInput[Index] := TBufferedStream.Create(TCacheReadStream.Create(LStream,
|
DecInput[Index] := TCacheReadStream.Create(LStream, LCache, True, ccZSTD);
|
||||||
LCache), True, XTOOL_BSIZE);
|
|
||||||
end
|
end
|
||||||
else if Depth = 0 then
|
else if Depth = 0 then
|
||||||
DecInput[Index] := TBufferedStream.Create(TCacheReadStream.Create(Input,
|
DecInput[Index] := TCacheReadStream.Create(Input, LCache, True, ccZSTD)
|
||||||
LCache), True, XTOOL_BSIZE)
|
|
||||||
else
|
else
|
||||||
DecInput[Index] := Input;
|
DecInput[Index] := Input;
|
||||||
DecOutput[Index] := Output;
|
DecOutput[Index] := Output;
|
||||||
|
@ -2681,7 +2776,7 @@ var
|
||||||
|
|
||||||
procedure Update;
|
procedure Update;
|
||||||
var
|
var
|
||||||
I: Integer;
|
I, J: Integer;
|
||||||
TS: TTimeSpan;
|
TS: TTimeSpan;
|
||||||
CreationTime, ExitTime, KernelTime, UserTime: TFileTime;
|
CreationTime, ExitTime, KernelTime, UserTime: TFileTime;
|
||||||
TT: TSystemTime;
|
TT: TSystemTime;
|
||||||
|
@ -2690,10 +2785,19 @@ var
|
||||||
GetProcessTimes(GetCurrentProcess, CreationTime, ExitTime, KernelTime,
|
GetProcessTimes(GetCurrentProcess, CreationTime, ExitTime, KernelTime,
|
||||||
UserTime);
|
UserTime);
|
||||||
FileTimeToSystemTime(TFileTime(Int64(UserTime) + Int64(KernelTime)), TT);
|
FileTimeToSystemTime(TFileTime(Int64(UserTime) + Int64(KernelTime)), TT);
|
||||||
SL[0] := 'Streams: ' + EncInfo.Processed.ToString + ' / ' +
|
if GPUMEM > 0 then
|
||||||
|
begin
|
||||||
|
SL[0] := GPUName + ' (' + ConvertKB2TB(EncInfo.CachedUsed div 1024) + ') '
|
||||||
|
+ IfThen(EncInfo.CachedComp > 0,
|
||||||
|
'[' + ConvertKB2TB(EncInfo.CachedComp div 1024) + ']', '') + ' ';
|
||||||
|
I := 1;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
I := 0;
|
||||||
|
SL[I] := 'Streams: ' + EncInfo.Processed.ToString + ' / ' +
|
||||||
EncInfo.Count.ToString;
|
EncInfo.Count.ToString;
|
||||||
TS := Stopwatch.Elapsed;
|
TS := Stopwatch.Elapsed;
|
||||||
SL[1] := 'Time: ' + Format('%0:.2d:%1:.2d:%2:.2d',
|
SL[I + 1] := 'Time: ' + Format('%0:.2d:%1:.2d:%2:.2d',
|
||||||
[TS.Hours + TS.Days * 24, TS.Minutes, TS.Seconds]) + ' (CPU ' +
|
[TS.Hours + TS.Days * 24, TS.Minutes, TS.Seconds]) + ' (CPU ' +
|
||||||
Format('%0:.2d:%1:.2d:%2:.2d', [TT.wHour + Pred(TT.wDay) * 24, TT.wMinute,
|
Format('%0:.2d:%1:.2d:%2:.2d', [TT.wHour + Pred(TT.wDay) * 24, TT.wMinute,
|
||||||
TT.wSecond]) + ')';
|
TT.wSecond]) + ')';
|
||||||
|
@ -2701,23 +2805,23 @@ var
|
||||||
I64 := I64 div 1024;
|
I64 := I64 div 1024;
|
||||||
if StoreDD > -2 then
|
if StoreDD > -2 then
|
||||||
begin
|
begin
|
||||||
I := 4;
|
J := I + 4;
|
||||||
SL[2] := 'Duplicates: ' + EncInfo.DupCount.ToString + ' (' +
|
SL[I + 2] := 'Duplicates: ' + EncInfo.DupCount.ToString + ' (' +
|
||||||
ConvertKB2TB(EncInfo.DecMem2 div 1024) + ') [' +
|
ConvertKB2TB(EncInfo.DecMem2 div 1024) + ') [' +
|
||||||
ConvertKB2TB(EncInfo.DupSize1 div 1024) + ' >> ' +
|
ConvertKB2TB(EncInfo.DupSize1 div 1024) + ' >> ' +
|
||||||
ConvertKB2TB(EncInfo.DupSize2 div 1024) + '] ';
|
ConvertKB2TB(EncInfo.DupSize2 div 1024) + '] ';
|
||||||
if StoreDD > 0 then
|
if StoreDD > 0 then
|
||||||
begin
|
begin
|
||||||
I := 5;
|
J := I + 5;
|
||||||
SL[3] := 'Srep decompression memory: ' +
|
SL[I + 3] := 'Srep decompression memory: ' +
|
||||||
ConvertKB2TB(EncInfo.SrepMem * 1024) + ' [' +
|
ConvertKB2TB(EncInfo.SrepMem * 1024) + ' [' +
|
||||||
ConvertKB2TB((EncInfo.SrepMem * 1024) + (EncInfo.DecMem3 div 1024)) +
|
ConvertKB2TB((EncInfo.SrepMem * 1024) + (EncInfo.DecMem3 div 1024)) +
|
||||||
IfThen(EncInfo.DecMem3 > 0, '*', '') + '] ';
|
IfThen(EncInfo.DecMem3 > 0, '*', '') + '] ';
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
I := 3;
|
J := I + 3;
|
||||||
SL[I] := 'Size: ' + ConvertKB2TB(EncInfo.InSize div 1024) +
|
SL[J] := 'Size: ' + ConvertKB2TB(EncInfo.InSize div 1024) +
|
||||||
IfThen(StoreDD > -2,
|
IfThen(StoreDD > -2,
|
||||||
' >> ' + ConvertKB2TB((EncInfo.InflSize + EncInfo.DupSize2) div 1024), '')
|
' >> ' + ConvertKB2TB((EncInfo.InflSize + EncInfo.DupSize2) div 1024), '')
|
||||||
+ ' >> ' + ConvertKB2TB(EncInfo.InflSize div 1024) +
|
+ ' >> ' + ConvertKB2TB(EncInfo.InflSize div 1024) +
|
||||||
|
@ -2734,6 +2838,8 @@ begin
|
||||||
Coords.X := 0;
|
Coords.X := 0;
|
||||||
Coords.Y := SBInfo.dwCursorPosition.Y;
|
Coords.Y := SBInfo.dwCursorPosition.Y;
|
||||||
SL := TStringList.Create;
|
SL := TStringList.Create;
|
||||||
|
if GPUMEM > 0 then
|
||||||
|
SL.Add('Streams: 0 / 0');
|
||||||
SL.Add('Streams: 0 / 0');
|
SL.Add('Streams: 0 / 0');
|
||||||
SL.Add('Time: 00:00:00');
|
SL.Add('Time: 00:00:00');
|
||||||
if StoreDD > -2 then
|
if StoreDD > -2 then
|
||||||
|
@ -2817,9 +2923,6 @@ begin
|
||||||
NULLOUT := TBufferedStream(Output).Instance is TNullStream;
|
NULLOUT := TBufferedStream(Output).Instance is TNullStream;
|
||||||
FillChar(EncInfo, SizeOf(EncInfo), 0);
|
FillChar(EncInfo, SizeOf(EncInfo), 0);
|
||||||
ConTask := TTask.Create;
|
ConTask := TTask.Create;
|
||||||
if GPUMEM > 0 then
|
|
||||||
WriteLn(ErrOutput, GPUName + ' (' + ConvertKB2TB(GPUMEM div 1024) +
|
|
||||||
' loaded)');
|
|
||||||
Stopwatch := TStopwatch.Create;
|
Stopwatch := TStopwatch.Create;
|
||||||
Stopwatch.Start;
|
Stopwatch.Start;
|
||||||
ConTask.Perform(EncodeStats);
|
ConTask.Perform(EncodeStats);
|
||||||
|
@ -2828,7 +2931,8 @@ begin
|
||||||
try
|
try
|
||||||
EncInit(LInput, Output, @Options);
|
EncInit(LInput, Output, @Options);
|
||||||
Compressed := COMPRESS;
|
Compressed := COMPRESS;
|
||||||
Output.WriteBuffer(Compressed, Compressed.Size);
|
if REPROCESS = '' then
|
||||||
|
Output.WriteBuffer(Compressed, Compressed.Size);
|
||||||
if COMPRESS > 0 then
|
if COMPRESS > 0 then
|
||||||
begin
|
begin
|
||||||
case COMPRESS of
|
case COMPRESS of
|
||||||
|
@ -2901,8 +3005,7 @@ begin
|
||||||
FillChar(EncInfo, SizeOf(EncInfo), 0);
|
FillChar(EncInfo, SizeOf(EncInfo), 0);
|
||||||
ConTask := TTask.Create;
|
ConTask := TTask.Create;
|
||||||
if GPUMEM > 0 then
|
if GPUMEM > 0 then
|
||||||
WriteLn(ErrOutput, GPUName + ' (' + ConvertKB2TB(GPUMEM div 1024) +
|
WriteLine(GPUName + ' (' + ConvertKB2TB(GPUMEM div 1024) + ')');
|
||||||
' loaded)');
|
|
||||||
Stopwatch := TStopwatch.Create;
|
Stopwatch := TStopwatch.Create;
|
||||||
Stopwatch.Start;
|
Stopwatch.Start;
|
||||||
ConTask.Perform(DecodeStats);
|
ConTask.Perform(DecodeStats);
|
||||||
|
|
|
@ -201,9 +201,9 @@ type
|
||||||
end;
|
end;
|
||||||
|
|
||||||
_PrecompOutput = procedure(Instance: Integer; const Buffer: Pointer;
|
_PrecompOutput = procedure(Instance: Integer; const Buffer: Pointer;
|
||||||
Size: Integer);
|
Size: Integer)cdecl;
|
||||||
_PrecompAdd = procedure(Instance: Integer; Info: PStrInfo1; Codec: PChar;
|
_PrecompAdd = procedure(Instance: Integer; Info: PStrInfo1; Codec: PChar;
|
||||||
DepthInfo: PDepthInfo);
|
DepthInfo: PDepthInfo)cdecl;
|
||||||
|
|
||||||
_PrecompInit = function(Command: PChar; Count: Integer;
|
_PrecompInit = function(Command: PChar; Count: Integer;
|
||||||
Funcs: PPrecompFuncs): Boolean;
|
Funcs: PPrecompFuncs): Boolean;
|
||||||
|
@ -476,7 +476,7 @@ begin
|
||||||
FSuffix1));
|
FSuffix1));
|
||||||
if FileExists(FFilename) then
|
if FileExists(FFilename) then
|
||||||
DeleteFile(FFilename);
|
DeleteFile(FFilename);
|
||||||
{$IFDEF WIN32}
|
{$IFDEF CPU32BITS}
|
||||||
FStream := TFileStream.Create(FFilename, fmCreate);
|
FStream := TFileStream.Create(FFilename, fmCreate);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
FStream := TSharedMemoryStream.Create
|
FStream := TSharedMemoryStream.Create
|
||||||
|
|
32
xtool.dpr
32
xtool.dpr
|
@ -46,6 +46,8 @@ uses
|
||||||
OpenCL in 'common\OpenCL.pas',
|
OpenCL in 'common\OpenCL.pas',
|
||||||
Threading in 'common\Threading.pas',
|
Threading in 'common\Threading.pas',
|
||||||
Utils in 'common\Utils.pas',
|
Utils in 'common\Utils.pas',
|
||||||
|
libc in 'contrib\LIBC\libc.pas',
|
||||||
|
lz4lib in 'contrib\LZ4Delphi\lz4lib.pas',
|
||||||
FuncHook in 'contrib\Delphi_MemoryModule\FuncHook.pas',
|
FuncHook in 'contrib\Delphi_MemoryModule\FuncHook.pas',
|
||||||
MemoryModule in 'contrib\Delphi_MemoryModule\MemoryModule.pas',
|
MemoryModule in 'contrib\Delphi_MemoryModule\MemoryModule.pas',
|
||||||
MemoryModuleHook in 'contrib\Delphi_MemoryModule\MemoryModuleHook.pas',
|
MemoryModuleHook in 'contrib\Delphi_MemoryModule\MemoryModuleHook.pas',
|
||||||
|
@ -57,6 +59,7 @@ uses
|
||||||
ParseClass in 'contrib\ParseExpression\ParseClass.pas',
|
ParseClass in 'contrib\ParseExpression\ParseClass.pas',
|
||||||
ParseExpr in 'contrib\ParseExpression\ParseExpr.pas',
|
ParseExpr in 'contrib\ParseExpression\ParseExpr.pas',
|
||||||
XXHASHLIB in 'contrib\XXHASH4Delphi\XXHASHLIB.pas',
|
XXHASHLIB in 'contrib\XXHASH4Delphi\XXHASHLIB.pas',
|
||||||
|
ZSTDLib in 'contrib\ZSTD4Delphi\ZSTDLib.pas',
|
||||||
InitCode in 'InitCode.pas',
|
InitCode in 'InitCode.pas',
|
||||||
BrunsliDLL in 'imports\BrunsliDLL.pas',
|
BrunsliDLL in 'imports\BrunsliDLL.pas',
|
||||||
FLACDLL in 'imports\FLACDLL.pas',
|
FLACDLL in 'imports\FLACDLL.pas',
|
||||||
|
@ -262,18 +265,33 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
I64: Int64;
|
||||||
MS: TMemoryStream;
|
MS, MS2: TMemoryStream;
|
||||||
GS: TGPUMemoryStream;
|
GS: TGPUMemoryStream;
|
||||||
FS: TFileStream;
|
FS: TFileStream;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
{ MS := TMemoryStream.Create;
|
{ MS := TMemoryStream.Create;
|
||||||
MS.LoadFromFile('1.mp4');
|
MS.LoadFromFile('UI.sb');
|
||||||
FS := TFileStream.Create('2.mp4', fmCreate);
|
MS2 := TMemoryStream.Create;
|
||||||
GS := TGPUMemoryStream.Create(60 * 1024 * 1024);
|
MS2.Size := MS.Size;
|
||||||
GS.Size := 60 * 1024 * 1024;
|
GS := TGPUMemoryStream.Create(3 * 1024 * 1024);
|
||||||
with TCacheWriteStream.Create(FS, GS) do
|
GS.Size := 3 * 1024 * 1024;
|
||||||
|
with TCacheReadStream.Create(MS, GS, True, ccLZ4) do
|
||||||
|
begin
|
||||||
|
ReadBuffer(MS2.Memory^, MS2.Size);
|
||||||
|
Free;
|
||||||
|
end;
|
||||||
|
FS.Free;
|
||||||
|
MS2.SaveToFile('UI2.sb');
|
||||||
|
ShowMessage('');
|
||||||
|
exit;
|
||||||
|
MS := TMemoryStream.Create;
|
||||||
|
MS.LoadFromFile('UI.sb');
|
||||||
|
FS := TFileStream.Create('UI.sb2', fmCreate);
|
||||||
|
GS := TGPUMemoryStream.Create(5 * 1024 * 1024);
|
||||||
|
GS.Size := 5 * 1024 * 1024;
|
||||||
|
with TCacheWriteStream.Create(FS, GS, True, ccLZ4) do
|
||||||
begin
|
begin
|
||||||
WriteBuffer(MS.Memory^, MS.Size);
|
WriteBuffer(MS.Memory^, MS.Size);
|
||||||
Free;
|
Free;
|
||||||
|
|
429
xtool.dproj
429
xtool.dproj
|
@ -6,13 +6,18 @@
|
||||||
<MainSource>xtool.dpr</MainSource>
|
<MainSource>xtool.dpr</MainSource>
|
||||||
<Base>True</Base>
|
<Base>True</Base>
|
||||||
<Config Condition="'$(Config)'==''">Release</Config>
|
<Config Condition="'$(Config)'==''">Release</Config>
|
||||||
<Platform Condition="'$(Platform)'==''">Win64</Platform>
|
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||||
<TargetedPlatforms>3</TargetedPlatforms>
|
<TargetedPlatforms>3</TargetedPlatforms>
|
||||||
<AppType>Console</AppType>
|
<AppType>Console</AppType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||||
<Base>true</Base>
|
<Base>true</Base>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Linux64' and '$(Base)'=='true') or '$(Base_Linux64)'!=''">
|
||||||
|
<Base_Linux64>true</Base_Linux64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||||
<Base_Win32>true</Base_Win32>
|
<Base_Win32>true</Base_Win32>
|
||||||
<CfgParent>Base</CfgParent>
|
<CfgParent>Base</CfgParent>
|
||||||
|
@ -51,6 +56,9 @@
|
||||||
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
||||||
<SanitizedProjectName>xtool</SanitizedProjectName>
|
<SanitizedProjectName>xtool</SanitizedProjectName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Linux64)'!=''">
|
||||||
|
<DCC_UnitSearchPath>$(fmxlinux)\Lib\$(ProductVersion)\$(Config);$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||||
<DCC_UsePackage>DBXSqliteDriver;RESTComponents;DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;DataSnapFireDAC;svnui;tethering;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;FireDACIBDriver;fmx;fmxdae;vclib;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;DataSnapCommon;emsclient;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;CEF4Delphi_FMX;bindengine;DBXMySQLDriver;FireDACOracleDriver;CloudService;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;bindcompdbx;IndyIPCommon;vcl;DBXSybaseASEDriver;IndyIPServer;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;ibxbindings;rtl;emsserverresource;DbxClientDriver;FireDACDSDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;IndyProtocols;fmxase;$(DCC_UsePackage)</DCC_UsePackage>
|
<DCC_UsePackage>DBXSqliteDriver;RESTComponents;DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;DataSnapFireDAC;svnui;tethering;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;FireDACIBDriver;fmx;fmxdae;vclib;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;DataSnapCommon;emsclient;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;CEF4Delphi_FMX;bindengine;DBXMySQLDriver;FireDACOracleDriver;CloudService;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;bindcompdbx;IndyIPCommon;vcl;DBXSybaseASEDriver;IndyIPServer;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;ibxbindings;rtl;emsserverresource;DbxClientDriver;FireDACDSDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;IndyProtocols;fmxase;$(DCC_UsePackage)</DCC_UsePackage>
|
||||||
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
@ -84,6 +92,9 @@
|
||||||
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=0.0.0.0;InternalName=;LegalCopyright=Razor12911;LegalTrademarks=;OriginalFilename=xtool.exe;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.0.0.0;Comments=Created by Razor12911</VerInfo_Keys>
|
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=0.0.0.0;InternalName=;LegalCopyright=Razor12911;LegalTrademarks=;OriginalFilename=xtool.exe;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.0.0.0;Comments=Created by Razor12911</VerInfo_Keys>
|
||||||
<VerInfo_MajorVer>0</VerInfo_MajorVer>
|
<VerInfo_MajorVer>0</VerInfo_MajorVer>
|
||||||
|
<DCC_PEOSVersion>5.1</DCC_PEOSVersion>
|
||||||
|
<DCC_PESubSysVersion>5.1</DCC_PESubSysVersion>
|
||||||
|
<AppDPIAwarenessMode>none</AppDPIAwarenessMode>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
|
<PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
|
||||||
<DCC_DcuOutput>.\$(Platform)\DCUs</DCC_DcuOutput>
|
<DCC_DcuOutput>.\$(Platform)\DCUs</DCC_DcuOutput>
|
||||||
|
@ -93,6 +104,8 @@
|
||||||
<VerInfo_MajorVer>0</VerInfo_MajorVer>
|
<VerInfo_MajorVer>0</VerInfo_MajorVer>
|
||||||
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=0.0.0.0;InternalName=;LegalCopyright=Razor12911;LegalTrademarks=;OriginalFilename=xtool.exe;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.0.0.0;Comments=Created by Razor12911</VerInfo_Keys>
|
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=0.0.0.0;InternalName=;LegalCopyright=Razor12911;LegalTrademarks=;OriginalFilename=xtool.exe;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.0.0.0;Comments=Created by Razor12911</VerInfo_Keys>
|
||||||
<AppDPIAwarenessMode>none</AppDPIAwarenessMode>
|
<AppDPIAwarenessMode>none</AppDPIAwarenessMode>
|
||||||
|
<DCC_PEOSVersion>5.1</DCC_PEOSVersion>
|
||||||
|
<DCC_PESubSysVersion>5.1</DCC_PESubSysVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<DelphiCompile Include="$(MainSource)">
|
<DelphiCompile Include="$(MainSource)">
|
||||||
|
@ -104,6 +117,8 @@
|
||||||
<DCCReference Include="common\OpenCL.pas"/>
|
<DCCReference Include="common\OpenCL.pas"/>
|
||||||
<DCCReference Include="common\Threading.pas"/>
|
<DCCReference Include="common\Threading.pas"/>
|
||||||
<DCCReference Include="common\Utils.pas"/>
|
<DCCReference Include="common\Utils.pas"/>
|
||||||
|
<DCCReference Include="contrib\LIBC\libc.pas"/>
|
||||||
|
<DCCReference Include="contrib\LZ4Delphi\lz4lib.pas"/>
|
||||||
<DCCReference Include="contrib\Delphi_MemoryModule\FuncHook.pas"/>
|
<DCCReference Include="contrib\Delphi_MemoryModule\FuncHook.pas"/>
|
||||||
<DCCReference Include="contrib\Delphi_MemoryModule\MemoryModule.pas"/>
|
<DCCReference Include="contrib\Delphi_MemoryModule\MemoryModule.pas"/>
|
||||||
<DCCReference Include="contrib\Delphi_MemoryModule\MemoryModuleHook.pas"/>
|
<DCCReference Include="contrib\Delphi_MemoryModule\MemoryModuleHook.pas"/>
|
||||||
|
@ -115,6 +130,7 @@
|
||||||
<DCCReference Include="contrib\ParseExpression\ParseClass.pas"/>
|
<DCCReference Include="contrib\ParseExpression\ParseClass.pas"/>
|
||||||
<DCCReference Include="contrib\ParseExpression\ParseExpr.pas"/>
|
<DCCReference Include="contrib\ParseExpression\ParseExpr.pas"/>
|
||||||
<DCCReference Include="contrib\XXHASH4Delphi\XXHASHLIB.pas"/>
|
<DCCReference Include="contrib\XXHASH4Delphi\XXHASHLIB.pas"/>
|
||||||
|
<DCCReference Include="contrib\ZSTD4Delphi\ZSTDLib.pas"/>
|
||||||
<DCCReference Include="InitCode.pas"/>
|
<DCCReference Include="InitCode.pas"/>
|
||||||
<DCCReference Include="imports\BrunsliDLL.pas"/>
|
<DCCReference Include="imports\BrunsliDLL.pas"/>
|
||||||
<DCCReference Include="imports\FLACDLL.pas"/>
|
<DCCReference Include="imports\FLACDLL.pas"/>
|
||||||
|
@ -194,6 +210,20 @@
|
||||||
<Overwrite>true</Overwrite>
|
<Overwrite>true</Overwrite>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployFile>
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="Win32\Release\xtool.exe" Configuration="Release" Class="ProjectOutput"/>
|
||||||
|
<DeployFile LocalName="Win32\Release\xtool.exe" Configuration="Release" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteName>xtool.exe</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="Win64\Release\xtool.exe" Configuration="Release" Class="ProjectOutput"/>
|
||||||
|
<DeployFile LocalName="Win64\Release\xtool.exe" Configuration="Release" Class="ProjectOutput">
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteName>xtool.exe</RemoteName>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
<DeployFile LocalName="changes.txt" Configuration="Release" Class="ProjectFile"/>
|
<DeployFile LocalName="changes.txt" Configuration="Release" Class="ProjectFile"/>
|
||||||
<DeployFile LocalName="changes.txt" Configuration="Release" Class="ProjectFile">
|
<DeployFile LocalName="changes.txt" Configuration="Release" Class="ProjectFile">
|
||||||
<Platform Name="Win32">
|
<Platform Name="Win32">
|
||||||
|
@ -213,20 +243,6 @@
|
||||||
<Overwrite>true</Overwrite>
|
<Overwrite>true</Overwrite>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployFile>
|
</DeployFile>
|
||||||
<DeployFile LocalName="Win32\Release\xtool.exe" Configuration="Release" Class="ProjectOutput"/>
|
|
||||||
<DeployFile LocalName="Win32\Release\xtool.exe" Configuration="Release" Class="ProjectOutput">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<RemoteName>xtool.exe</RemoteName>
|
|
||||||
<Overwrite>true</Overwrite>
|
|
||||||
</Platform>
|
|
||||||
</DeployFile>
|
|
||||||
<DeployFile LocalName="Win64\Release\xtool.exe" Configuration="Release" Class="ProjectOutput"/>
|
|
||||||
<DeployFile LocalName="Win64\Release\xtool.exe" Configuration="Release" Class="ProjectOutput">
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<RemoteName>xtool.exe</RemoteName>
|
|
||||||
<Overwrite>true</Overwrite>
|
|
||||||
</Platform>
|
|
||||||
</DeployFile>
|
|
||||||
<DeployClass Name="AdditionalDebugSymbols">
|
<DeployClass Name="AdditionalDebugSymbols">
|
||||||
<Platform Name="iOSSimulator">
|
<Platform Name="iOSSimulator">
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
|
@ -647,6 +663,197 @@
|
||||||
<Operation>0</Operation>
|
<Operation>0</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectAndroidManifest">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXDebug">
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXEntitlements">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXInfoPList">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXResource">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Required="true" Name="ProjectOutput">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Linux64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectUWPManifest">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSEntitlements">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSInfoPList">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSLaunchScreen">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSResource">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo150">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo44">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
<DeployClass Name="iOS_AppStore1024">
|
<DeployClass Name="iOS_AppStore1024">
|
||||||
<Platform Name="iOSDevice64">
|
<Platform Name="iOSDevice64">
|
||||||
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
@ -847,197 +1054,6 @@
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="ProjectAndroidManifest">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSEntitlements">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSInfoPList">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSLaunchScreen">
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
|
||||||
<Operation>64</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
|
||||||
<Operation>64</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSResource">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXDebug">
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXEntitlements">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXInfoPList">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>Contents</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>Contents</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>Contents</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXResource">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Required="true" Name="ProjectOutput">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Linux64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOutput_Android32">
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectUWPManifest">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="UWP_DelphiLogo150">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="UWP_DelphiLogo44">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||||
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
||||||
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
||||||
|
@ -1052,6 +1068,7 @@
|
||||||
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
||||||
</Deployment>
|
</Deployment>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
|
<Platform value="Linux64">False</Platform>
|
||||||
<Platform value="Win32">True</Platform>
|
<Platform value="Win32">True</Platform>
|
||||||
<Platform value="Win64">True</Platform>
|
<Platform value="Win64">True</Platform>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
|
|
|
@ -87,10 +87,11 @@ begin
|
||||||
Funcs^.IsPackJPGLoaded or Funcs^.IsJoJpegLoaded;
|
Funcs^.IsPackJPGLoaded or Funcs^.IsJoJpegLoaded;
|
||||||
Form2.RadioButton1.Enabled := Funcs^.IsBrunsliLoaded;
|
Form2.RadioButton1.Enabled := Funcs^.IsBrunsliLoaded;
|
||||||
Form2.RadioButton2.Enabled := Funcs^.IsPackJPGLoaded;
|
Form2.RadioButton2.Enabled := Funcs^.IsPackJPGLoaded;
|
||||||
Form2.RadioButton3.Enabled := Funcs^.IsJoJpegLoaded;
|
Form2.RadioButton3.Enabled := Funcs^.IsJoJpegLoaded; }
|
||||||
Form1.GroupBox5.Enabled := Funcs^.IsLZMALoaded; }
|
Form1.GroupBox5.Enabled := Funcs^.IsLZMALoaded;
|
||||||
if not Funcs^.IsSrepAvailable then
|
if not Funcs^.IsSrepAvailable then
|
||||||
Form1.ComboBox5.Items.Delete(2);
|
Form1.ComboBox5.Items.Delete(2);
|
||||||
|
Form1.ComboBox5.ItemIndex := 0;
|
||||||
for I := Low(Methods) to High(Methods) do
|
for I := Low(Methods) to High(Methods) do
|
||||||
begin
|
begin
|
||||||
case Methods[I].FType of
|
case Methods[I].FType of
|
||||||
|
|
389
xtoolui.dproj
389
xtoolui.dproj
|
@ -5,7 +5,7 @@
|
||||||
<FrameworkType>FMX</FrameworkType>
|
<FrameworkType>FMX</FrameworkType>
|
||||||
<Base>True</Base>
|
<Base>True</Base>
|
||||||
<Config Condition="'$(Config)'==''">Release</Config>
|
<Config Condition="'$(Config)'==''">Release</Config>
|
||||||
<Platform Condition="'$(Platform)'==''">Win64</Platform>
|
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||||
<TargetedPlatforms>3</TargetedPlatforms>
|
<TargetedPlatforms>3</TargetedPlatforms>
|
||||||
<AppType>Library</AppType>
|
<AppType>Library</AppType>
|
||||||
<MainSource>xtoolui.dpr</MainSource>
|
<MainSource>xtoolui.dpr</MainSource>
|
||||||
|
@ -82,6 +82,8 @@
|
||||||
<AppDPIAwarenessMode>none</AppDPIAwarenessMode>
|
<AppDPIAwarenessMode>none</AppDPIAwarenessMode>
|
||||||
<VerInfo_MajorVer>0</VerInfo_MajorVer>
|
<VerInfo_MajorVer>0</VerInfo_MajorVer>
|
||||||
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=0.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=xtoolui.dll;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.0.0.0;Comments=Created by Razor12911</VerInfo_Keys>
|
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=0.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=xtoolui.dll;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.0.0.0;Comments=Created by Razor12911</VerInfo_Keys>
|
||||||
|
<DCC_PEOSVersion>5.1</DCC_PEOSVersion>
|
||||||
|
<DCC_PESubSysVersion>5.1</DCC_PESubSysVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
|
<PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
|
||||||
<DCC_DcuOutput>.\$(Platform)\DCUs</DCC_DcuOutput>
|
<DCC_DcuOutput>.\$(Platform)\DCUs</DCC_DcuOutput>
|
||||||
|
@ -92,6 +94,8 @@
|
||||||
<VerInfo_MajorVer>0</VerInfo_MajorVer>
|
<VerInfo_MajorVer>0</VerInfo_MajorVer>
|
||||||
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=0.0.0.0;InternalName=;LegalCopyright=Razor12911;LegalTrademarks=;OriginalFilename=xtooui.dll;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.0.0.0;Comments=Created by Razor12911</VerInfo_Keys>
|
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=0.0.0.0;InternalName=;LegalCopyright=Razor12911;LegalTrademarks=;OriginalFilename=xtooui.dll;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.0.0.0;Comments=Created by Razor12911</VerInfo_Keys>
|
||||||
<Debugger_HostApplication>Win64\Release\xtool.exe</Debugger_HostApplication>
|
<Debugger_HostApplication>Win64\Release\xtool.exe</Debugger_HostApplication>
|
||||||
|
<DCC_PEOSVersion>5.1</DCC_PEOSVersion>
|
||||||
|
<DCC_PESubSysVersion>5.1</DCC_PESubSysVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<DelphiCompile Include="$(MainSource)">
|
<DelphiCompile Include="$(MainSource)">
|
||||||
|
@ -572,6 +576,197 @@
|
||||||
<Operation>0</Operation>
|
<Operation>0</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectAndroidManifest">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXDebug">
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXEntitlements">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXInfoPList">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOSXResource">
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents\Resources</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Required="true" Name="ProjectOutput">
|
||||||
|
<Platform Name="Android">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Linux64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX32">
|
||||||
|
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSX64">
|
||||||
|
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="OSXARM64">
|
||||||
|
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>0</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectOutput_Android32">
|
||||||
|
<Platform Name="Android64">
|
||||||
|
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectUWPManifest">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSEntitlements">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<RemoteDir>..\</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSInfoPList">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSLaunchScreen">
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
||||||
|
<Operation>64</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="ProjectiOSResource">
|
||||||
|
<Platform Name="iOSDevice32">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSDevice64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="iOSSimARM64">
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo150">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
|
<DeployClass Name="UWP_DelphiLogo44">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
<Platform Name="Win64">
|
||||||
|
<RemoteDir>Assets</RemoteDir>
|
||||||
|
<Operation>1</Operation>
|
||||||
|
</Platform>
|
||||||
|
</DeployClass>
|
||||||
<DeployClass Name="iOS_AppStore1024">
|
<DeployClass Name="iOS_AppStore1024">
|
||||||
<Platform Name="iOSDevice64">
|
<Platform Name="iOSDevice64">
|
||||||
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
|
||||||
|
@ -772,197 +967,6 @@
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployClass>
|
</DeployClass>
|
||||||
<DeployClass Name="ProjectAndroidManifest">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSEntitlements">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSInfoPList">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSLaunchScreen">
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
|
||||||
<Operation>64</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
|
|
||||||
<Operation>64</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectiOSResource">
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXDebug">
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXEntitlements">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>..\</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXInfoPList">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>Contents</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>Contents</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>Contents</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOSXResource">
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>Contents\Resources</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Required="true" Name="ProjectOutput">
|
|
||||||
<Platform Name="Android">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\arm64-v8a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSDevice64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="iOSSimARM64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Linux64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX32">
|
|
||||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSX64">
|
|
||||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="OSXARM64">
|
|
||||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>0</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectOutput_Android32">
|
|
||||||
<Platform Name="Android64">
|
|
||||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="ProjectUWPManifest">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="UWP_DelphiLogo150">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<DeployClass Name="UWP_DelphiLogo44">
|
|
||||||
<Platform Name="Win32">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
<Platform Name="Win64">
|
|
||||||
<RemoteDir>Assets</RemoteDir>
|
|
||||||
<Operation>1</Operation>
|
|
||||||
</Platform>
|
|
||||||
</DeployClass>
|
|
||||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||||
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
|
||||||
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
||||||
|
@ -976,6 +980,7 @@
|
||||||
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
||||||
</Deployment>
|
</Deployment>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
|
<Platform value="Linux64">False</Platform>
|
||||||
<Platform value="Win32">True</Platform>
|
<Platform value="Win32">True</Platform>
|
||||||
<Platform value="Win64">True</Platform>
|
<Platform value="Win64">True</Platform>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
|
|
BIN
xtoolui.res
BIN
xtoolui.res
Binary file not shown.
Loading…
Reference in New Issue