IDE: delete not needed project rc file

git-svn-id: trunk@22851 -
This commit is contained in:
mattias 2009-11-28 14:47:26 +00:00
parent 5fd00cffab
commit 8ca12569f2
3 changed files with 24 additions and 9 deletions

View File

@ -9832,7 +9832,6 @@ var
TargetExeName: String;
err : TFPCErrorType;
TargetExeDirectory: String;
TargetOS: String;
begin
if Project1.MainUnitInfo=nil then begin
// this project has not source to compile
@ -9984,12 +9983,10 @@ begin
// create manifest
if Project1.Resources.XPManifest.UseManifest and (Project1.MainUnitID>=0)
and Project1.Resources.XPManifest.NeedManifest(Project1.Resources)
then begin
TargetOS:=MainBuildBoss.GetTargetOS(true);
if (TargetOS='win32') or (TargetOS='win64') then begin
Result:=Project1.Resources.XPManifest.CreateManifestFile(TargetExeName);
if not (Result in [mrOk,mrIgnore]) then exit;
end;
Result:=Project1.Resources.XPManifest.CreateManifestFile(TargetExeName);
if not (Result in [mrOk,mrIgnore]) then exit;
end;
// execute compilation tool 'Before'

View File

@ -38,7 +38,7 @@ interface
uses
Classes, SysUtils, Controls, LCLProc, LResources, FileUtil, Laz_XMLCfg,
ProjectIntf, ProjectResourcesIntf, LazarusIDEStrConsts,
Dialogs, ProjectIntf, ProjectResourcesIntf, LazarusIDEStrConsts,
W32VersionInfo, W32Manifest, ProjectIcon, IDEProcs, DialogProcs,
CodeToolManager, CodeCache;
@ -598,7 +598,9 @@ procedure TProjectResources.UpdateCodeBuffers;
begin
if HasSystemResources then
UpdateCodeBuffer(rcFileName, FSystemResources.Text);
UpdateCodeBuffer(rcFileName, FSystemResources.Text)
else if FilenameIsAbsolute(rcFileName) and FileExistsUTF8(rcFileName) then
DeleteFileInteractive(rcFileName,[mbRetry]);
if FLrsIncludeAllowed and HasLazarusResources then
UpdateCodeBuffer(lrsFileName, FLazarusResources.Text);
end;

View File

@ -53,6 +53,7 @@ type
public
function UpdateResources(AResources: TAbstractProjectResources; const MainFilename: string): Boolean; override;
function CreateManifestFile(ExeFilename: string): TModalResult;
function NeedManifest(AResources: TAbstractProjectResources): boolean;
property UseManifest: boolean read FUseManifest write SetUseManifest;
property ManifestName: string read FManifestName;
@ -103,7 +104,7 @@ function TProjectXPManifest.UpdateResources(AResources: TAbstractProjectResource
begin
Result := True;
if not UseManifest then
if not NeedManifest(AResources) then
Exit;
SetFileNames(MainFilename);
@ -131,6 +132,21 @@ begin
Result:=SaveCodeBuffer(Code);
end;
function TProjectXPManifest.NeedManifest(AResources: TAbstractProjectResources
): boolean;
var
TargetOS: String;
begin
Result:=false;
if not UseManifest then exit;
if AResources.Project=nil then exit;
TargetOS:=AResources.Project.LazCompilerOptions.TargetOS;
if (TargetOS='') or (TargetOS='default') then
TargetOS:=GetDefaultTargetOS;
if (TargetOS<>'win32') and (TargetOS<>'win64') then exit;
Result:=true;
end;
end.