remove x2utils dependency
This commit is contained in:
parent
4b677e782a
commit
5893767c38
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,6 +1,3 @@
|
||||
[submodule "vendor/x2utils"]
|
||||
path = vendor/x2utils
|
||||
url = https://github.com/MvRens/x2utils.git
|
||||
[submodule "vendor/x2log"]
|
||||
path = vendor/x2log
|
||||
url = https://github.com/MvRens/x2log.git
|
||||
|
@ -14,7 +14,7 @@ uses
|
||||
XMLDOM,
|
||||
XMLIntf,
|
||||
DataBindingHintsXML,
|
||||
XMLDataBindingGenerator, JvExMask, JvToolEdit
|
||||
XMLDataBindingGenerator
|
||||
{
|
||||
cxButtonEdit,
|
||||
cxContainer,
|
||||
|
@ -1813,7 +1813,6 @@ begin
|
||||
begin
|
||||
path := IncludeTrailingPathDelimiter(Result);
|
||||
fileName := ASchemaName.Replace('-', '_');
|
||||
fileName := fileName.Replace('./', '');
|
||||
fileName := fileName + '.pas';
|
||||
|
||||
if Assigned(FOnGetFileName) then
|
||||
|
248
Units/X2UtNamedFormat.pas
Normal file
248
Units/X2UtNamedFormat.pas
Normal file
@ -0,0 +1,248 @@
|
||||
{
|
||||
:: X2UtNamedFormat implements Format-style functionality using named
|
||||
:: instead of indexed parameters.
|
||||
::
|
||||
:: Last changed: $Date$
|
||||
:: Revision: $Rev$
|
||||
:: Author: $Author$
|
||||
}
|
||||
unit X2UtNamedFormat;
|
||||
|
||||
interface
|
||||
uses
|
||||
Classes,
|
||||
SysUtils;
|
||||
|
||||
|
||||
type
|
||||
TNamedFormatStringList = class(TStringList)
|
||||
public
|
||||
procedure AddLn();
|
||||
|
||||
function Format(AParams: array of const): String;
|
||||
end;
|
||||
|
||||
|
||||
{
|
||||
AFormat uses the same format strings as SysUtils.Format, where each
|
||||
format specifier may use a named instead of a numeric index, surrounded by
|
||||
<>, eg:
|
||||
|
||||
%<Value1>:s %<Value2>:.2d
|
||||
|
||||
|
||||
AParams contains alternating the parameter name and it's value.
|
||||
|
||||
Note: NamedFormat works by mapping names to indices and passing the result
|
||||
to SysUtils.Format. Unnamed or existing indexed specifiers will therefore
|
||||
be affected by named specifiers! It is strongly recommended to name all
|
||||
specifiers.
|
||||
}
|
||||
function NamedFormat(const AFormat: String; AParams: array of const; AFormatSettings: TFormatSettings): String; overload;
|
||||
function NamedFormat(const AFormat: String; AParams: array of const): String; overload;
|
||||
|
||||
|
||||
implementation
|
||||
uses
|
||||
Windows;
|
||||
|
||||
type
|
||||
TProtectedMemoryStream = class(TMemoryStream);
|
||||
|
||||
|
||||
const
|
||||
SpecifierChar = '%';
|
||||
SpecifierNameStart = '<';
|
||||
SpecifierNameEnd = '>';
|
||||
ValidNameChars = ['A'..'Z', 'a'..'z', '0'..'9', '_'];
|
||||
|
||||
|
||||
procedure StreamWriteChar(const AStream: TStream; const AValue: Char);
|
||||
begin
|
||||
AStream.WriteBuffer(AValue, SizeOf(Char));
|
||||
end;
|
||||
|
||||
|
||||
procedure StreamWriteString(const AStream: TStream; const AValue: String);
|
||||
begin
|
||||
AStream.WriteBuffer(PChar(AValue)^, Length(AValue) * SizeOf(Char));
|
||||
end;
|
||||
|
||||
|
||||
function FindNameEnd(const APosition: PChar; const AEnd: PChar): PChar;
|
||||
var
|
||||
position: PChar;
|
||||
|
||||
begin
|
||||
Result := nil;
|
||||
position := APosition;
|
||||
|
||||
while position < AEnd do
|
||||
begin
|
||||
if position^ = SpecifierNameEnd then
|
||||
begin
|
||||
Result := position;
|
||||
break;
|
||||
end;
|
||||
|
||||
if not CharInSet(position^, ValidNameChars) then
|
||||
break;
|
||||
|
||||
Inc(position);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
function NamedFormat(const AFormat: String; AParams: array of const): String; overload;
|
||||
var
|
||||
formatSettings: TFormatSettings;
|
||||
|
||||
begin
|
||||
formatSettings := TFormatSettings.Create;
|
||||
Result := NamedFormat(AFormat, AParams, formatSettings);
|
||||
end;
|
||||
|
||||
|
||||
function NamedFormat(const AFormat: string; AParams: array of const; AFormatSettings: TFormatSettings): String;
|
||||
var
|
||||
currentPos: PChar;
|
||||
formatEnd: PChar;
|
||||
formatStream: TMemoryStream;
|
||||
formatString: String;
|
||||
name: String;
|
||||
nameEnd: PChar;
|
||||
nameStart: PChar;
|
||||
param: TVarRec;
|
||||
paramIndex: Integer;
|
||||
paramNames: TStringList;
|
||||
paramValues: array of TVarRec;
|
||||
specifierIndex: Integer;
|
||||
errorMsg: String;
|
||||
|
||||
begin
|
||||
if Length(AParams) mod 2 = 1 then
|
||||
raise Exception.Create('AParams must contains a multiple of 2 number of items');
|
||||
|
||||
currentPos := PChar(AFormat);
|
||||
SetLength(paramValues, 0);
|
||||
|
||||
formatEnd := currentPos;
|
||||
Inc(formatEnd, Length(AFormat));
|
||||
|
||||
paramNames := TStringList.Create();
|
||||
try
|
||||
paramNames.CaseSensitive := False;
|
||||
|
||||
formatStream := TMemoryStream.Create();
|
||||
try
|
||||
{ Most likely scenario; the names are longer than the replacement
|
||||
indexes. }
|
||||
TProtectedMemoryStream(formatStream).Capacity := Length(AFormat) * SizeOf(Char);
|
||||
|
||||
while currentPos < formatEnd do
|
||||
begin
|
||||
{ Search for % }
|
||||
if currentPos^ = SpecifierChar then
|
||||
begin
|
||||
StreamWriteChar(formatStream, currentPos^);
|
||||
Inc(currentPos);
|
||||
|
||||
{ Check if this is indeed a named specifier }
|
||||
if (currentPos < formatEnd) and (currentPos^ = SpecifierNameStart) then
|
||||
begin
|
||||
Inc(currentPos);
|
||||
|
||||
nameStart := currentPos;
|
||||
nameEnd := FindNameEnd(currentPos, formatEnd);
|
||||
|
||||
if Assigned(nameEnd) then
|
||||
begin
|
||||
SetString(name, nameStart, nameEnd - nameStart);
|
||||
|
||||
specifierIndex := paramNames.IndexOf(name);
|
||||
if specifierIndex = -1 then
|
||||
specifierIndex := paramNames.Add(name);
|
||||
|
||||
StreamWriteString(formatStream, IntToStr(specifierIndex));
|
||||
|
||||
currentPos := nameEnd;
|
||||
end;
|
||||
end else
|
||||
StreamWriteChar(formatStream, currentPos^);
|
||||
end else
|
||||
StreamWriteChar(formatStream, currentPos^);
|
||||
|
||||
Inc(currentPos);
|
||||
end;
|
||||
|
||||
SetString(formatString, PChar(formatStream.Memory), formatStream.Size div SizeOf(Char));
|
||||
finally
|
||||
FreeAndNil(formatStream);
|
||||
end;
|
||||
|
||||
SetLength(paramValues, paramNames.Count);
|
||||
paramIndex := 0;
|
||||
|
||||
while paramIndex < High(AParams) do
|
||||
begin
|
||||
param := AParams[paramIndex];
|
||||
|
||||
case param.VType of
|
||||
vtChar: name := string(param.VChar);
|
||||
vtString: name := string(param.VString^);
|
||||
vtPChar: name := string(param.VPChar);
|
||||
vtAnsiString: name := string(PChar(param.VAnsiString));
|
||||
vtWideChar: name := string(param.VWideChar);
|
||||
vtWideString: name := string(WideString(param.VWideString));
|
||||
vtUnicodeString: name := string(UnicodeString(param.VUnicodeString));
|
||||
else
|
||||
raise Exception.CreateFmt('Parameter name at index %d is not a string value',
|
||||
[paramIndex div 2]);
|
||||
end;
|
||||
|
||||
Inc(paramIndex);
|
||||
|
||||
specifierIndex := paramNames.IndexOf(name);
|
||||
if specifierIndex > -1 then
|
||||
paramValues[specifierIndex] := AParams[paramIndex];
|
||||
|
||||
Inc(paramIndex);
|
||||
end;
|
||||
|
||||
try
|
||||
|
||||
Result := Format(formatString, paramValues, AFormatSettings);
|
||||
except
|
||||
on E:EConvertError do
|
||||
begin
|
||||
errorMsg := E.Message;
|
||||
|
||||
{ Translate specifiers in error messages back to names }
|
||||
for paramIndex := 0 to Pred(paramNames.Count) do
|
||||
errorMsg := StringReplace(errorMsg, SpecifierChar + IntToStr(paramIndex) + ':',
|
||||
SpecifierChar + SpecifierNameStart +
|
||||
paramNames[paramIndex] + SpecifierNameEnd + ':',
|
||||
[rfReplaceAll]);
|
||||
|
||||
raise EConvertError.Create(errorMsg);
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
FreeAndNil(paramNames);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
{ TNamedFormatStringList }
|
||||
procedure TNamedFormatStringList.AddLn;
|
||||
begin
|
||||
Add('');
|
||||
end;
|
||||
|
||||
|
||||
function TNamedFormatStringList.Format(AParams: array of const): String;
|
||||
begin
|
||||
Result := NamedFormat(Text, AParams);
|
||||
end;
|
||||
|
||||
end.
|
145
Units/X2UtTempFile.pas
Normal file
145
Units/X2UtTempFile.pas
Normal file
@ -0,0 +1,145 @@
|
||||
{: Provides temporary file functions.
|
||||
|
||||
Last changed: $Date$
|
||||
Revision: $Rev$
|
||||
Author: $Author$
|
||||
}
|
||||
unit X2UtTempFile;
|
||||
|
||||
interface
|
||||
function GetAppDataPath(): String;
|
||||
|
||||
function GetTempFile(const APrefix: String): String; overload;
|
||||
function GetTempFile(const APath, AFileName, AExtension: String): String; overload;
|
||||
function GetTempFile(const APath, AFileName: String): String; overload;
|
||||
function GetTempAppDataFile(const ASubPath, AFileName, AExtension: String): String; overload;
|
||||
function GetTempAppDataFile(const ASubPath, AFileName: String): String; overload;
|
||||
|
||||
function IsValidFileChar(const AChar: Char): Boolean;
|
||||
function CheckValidFileName(var AFileName: String; const AReplacement: Char = #0): Boolean;
|
||||
|
||||
implementation
|
||||
uses
|
||||
ShlObj,
|
||||
SysUtils,
|
||||
Windows;
|
||||
|
||||
function GetAppDataPath(): String;
|
||||
var
|
||||
path: array[0..MAX_PATH] of Char;
|
||||
|
||||
begin
|
||||
FillChar(path, SizeOf(path), #0);
|
||||
if not SHGetSpecialFolderPath(0, @path, CSIDL_APPDATA, True) then
|
||||
begin
|
||||
FillChar(path, SizeOf(path), #0);
|
||||
GetTempPath(SizeOf(path), @path);
|
||||
end;
|
||||
|
||||
Result := path;
|
||||
if Length(Result) > 0 then
|
||||
Result := IncludeTrailingPathDelimiter(Result);
|
||||
end;
|
||||
|
||||
|
||||
function GetTempFile(const APrefix: String): String; overload;
|
||||
var
|
||||
tempPath: array[0..MAX_PATH] of Char;
|
||||
tempFile: array[0..MAX_PATH] of Char;
|
||||
|
||||
begin
|
||||
FillChar(tempPath, SizeOf(tempPath), #0);
|
||||
FillChar(tempFile, SizeOf(tempFile), #0);
|
||||
|
||||
Windows.GetTempPath(SizeOf(tempPath), @tempPath);
|
||||
Windows.GetTempFileName(@tempPath, PChar(APrefix), 0, @tempFile);
|
||||
|
||||
Result := String(tempFile);
|
||||
end;
|
||||
|
||||
|
||||
function GetTempFile(const APath, AFileName, AExtension: String): String; overload;
|
||||
var
|
||||
iCounter: Integer;
|
||||
sBase: String;
|
||||
sExtension: String;
|
||||
|
||||
begin
|
||||
iCounter := 0;
|
||||
sBase := IncludeTrailingPathDelimiter(APath);
|
||||
|
||||
if not ForceDirectories(sBase) then
|
||||
begin
|
||||
Result := '';
|
||||
exit;
|
||||
end;
|
||||
|
||||
sExtension := AExtension;
|
||||
if (Length(sExtension) > 0) and (AnsiPos('.', sExtension) = 0) then
|
||||
sExtension := '.' + sExtension;
|
||||
|
||||
sBase := sBase + AFileName;
|
||||
Result := sBase + sExtension;
|
||||
|
||||
while FileExists(Result) do
|
||||
begin
|
||||
Inc(iCounter);
|
||||
Result := Format('%s(%d)%s', [sBase, iCounter, sExtension]);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
function GetTempFile(const APath, AFileName: String): String; overload;
|
||||
var
|
||||
sExt: String;
|
||||
|
||||
begin
|
||||
sExt := ExtractFileExt(AFileName);
|
||||
Result := GetTempFile(APath, Copy(AFileName, 1, Length(AFileName) - Length(sExt)),
|
||||
sExt);
|
||||
end;
|
||||
|
||||
|
||||
function GetTempAppDataFile(const ASubPath, AFileName, AExtension: String): String; overload;
|
||||
begin
|
||||
Result := GetTempFile(GetAppDataPath + ASubPath, AFileName, AExtension);
|
||||
end;
|
||||
|
||||
|
||||
function GetTempAppDataFile(const ASubPath, AFileName: String): String; overload;
|
||||
var
|
||||
sExt: String;
|
||||
|
||||
begin
|
||||
sExt := ExtractFileExt(AFileName);
|
||||
Result := GetTempAppDataFile(ASubPath, Copy(AFileName, 1,
|
||||
Length(AFileName) - Length(sExt)),
|
||||
sExt);
|
||||
end;
|
||||
|
||||
|
||||
function IsValidFileChar(const AChar: Char): Boolean;
|
||||
begin
|
||||
Result := not CharInSet(AChar, ['\', '/', ':', '*', '?', '"', '<', '>', '|']);
|
||||
end;
|
||||
|
||||
|
||||
function CheckValidFileName(var AFileName: String; const AReplacement: Char): Boolean;
|
||||
var
|
||||
iPos: Integer;
|
||||
|
||||
begin
|
||||
Result := True;
|
||||
|
||||
for iPos := Length(AFileName) downto 1 do
|
||||
if not IsValidFileChar(AFileName[iPos]) then
|
||||
begin
|
||||
Result := False;
|
||||
if AReplacement = #0 then
|
||||
Delete(AFileName, iPos, 1)
|
||||
else
|
||||
AFileName[iPos] := AReplacement;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
@ -489,6 +489,7 @@ function TXMLDataBindingGenerator.LoadSchema(const AStream: TStream; const ASche
|
||||
begin
|
||||
location := ADocRefs[refIndex].SchemaLocation;
|
||||
schemaName := ChangeFileExt(ExtractFileName(location), '');
|
||||
schemaName := schemaName.Replace('./', ''); // fix explizit current dir
|
||||
refSchema := FindSchema(schemaName);
|
||||
|
||||
if not Assigned(refSchema) then
|
||||
|
1331
Units/XMLDataBindingUtils.pas
Normal file
1331
Units/XMLDataBindingUtils.pas
Normal file
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,10 @@ uses
|
||||
DelphiXMLDataBindingResources in 'Units\DelphiXMLDataBindingResources.pas',
|
||||
DataBindingSettingsXML in 'Units\DataBindingSettingsXML.pas',
|
||||
DataBindingHintsXML in 'Units\DataBindingHintsXML.pas',
|
||||
MSXML2_TLB in 'Units\MSXML2_TLB.pas';
|
||||
MSXML2_TLB in 'Units\MSXML2_TLB.pas',
|
||||
XMLDataBindingUtils in 'Units\XMLDataBindingUtils.pas',
|
||||
X2UtNamedFormat in 'Units\X2UtNamedFormat.pas',
|
||||
X2UtTempFile in 'Units\X2UtTempFile.pas';
|
||||
|
||||
{$R *.res}
|
||||
|
||||
|
@ -52,7 +52,7 @@
|
||||
<VerInfo_Locale>1043</VerInfo_Locale>
|
||||
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
|
||||
<SanitizedProjectName>X2XMLDataBinding</SanitizedProjectName>
|
||||
<DCC_UnitSearchPath>vendor\x2utils;vendor\x2log;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
|
||||
<DCC_UnitSearchPath>vendor\x2utils_;vendor\x2log;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||
@ -142,6 +142,429 @@
|
||||
<Platform value="Win32">True</Platform>
|
||||
<Platform value="Win64">True</Platform>
|
||||
</Platforms>
|
||||
<Deployment Version="3">
|
||||
<DeployFile LocalName="bin\X2XMLDataBinding.exe" Configuration="Build" Class="ProjectOutput">
|
||||
<Platform Name="Win32">
|
||||
<RemoteName>X2XMLDataBinding.exe</RemoteName>
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployClass Name="AdditionalDebugSymbols">
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidClassesDexFile">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>classes</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>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeMipsFile">
|
||||
<Platform Name="Android">
|
||||
<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>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashImageDef">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashStyles">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_DefaultAppIcon">
|
||||
<Platform Name="Android">
|
||||
<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>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_LauncherIcon36">
|
||||
<Platform Name="Android">
|
||||
<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>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_LauncherIcon72">
|
||||
<Platform Name="Android">
|
||||
<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>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_SplashImage426">
|
||||
<Platform Name="Android">
|
||||
<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>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_SplashImage640">
|
||||
<Platform Name="Android">
|
||||
<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>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DebugSymbols">
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DependencyFramework">
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
<Extensions>.framework</Extensions>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DependencyModule">
|
||||
<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">
|
||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||
<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">
|
||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||
<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="iOSDevice32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>Contents\Resources\StartUp\</RemoteDir>
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPad_Launch1024">
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPad_Launch1536">
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPad_Launch2048">
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPad_Launch768">
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPhone_Launch320">
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPhone_Launch640">
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPhone_Launch640x1136">
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectAndroidManifest">
|
||||
<Platform Name="Android">
|
||||
<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">
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<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>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectiOSInfoPList">
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<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="ProjectOSXEntitlements">
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectOSXInfoPList">
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>Contents</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectOSXResource">
|
||||
<Platform Name="OSX32">
|
||||
<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="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">
|
||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</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="iOSDevice64" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||
</Deployment>
|
||||
</BorlandProject>
|
||||
<ProjectFileVersion>12</ProjectFileVersion>
|
||||
</ProjectExtensions>
|
||||
@ -160,6 +583,9 @@
|
||||
<DCCReference Include="Units\DataBindingSettingsXML.pas"/>
|
||||
<DCCReference Include="Units\DataBindingHintsXML.pas"/>
|
||||
<DCCReference Include="Units\MSXML2_TLB.pas"/>
|
||||
<DCCReference Include="Units\XMLDataBindingUtils.pas"/>
|
||||
<DCCReference Include="Units\X2UtNamedFormat.pas"/>
|
||||
<DCCReference Include="Units\X2UtTempFile.pas"/>
|
||||
<BuildConfiguration Include="Build">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
@ -170,4 +596,5 @@
|
||||
</ItemGroup>
|
||||
<Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
|
||||
</Project>
|
||||
|
1
vendor/x2utils
vendored
1
vendor/x2utils
vendored
@ -1 +0,0 @@
|
||||
Subproject commit 1e7a0873558140b506c01af5c50c73cfe940466e
|
Loading…
Reference in New Issue
Block a user