spiegel-keyman/developer/src/tike/project/Keyman.Developer.System.Project.kpsProjectFileAction.pas
Marc Durdin 1da2600818
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
feat(developer): run project validation from IDE
When option 'SkipMetadataFiles' is not set in the project (inverse of
'Build metadata files for Keyman Cloud' in Project Settings dialog),
then will run the validation step and generate .keyboard_info /
.model_info from the IDE. Also add corresponding log messages (and add
formatting for some others that were missing).

Fixes: #16068
Test-bot: skip
2026-06-08 14:26:39 +02:00

49 lines
1.1 KiB
ObjectPascal

unit Keyman.Developer.System.Project.kpsProjectFileAction;
interface
uses
System.SysUtils,
Keyman.Developer.System.Project.kpsProjectFile,
Keyman.Developer.System.Project.ProjectFile,
Keyman.Developer.System.Project.ProjectFiles,
Keyman.Developer.System.Project.ProjectFileType,
Keyman.Developer.System.Project.ProjectLog,
Keyman.Developer.System.KmcWrapper,
KPSFile;
type
TkpsProjectFileAction = class(TkpsProjectFile)
public
function CompilePackage: Boolean;
function Clean: Boolean;
end;
implementation
function TkpsProjectFileAction.CompilePackage: Boolean;
var
w: TKmcWrapper;
begin
w := TKmcWrapper.Create;
try
Result := w.Compile(Self, FileName, TargetFilename, False);
if not OwnerProject.Options.SkipMetadataFiles then
Result := Result and w.CompileForPublishing(Self, OwnerProject.FileName, False);
// TODO(lowpri): FDebug flag
finally
w.Free;
end;
end;
function TkpsProjectFileAction.Clean: Boolean;
begin
CleanFile(OutputFileName);
CleanFile(TargetInstallerFilename); // I4737
Result := True;
end;
initialization
RegisterProjectFileType('.kps', TkpsProjectFileAction);
end.