diff --git a/windows/src/Makefile b/windows/src/Makefile
index 19a4846c49..f57f61a19b 100644
--- a/windows/src/Makefile
+++ b/windows/src/Makefile
@@ -86,7 +86,7 @@ test:
# release
# ----------------------------------------------------------------------
-release: clean-pathdefines build-source-root-path-pas test-releasebuildcheck test-uiaccess test-klog test-releaseexists test-cert clean
+release: clean-pathdefines test-releasebuildcheck test-uiaccess test-klog test-releaseexists test-cert clean
cd $(ROOT)\src
$(MAKE) disable-search
$(MAKE) build-release-wrapper
@@ -128,7 +128,7 @@ test-releaseexists: mkver-app
# Test various release prerequisites, e.g. Debug reg key not set
#
-test-releasebuildcheck: build-source-root-path-pas
+test-releasebuildcheck:
cd $(ROOT)\src\buildtools\devtools
$(MAKE) test-releasebuildcheck
cd $(ROOT)\src
@@ -182,7 +182,7 @@ build-release-wrapper: clean-output update-version
# Tools needed to complete a build
#
-build-tools: build-source-root-path-pas
+build-tools:
cd $(ROOT)\src\buildtools\devtools
$(MAKE)
@@ -239,22 +239,6 @@ test-certificate:
certutil -user -addstore Root KeymanTestCA-sha256.cer
makecert -pe -n "CN=Keyman Test Certificate" -a sha256 -cy end -sky signature -ic KeymanTestCA-sha256.cer -iv KeymanTestCA-sha256.pvk -sv KeymanTest-sha256.pvk KeymanTest-sha256.cer
pvk2pfx -pvk KeymanTest-sha256.pvk -spc KeymanTest-sha256.cer -pfx KeymanTest-sha256.pfx
-
-#
-# Allow Keyman to be built without being in C:\keyman\10.0 root folder
-#
-
-SOURCEROOTPATH=$(ROOT)\src\global\delphi\general\SourceRootPath.pas
-
-build-source-root-path-pas:
- echo unit SourceRootPath; > $(SOURCEROOTPATH)
- echo interface >> $(SOURCEROOTPATH)
- echo const >> $(SOURCEROOTPATH)
- echo CSourceRootPath='$(ROOT)\src'; >> $(SOURCEROOTPATH)
- echo CSourceBinRootPath='$(ROOT)\bin'; >> $(SOURCEROOTPATH)
- echo CSourceRootLibPath='$(ROOT)\lib'; >> $(SOURCEROOTPATH)
- echo implementation >> $(SOURCEROOTPATH)
- echo end. >> $(SOURCEROOTPATH)
!include Target.mak
diff --git a/windows/src/buildtools/buildpkg/buildpkg.dpr b/windows/src/buildtools/buildpkg/buildpkg.dpr
index 57a5c35c56..8a68b3f1fc 100644
--- a/windows/src/buildtools/buildpkg/buildpkg.dpr
+++ b/windows/src/buildtools/buildpkg/buildpkg.dpr
@@ -52,7 +52,12 @@ uses
TempFileManager in '..\..\global\delphi\general\TempFileManager.pas',
ExtShiftState in '..\..\global\delphi\comp\ExtShiftState.pas',
VKeyChars in '..\..\global\delphi\general\VKeyChars.pas',
- VKeys in '..\..\global\delphi\general\VKeys.pas';
+ VKeys in '..\..\global\delphi\general\VKeys.pas',
+ DCPcrypt2 in '..\..\ext\dcpcrypt\DCPcrypt2.pas',
+ DCPbase64 in '..\..\ext\dcpcrypt\DCPbase64.pas',
+ DCPconst in '..\..\ext\dcpcrypt\DCPconst.pas',
+ DCPrc4 in '..\..\ext\dcpcrypt\Ciphers\DCPrc4.pas',
+ DCPmd5 in '..\..\ext\dcpcrypt\Hashes\DCPmd5.pas';
begin
Run;
diff --git a/windows/src/buildtools/buildpkg/buildpkg.dproj b/windows/src/buildtools/buildpkg/buildpkg.dproj
index 450cf6d1be..e8bd5e2858 100644
--- a/windows/src/buildtools/buildpkg/buildpkg.dproj
+++ b/windows/src/buildtools/buildpkg/buildpkg.dproj
@@ -7,7 +7,7 @@
1
Console
None
- 18.1
+ 18.2
Win32
@@ -65,7 +65,7 @@
Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+ CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)
1033
@@ -81,7 +81,7 @@
-m c:\temp\xx\keymandesktop90.msi -l c:\temp\xx\license.html -n "GFF Amharic" -s c:\temp\xx\ c:\temp\xx\gff-amh-powerpack-7.kmp
c:\temp\xx\
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+ CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)
1033
@@ -140,6 +140,11 @@
+
+
+
+
+
Cfg_2
Base
@@ -196,6 +201,7 @@
+ False
True
False
@@ -226,20 +232,13 @@
true
-
+
+
+ 1
+
+ Contents\MacOS
0
- .dll;.bpl
-
-
- 1
- .dylib
-
-
-
-
- Contents\Resources
- 1
@@ -248,207 +247,27 @@
1
-
-
- Contents\MacOS
- 0
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- res\drawable-xxhdpi
- 1
-
-
-
-
- library\lib\mips
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 0
-
-
- 1
-
-
- 1
-
-
- library\lib\armeabi-v7a
- 1
-
-
- 1
-
-
-
-
- 0
-
-
- 1
- .framework
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
- 1
-
-
- ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
-
- library\lib\armeabi
- 1
-
-
-
-
- 0
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- res\drawable-normal
- 1
-
-
-
-
- res\drawable-xhdpi
- 1
-
-
-
-
- res\drawable-large
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
-
- res\drawable-hdpi
- 1
-
-
library\lib\armeabi-v7a
1
-
-
-
-
- 1
-
-
- 1
-
-
+
+
+ library\lib\armeabi
1
-
+
- res\values
+ library\lib\mips
1
-
+
- res\drawable-small
+ library\lib\armeabi-v7a
1
@@ -458,19 +277,9 @@
1
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
+
+ res\values
1
@@ -480,63 +289,9 @@
1
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
+
- 0
-
-
- 0
-
-
-
-
- library\lib\armeabi-v7a
- 1
-
-
-
-
- 0
- .bpl
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
-
-
- res\drawable-mdpi
- 1
-
-
-
-
- res\drawable-xlarge
+ res\drawable-xxhdpi
1
@@ -546,7 +301,286 @@
1
+
+
+ res\drawable-mdpi
+ 1
+
+
+
+
+ res\drawable-hdpi
+ 1
+
+
+
+
+ res\drawable-xhdpi
+ 1
+
+
+
+
+ res\drawable-small
+ 1
+
+
+
+
+ res\drawable-normal
+ 1
+
+
+
+
+ res\drawable-large
+ 1
+
+
+
+
+ res\drawable-xlarge
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 0
+
+
+
+
+ 1
+ .framework
+
+
+ 0
+
+
+
+
+ 1
+ .dylib
+
+
+ 0
+ .dll;.bpl
+
+
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 0
+ .bpl
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+
+
+ Contents\Resources
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 0
+
+
+
+
+ 1
+
+
+ 1
+
+
+
+
+ Assets
+ 1
+
+
+ Assets
+ 1
+
+
+
+
+ Assets
+ 1
+
+
+ Assets
+ 1
+
+
diff --git a/windows/src/buildtools/devtools/DevIncludePaths.pas b/windows/src/buildtools/devtools/DevIncludePaths.pas
index 6534807cd6..84610ac23b 100644
--- a/windows/src/buildtools/devtools/DevIncludePaths.pas
+++ b/windows/src/buildtools/devtools/DevIncludePaths.pas
@@ -88,7 +88,10 @@ const
'$(BDS)\source\DUnit\Contrib\XPGen;$(BDS)\source\data\rest;$(BDS)\source\data\firedac;$(BDS)\source\tethering;'+
'$(BDS)\source\DUnitX;$(BDS)\source\data\ems;$(BDS)\source\rtl\net;$(BDS)\source\FlatBox2D;';
- SFile_PathDefinesMak = CSourceRootPath+'\PathDefines.mak'; // I3321
+function SFile_PathDefinesMak: string;
+begin
+ Result := CSourceRootPath+'\PathDefines.mak'; // I3321
+end;
{ TIncludePaths }
diff --git a/windows/src/buildtools/devtools/DevInstallPackages.pas b/windows/src/buildtools/devtools/DevInstallPackages.pas
index 8ab1eb9e2b..1850c7e997 100644
--- a/windows/src/buildtools/devtools/DevInstallPackages.pas
+++ b/windows/src/buildtools/devtools/DevInstallPackages.pas
@@ -198,7 +198,7 @@ begin
GetValueNames(FValues);
for I := 0 to FValues.Count - 1 do
begin
- if SameText(Copy(FValues[I], 1, 11), CSourceRootLibPath+'\') then
+ if SameText(Copy(FValues[I], 1, Length(CSourceRootLibPath)+1), CSourceRootLibPath+'\') then
DeleteValue(FValues[I]);
end;
finally
@@ -212,7 +212,7 @@ begin
try
GetValueNames(FValues);
for I := 0 to FValues.Count - 1 do
- if SameText(Copy(FValues[I], 1, 11), CSourceRootLibPath+'\') then
+ if SameText(Copy(FValues[I], 1, Length(CSourceRootLibPath)+1), CSourceRootLibPath+'\') then
DeleteValue(FValues[I]);
finally
FValues.Free;
diff --git a/windows/src/buildtools/devtools/Makefile b/windows/src/buildtools/devtools/Makefile
index 0c6df7a67f..70d94bc908 100644
--- a/windows/src/buildtools/devtools/Makefile
+++ b/windows/src/buildtools/devtools/Makefile
@@ -18,7 +18,13 @@ build: dirs
# build with DCC32 as $DCC32 command uses devtools.exe...
# $(DCC32) devtools.dpr
!IFDEF DELPHI_STARTER
- start /wait $(MAKEDIR)\bds.exe -ns -b devtools.dpr
+ # We have a catch-22. We use devtools to do a build of devtools
+ # because otherwise Delphi IDE can stall with a spurious 'changed
+ # files' confirmation. So first use a static copy of devtools to
+ # kick things off, then replace it with a new copy once done.
+ # What a silly world we live in :)
+ copy devtools.bin $(PROGRAM)\buildtools\devtools.exe
+ $(DCC32) devtools.dpr
!ELSE
$(MAKEDIR)\dcc32 -Q -B -E. -NSVcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Web;Soap;Winapi;System.Win devtools.dpr
!ENDIF
diff --git a/windows/src/buildtools/devtools/SourceRootPath.pas b/windows/src/buildtools/devtools/SourceRootPath.pas
new file mode 100644
index 0000000000..fe9964f935
--- /dev/null
+++ b/windows/src/buildtools/devtools/SourceRootPath.pas
@@ -0,0 +1,55 @@
+unit SourceRootPath;
+
+interface
+
+function CSourcePath: string;
+function CSourceRootPath: string; //='C:\Projects\keyman\open\windows\src';
+function CSourceBinRootPath: string; //='C:\Projects\keyman\open\windows\bin';
+function CSourceRootLibPath: string; //='C:\Projects\keyman\open\windows\lib';
+
+implementation
+
+uses
+ System.SysUtils;
+
+function CSourcePath: string;
+begin
+ // Root path of repo should be found in environment variable KEYMAN_ROOT
+ // e.g. C:\projects\keyman\open
+ Result := GetEnvironmentVariable('KEYMAN_ROOT');
+ if Result = '' then
+ begin
+ // If not found, look at path of executable. It should be either
+ // src\buildtools\\ or bin\buildtools\
+
+ Result := ExtractFileDir(ParamStr(0));
+ if not SameText(ExtractFileName(Result), 'buildtools') then
+ Result := ExtractFileDir(Result);
+ if not SameText(ExtractFileName(Result), 'buildtools') then
+ begin
+ raise Exception.Create('Unable to locate source root path. Set KEYMAN_ROOT environment variable accordingly');
+ end;
+ Result := ExtractFileDir(Result); //src or bin
+ Result := ExtractFileDir(Result); //windows
+ Result := ExtractFileDir(Result); //root
+ end
+ else
+ Result := ExcludeTrailingPathDelimiter(Result);
+end;
+
+function CSourceRootPath: string; //='C:\Projects\keyman\open\windows\src';
+begin
+ Result := CSourcePath + '\windows\src';
+end;
+
+function CSourceBinRootPath: string; //='C:\Projects\keyman\open\windows\bin';
+begin
+ Result := CSourcePath + '\windows\bin';
+end;
+
+function CSourceRootLibPath: string; //='C:\Projects\keyman\open\windows\lib';
+begin
+ Result := CSourcePath + '\windows\lib';
+end;
+
+end.
diff --git a/windows/src/buildtools/devtools/devtools.bin b/windows/src/buildtools/devtools/devtools.bin
new file mode 100644
index 0000000000..1631aee182
Binary files /dev/null and b/windows/src/buildtools/devtools/devtools.bin differ
diff --git a/windows/src/buildtools/devtools/devtools.dpr b/windows/src/buildtools/devtools/devtools.dpr
index 8264b052d2..4ac10be055 100644
--- a/windows/src/buildtools/devtools/devtools.dpr
+++ b/windows/src/buildtools/devtools/devtools.dpr
@@ -9,7 +9,6 @@ uses
DevIncludePaths in 'DevIncludePaths.pas',
DevInstallPackages in 'DevInstallPackages.pas',
DevUtils in 'DevUtils.pas',
- SourceRootPath in '..\..\global\delphi\general\SourceRootPath.pas',
DevDelphiCompileWrapper in 'DevDelphiCompileWrapper.pas',
UfrmCompilerErrors in 'UfrmCompilerErrors.pas' {CompilerErrorsForm},
DevReleaseBuildCheck in 'DevReleaseBuildCheck.pas',
@@ -21,7 +20,8 @@ uses
utilexecute in '..\..\global\delphi\general\utilexecute.pas',
Unicode in '..\..\global\delphi\general\Unicode.pas',
GetOsVersion in '..\..\global\delphi\general\GetOsVersion.pas',
- DevDelphiStarterCompileWrapper in 'DevDelphiStarterCompileWrapper.pas';
+ DevDelphiStarterCompileWrapper in 'DevDelphiStarterCompileWrapper.pas',
+ SourceRootPath in 'SourceRootPath.pas';
begin
try
diff --git a/windows/src/buildtools/devtools/devtools.dproj b/windows/src/buildtools/devtools/devtools.dproj
index 3d425d0ac8..533a6d5b29 100644
--- a/windows/src/buildtools/devtools/devtools.dproj
+++ b/windows/src/buildtools/devtools/devtools.dproj
@@ -90,7 +90,6 @@
-
@@ -105,6 +104,7 @@
+
Cfg_2
Base
diff --git a/windows/src/buildtools/stockeditor/StockEditor.dpr b/windows/src/buildtools/stockeditor/StockEditor.dpr
index 6548ccc39e..8be2b79379 100644
--- a/windows/src/buildtools/stockeditor/StockEditor.dpr
+++ b/windows/src/buildtools/stockeditor/StockEditor.dpr
@@ -9,7 +9,7 @@ uses
Unicode in '..\..\global\delphi\general\Unicode.pas',
UfrmStockMessageEditorMoveToGroup in 'UfrmStockMessageEditorMoveToGroup.pas' {frmStockMessageEditorMoveToGroup},
ErrorControlledRegistry in '..\..\global\delphi\vcl\ErrorControlledRegistry.pas',
- SourceRootPath in '..\..\global\delphi\general\SourceRootPath.pas',
+ SourceRootPath in '..\devtools\SourceRootPath.pas',
KeymanVersion in '..\..\global\delphi\general\KeymanVersion.pas',
StockFileNames in '..\..\global\delphi\cust\StockFileNames.pas';
diff --git a/windows/src/buildtools/stockeditor/StockEditor.dproj b/windows/src/buildtools/stockeditor/StockEditor.dproj
index cc1a6fdd73..51c9917e82 100644
--- a/windows/src/buildtools/stockeditor/StockEditor.dproj
+++ b/windows/src/buildtools/stockeditor/StockEditor.dproj
@@ -7,7 +7,7 @@
1
Application
VCL
- 18.1
+ 18.2
Win32
@@ -33,6 +33,12 @@
Base
true
+
+ true
+ Cfg_2
+ true
+ true
+
StockEditor
C:\keyman\7.0\src\dev\kct\FORMDES\SOURCE;C:\keyman\7.0\src\dev\kct\OBJINSP\SOURCE;c:\keyman\7.0\src\global\delphi\comp;c:\keyman\7.0\src\global\delphi\folderdlg;c:\keyman\7.0\src\global\delphi\xstringgrid;c:\keyman\7.0\src\global\delphi\vclzip;c:\keyman\7.0\src\global\delphi\plusmemou;$(DCC_UnitSearchPath)
@@ -63,10 +69,14 @@
System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
1033
$(BDS)\bin\default_app.manifest
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+ CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
StockEditor_Icon.ico
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
false
@@ -78,6 +88,9 @@
DEBUG;$(DCC_Define)
true
+
+ Debug
+
MainSource
@@ -95,7 +108,7 @@
-
+
@@ -160,20 +173,13 @@
true
-
+
+
+ 1
+
+ Contents\MacOS
0
- .dll;.bpl
-
-
- 1
- .dylib
-
-
-
-
- Contents\Resources
- 1
@@ -182,207 +188,27 @@
1
-
-
- Contents\MacOS
- 0
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- res\drawable-xxhdpi
- 1
-
-
-
-
- library\lib\mips
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 0
-
-
- 1
-
-
- 1
-
-
- library\lib\armeabi-v7a
- 1
-
-
- 1
-
-
-
-
- 0
-
-
- 1
- .framework
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
- 1
-
-
- ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
-
- library\lib\armeabi
- 1
-
-
-
-
- 0
-
-
- 1
-
-
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
- res\drawable-normal
- 1
-
-
-
-
- res\drawable-xhdpi
- 1
-
-
-
-
- res\drawable-large
- 1
-
-
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
-
-
- res\drawable-hdpi
- 1
-
-
library\lib\armeabi-v7a
1
-
-
-
-
- 1
-
-
- 1
-
-
+
+
+ library\lib\armeabi
1
-
+
- res\values
+ library\lib\mips
1
-
+
- res\drawable-small
+ library\lib\armeabi-v7a
1
@@ -392,19 +218,9 @@
1
-
-
- 1
-
-
- 1
-
-
- 1
-
-
-
+
+ res\values
1
@@ -414,63 +230,9 @@
1
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
+
- 0
-
-
- 0
-
-
-
-
- library\lib\armeabi-v7a
- 1
-
-
-
-
- 0
- .bpl
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
- 1
- .dylib
-
-
-
-
- res\drawable-mdpi
- 1
-
-
-
-
- res\drawable-xlarge
+ res\drawable-xxhdpi
1
@@ -480,7 +242,286 @@
1
+
+
+ res\drawable-mdpi
+ 1
+
+
+
+
+ res\drawable-hdpi
+ 1
+
+
+
+
+ res\drawable-xhdpi
+ 1
+
+
+
+
+ res\drawable-small
+ 1
+
+
+
+
+ res\drawable-normal
+ 1
+
+
+
+
+ res\drawable-large
+ 1
+
+
+
+
+ res\drawable-xlarge
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 0
+
+
+
+
+ 1
+ .framework
+
+
+ 0
+
+
+
+
+ 1
+ .dylib
+
+
+ 0
+ .dll;.bpl
+
+
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 0
+ .bpl
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+
+
+ Contents\Resources
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 0
+
+
+
+
+ 1
+
+
+ 1
+
+
+
+
+ Assets
+ 1
+
+
+ Assets
+ 1
+
+
+
+
+ Assets
+ 1
+
+
+ Assets
+ 1
+
+
diff --git a/windows/src/buildtools/stockeditor/StockMessageEditor.pas b/windows/src/buildtools/stockeditor/StockMessageEditor.pas
index b0ca36e3db..e5705bbac6 100644
--- a/windows/src/buildtools/stockeditor/StockMessageEditor.pas
+++ b/windows/src/buildtools/stockeditor/StockMessageEditor.pas
@@ -106,11 +106,25 @@ uses
{ TfrmMessageEditor }
-const
- StockFilePath_Messages = CSourceRootPath+'\desktop\branding\'+StockFileName_Messages;
- StockFilePath_DesktopPot = CSourceRootPath+'\desktop\branding\desktop.pot';
- CMessageIdentifierConsts = CSourceRootPath+'\global\delphi\cust\MessageIdentifierConsts.pas';
- CMessageDefaults = CSourceRootPath+'\global\delphi\cust\MessageDefaults.pas';
+function StockFilePath_Messages: string;
+begin
+ Result := CSourceRootPath+'\desktop\branding\'+StockFileName_Messages;
+end;
+
+function StockFilePath_DesktopPot: string;
+begin
+ Result := CSourceRootPath+'\desktop\branding\desktop.pot';
+end;
+
+function CMessageIdentifierConsts: string;
+begin
+ Result := CSourceRootPath+'\global\delphi\cust\MessageIdentifierConsts.pas';
+end;
+
+function CMessageDefaults: string;
+begin
+ Result := CSourceRootPath+'\global\delphi\cust\MessageDefaults.pas';
+end;
procedure TfrmStockMessageEditor.FormCreate(Sender: TObject);
var