From dac6e4929f537620d34e2bcda0cd9ba6e2ea2a9a Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Thu, 10 Aug 2017 19:28:42 +0700 Subject: [PATCH] Remove SourceRootPath hard coded dependency --- windows/src/Makefile | 22 +- .../buildtools/devtools/DevIncludePaths.pas | 5 +- .../buildtools/devtools/SourceRootPath.pas | 55 ++ windows/src/buildtools/devtools/devtools.dpr | 4 +- .../src/buildtools/devtools/devtools.dproj | 2 +- .../buildtools/stockeditor/StockEditor.dpr | 2 +- .../buildtools/stockeditor/StockEditor.dproj | 581 ++++++++++-------- .../stockeditor/StockMessageEditor.pas | 24 +- 8 files changed, 396 insertions(+), 299 deletions(-) create mode 100644 windows/src/buildtools/devtools/SourceRootPath.pas 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/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/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.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 @@ -
CompilerErrorsForm
@@ -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 @@
frmStockMessageEditorMoveToGroup
- + @@ -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