mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 05:59:27 +02:00
* rename Packages dir to Archives dir
* use local configuration dirs and files git-svn-id: trunk@10075 -
This commit is contained in:
parent
23ee7a9415
commit
c80c97739c
@ -47,20 +47,11 @@ Type
|
|||||||
{ TMakeTool }
|
{ TMakeTool }
|
||||||
|
|
||||||
function TMakeTool.GetConfigFileName: String;
|
function TMakeTool.GetConfigFileName: String;
|
||||||
var
|
|
||||||
G : Boolean;
|
|
||||||
begin
|
begin
|
||||||
if HasOption('C','config-file') then
|
if HasOption('C','config-file') then
|
||||||
Result:=GetOptionValue('C','config-file')
|
Result:=GetOptionValue('C','config-file')
|
||||||
else
|
else
|
||||||
begin
|
Result:=GetAppConfigFile(IsSuperUser,False);
|
||||||
{$ifdef unix}
|
|
||||||
g:=(fpgetuid=0);
|
|
||||||
{$else}
|
|
||||||
g:=true;
|
|
||||||
{$endif}
|
|
||||||
Result:=GetAppConfigFile(G,False);
|
|
||||||
end
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -105,7 +96,7 @@ end;
|
|||||||
procedure TMakeTool.MaybeCreateLocalDirs;
|
procedure TMakeTool.MaybeCreateLocalDirs;
|
||||||
begin
|
begin
|
||||||
ForceDirectories(GlobalOptions.BuildDir);
|
ForceDirectories(GlobalOptions.BuildDir);
|
||||||
ForceDirectories(GlobalOptions.PackagesDir);
|
ForceDirectories(GlobalOptions.ArchivesDir);
|
||||||
ForceDirectories(GlobalOptions.CompilerConfigDir);
|
ForceDirectories(GlobalOptions.CompilerConfigDir);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -53,6 +53,11 @@ const
|
|||||||
type
|
type
|
||||||
EPackagerError = class(Exception);
|
EPackagerError = class(Exception);
|
||||||
|
|
||||||
|
{$if defined(VER2_2) and defined(WINDOWS)}
|
||||||
|
Function GetAppConfigDir(Global : Boolean) : String;
|
||||||
|
Function GetAppConfigFile(Global : Boolean; SubDir : Boolean) : String;
|
||||||
|
{$endif VER2_2 AND WINDOWS}
|
||||||
|
|
||||||
// Logging
|
// Logging
|
||||||
Function StringToLogLevels (S : String) : TLogLevels;
|
Function StringToLogLevels (S : String) : TLogLevels;
|
||||||
Function LogLevelsToString (V : TLogLevels): String;
|
Function LogLevelsToString (V : TLogLevels): String;
|
||||||
@ -99,6 +104,64 @@ uses
|
|||||||
pkgmessages;
|
pkgmessages;
|
||||||
|
|
||||||
|
|
||||||
|
function FPPkgGetVendorName:string;
|
||||||
|
begin
|
||||||
|
{$ifdef unix}
|
||||||
|
result:='fpc';
|
||||||
|
{$else}
|
||||||
|
result:='FreePascal'
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function FPPkgGetApplicationName:string;
|
||||||
|
begin
|
||||||
|
{$ifdef unix}
|
||||||
|
result:='fppkg';
|
||||||
|
{$else}
|
||||||
|
result:='Packages'
|
||||||
|
{$endif}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{$if defined(VER2_2) and defined(WINDOWS)}
|
||||||
|
Function SHGetFolderPath(Ahwnd: HWND; Csidl: Integer; Token: THandle; Flags: DWord; Path: PChar): HRESULT;
|
||||||
|
stdcall;external 'shfolder' name 'SHGetFolderPathA';
|
||||||
|
|
||||||
|
Function GetAppConfigDir(Global : Boolean) : String;
|
||||||
|
Const
|
||||||
|
CSIDL_LOCAL_APPDATA = $001C; { %USERPROFILE%\Local Settings\Application Data (non roaming) }
|
||||||
|
CSIDL_COMMON_APPDATA = $0023; { %PROFILESPATH%\All Users\Application Data }
|
||||||
|
CSIDL_FLAG_CREATE = $8000; { (force creation of requested folder if it doesn't exist yet) }
|
||||||
|
Var
|
||||||
|
APath : Array[0..MAX_PATH] of char;
|
||||||
|
ID : integer;
|
||||||
|
begin
|
||||||
|
If Global then
|
||||||
|
ID:=CSIDL_COMMON_APPDATA
|
||||||
|
else
|
||||||
|
ID:=CSIDL_LOCAL_APPDATA;
|
||||||
|
if SHGetFolderPath(0,ID or CSIDL_FLAG_CREATE,0,0,@APATH[0])=S_OK then
|
||||||
|
Result:=IncludeTrailingPathDelimiter(StrPas(@APath[0]))
|
||||||
|
If (Result<>'') then
|
||||||
|
begin
|
||||||
|
if FPPkgGetVendorName<>'' then
|
||||||
|
Result:=IncludeTrailingPathDelimiter(Result+FPPkgGetVendorName);
|
||||||
|
Result:=Result+ApplicationName;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Result:=DGetAppConfigDir(Global);
|
||||||
|
end;
|
||||||
|
|
||||||
|
Function GetAppConfigFile(Global : Boolean; SubDir : Boolean) : String;
|
||||||
|
begin
|
||||||
|
Result:=IncludeTrailingPathDelimiter(GetAppConfigDir(Global));
|
||||||
|
if SubDir then
|
||||||
|
Result:=IncludeTrailingPathDelimiter(Result+'Config');
|
||||||
|
Result:=Result+ApplicationName+ConfigExtension;
|
||||||
|
end;
|
||||||
|
{$endif VER2_2 AND WINDOWS}
|
||||||
|
|
||||||
function StringToLogLevels(S: String): TLogLevels;
|
function StringToLogLevels(S: String): TLogLevels;
|
||||||
Var
|
Var
|
||||||
I : integer;
|
I : integer;
|
||||||
@ -341,9 +404,13 @@ begin
|
|||||||
{$ifdef unix}
|
{$ifdef unix}
|
||||||
result:=(fpGetUID=0);
|
result:=(fpGetUID=0);
|
||||||
{$else unix}
|
{$else unix}
|
||||||
result:=true;
|
result:=false;
|
||||||
{$endif unix}
|
{$endif unix}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
initialization
|
||||||
|
OnGetVendorName:=@FPPkgGetVendorName;
|
||||||
|
OnGetApplicationName:=@FPPkgGetApplicationName;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -190,7 +190,7 @@ begin
|
|||||||
if CurrentPackage.IsLocalPackage then
|
if CurrentPackage.IsLocalPackage then
|
||||||
Result:=CurrentPackage.FileName
|
Result:=CurrentPackage.FileName
|
||||||
else
|
else
|
||||||
Result:=GlobalOptions.PackagesDir+CurrentPackage.FileName;
|
Result:=GlobalOptions.ArchivesDir+CurrentPackage.FileName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Const
|
|||||||
MirrorsFileName = 'mirrors.xml';
|
MirrorsFileName = 'mirrors.xml';
|
||||||
PackagesFileName = 'packages.xml';
|
PackagesFileName = 'packages.xml';
|
||||||
VersionsFileName = 'versions-%s.dat';
|
VersionsFileName = 'versions-%s.dat';
|
||||||
CurrentConfigVersion = 2;
|
CurrentConfigVersion = 3;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ Type
|
|||||||
FRemoteRepository,
|
FRemoteRepository,
|
||||||
FLocalRepository,
|
FLocalRepository,
|
||||||
FCompilerConfigDir,
|
FCompilerConfigDir,
|
||||||
FPackagesDir,
|
FArchivesDir,
|
||||||
FBuildDir,
|
FBuildDir,
|
||||||
FDownloader,
|
FDownloader,
|
||||||
FDefaultCompilerConfig,
|
FDefaultCompilerConfig,
|
||||||
@ -63,7 +63,7 @@ Type
|
|||||||
Property RemoteRepository : String Index 2 Read GetOptString Write SetOptString;
|
Property RemoteRepository : String Index 2 Read GetOptString Write SetOptString;
|
||||||
Property LocalRepository : String Index 3 Read GetOptString Write SetOptString;
|
Property LocalRepository : String Index 3 Read GetOptString Write SetOptString;
|
||||||
Property BuildDir : String Index 4 Read GetOptString Write SetOptString;
|
Property BuildDir : String Index 4 Read GetOptString Write SetOptString;
|
||||||
Property PackagesDir : String Index 5 Read GetOptString Write SetOptString;
|
Property ArchivesDir : String Index 5 Read GetOptString Write SetOptString;
|
||||||
Property CompilerConfigDir : String Index 6 Read GetOptString Write SetOptString;
|
Property CompilerConfigDir : String Index 6 Read GetOptString Write SetOptString;
|
||||||
Property DefaultCompilerConfig : String Index 8 Read GetOptString Write SetOptString;
|
Property DefaultCompilerConfig : String Index 8 Read GetOptString Write SetOptString;
|
||||||
Property FPMakeCompilerConfig : String Index 9 Read GetOptString Write SetOptString;
|
Property FPMakeCompilerConfig : String Index 9 Read GetOptString Write SetOptString;
|
||||||
@ -139,7 +139,7 @@ Const
|
|||||||
KeyRemoteMirrorsURL = 'RemoteMirrors';
|
KeyRemoteMirrorsURL = 'RemoteMirrors';
|
||||||
KeyRemoteRepository = 'RemoteRepository';
|
KeyRemoteRepository = 'RemoteRepository';
|
||||||
KeyLocalRepository = 'LocalRepository';
|
KeyLocalRepository = 'LocalRepository';
|
||||||
KeyPackagesDir = 'PackagesDir';
|
KeyArchivesDir = 'ArchivesDir';
|
||||||
KeyBuildDir = 'BuildDir';
|
KeyBuildDir = 'BuildDir';
|
||||||
KeyCompilerConfigDir = 'CompilerConfigDir';
|
KeyCompilerConfigDir = 'CompilerConfigDir';
|
||||||
KeyCompilerConfig = 'CompilerConfig';
|
KeyCompilerConfig = 'CompilerConfig';
|
||||||
@ -172,7 +172,7 @@ begin
|
|||||||
2 : Result:=FRemoteRepository;
|
2 : Result:=FRemoteRepository;
|
||||||
3 : Result:=FLocalRepository;
|
3 : Result:=FLocalRepository;
|
||||||
4 : Result:=FBuildDir;
|
4 : Result:=FBuildDir;
|
||||||
5 : Result:=FPackagesDir;
|
5 : Result:=FArchivesDir;
|
||||||
6 : Result:=FCompilerConfigDir;
|
6 : Result:=FCompilerConfigDir;
|
||||||
8 : Result:=FDefaultCompilerConfig;
|
8 : Result:=FDefaultCompilerConfig;
|
||||||
9 : Result:=FFPMakeCompilerConfig;
|
9 : Result:=FFPMakeCompilerConfig;
|
||||||
@ -191,7 +191,7 @@ begin
|
|||||||
2 : FRemoteRepository:=AValue;
|
2 : FRemoteRepository:=AValue;
|
||||||
3 : FLocalRepository:=AValue;
|
3 : FLocalRepository:=AValue;
|
||||||
4 : FBuildDir:=FixPath(AValue);
|
4 : FBuildDir:=FixPath(AValue);
|
||||||
5 : FPackagesDir:=FixPath(AValue);
|
5 : FArchivesDir:=FixPath(AValue);
|
||||||
6 : FCompilerConfigDir:=FixPath(AValue);
|
6 : FCompilerConfigDir:=FixPath(AValue);
|
||||||
8 : FDefaultCompilerConfig:=AValue;
|
8 : FDefaultCompilerConfig:=AValue;
|
||||||
9 : FFPMakeCompilerConfig:=AValue;
|
9 : FFPMakeCompilerConfig:=AValue;
|
||||||
@ -222,8 +222,6 @@ end;
|
|||||||
|
|
||||||
|
|
||||||
Procedure TGlobalOptions.InitGlobalDefaults;
|
Procedure TGlobalOptions.InitGlobalDefaults;
|
||||||
var
|
|
||||||
LocalDir : String;
|
|
||||||
begin
|
begin
|
||||||
FConfigVersion:=CurrentConfigVersion;
|
FConfigVersion:=CurrentConfigVersion;
|
||||||
// Retrieve Local fppkg directory
|
// Retrieve Local fppkg directory
|
||||||
@ -231,21 +229,19 @@ begin
|
|||||||
if IsSuperUser then
|
if IsSuperUser then
|
||||||
begin
|
begin
|
||||||
if DirectoryExists('/usr/local/lib/fpc') then
|
if DirectoryExists('/usr/local/lib/fpc') then
|
||||||
LocalDir:='/usr/local/lib/fpc/fppkg/'
|
FLocalRepository:='/usr/local/lib/fpc/fppkg/'
|
||||||
else
|
else
|
||||||
LocalDir:='/usr/lib/fpc/fppkg/';
|
FLocalRepository:='/usr/lib/fpc/fppkg/';
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
LocalDir:=IncludeTrailingPathDelimiter(GetEnvironmentVariable('HOME'))+'.fppkg/';
|
FLocalRepository:=IncludeTrailingPathDelimiter(GetEnvironmentVariable('HOME'))+'.fppkg/';
|
||||||
{$else}
|
{$else}
|
||||||
// Change as needed on all OS-es...
|
FLocalRepository:=IncludeTrailingPathDelimiter(GetAppConfigDir(IsSuperUser));
|
||||||
LocalDir:=ExtractFilePath(Paramstr(0))+'fppkg'+PathDelim;
|
|
||||||
{$endif}
|
{$endif}
|
||||||
// Directories
|
// Directories
|
||||||
FBuildDir:=LocalDir+'build'+PathDelim;
|
FBuildDir:=FLocalRepository+'build'+PathDelim;
|
||||||
FPackagesDir:=LocalDir+'packages'+PathDelim;
|
FArchivesDir:=FLocalRepository+'archives'+PathDelim;
|
||||||
FCompilerConfigDir:=LocalDir+'config'+PathDelim;
|
FCompilerConfigDir:=FLocalRepository+'config'+PathDelim;
|
||||||
FLocalRepository:=LocalDir;
|
|
||||||
// Remote
|
// Remote
|
||||||
FRemoteMirrorsURL:=DefaultMirrorsURL;
|
FRemoteMirrorsURL:=DefaultMirrorsURL;
|
||||||
FRemoteRepository:=DefaultRemoteRepository;
|
FRemoteRepository:=DefaultRemoteRepository;
|
||||||
@ -281,6 +277,13 @@ begin
|
|||||||
begin
|
begin
|
||||||
FRemoteRepository:='auto';
|
FRemoteRepository:='auto';
|
||||||
end;
|
end;
|
||||||
|
if FConfigVersion<3 then
|
||||||
|
begin
|
||||||
|
// Directories
|
||||||
|
FBuildDir:=FLocalRepository+'build'+PathDelim;
|
||||||
|
FArchivesDir:=FLocalRepository+'archives'+PathDelim;
|
||||||
|
FCompilerConfigDir:=FLocalRepository+'config'+PathDelim;
|
||||||
|
end;
|
||||||
if (FConfigVersion>CurrentConfigVersion) then
|
if (FConfigVersion>CurrentConfigVersion) then
|
||||||
Error(SErrUnsupportedConfigVersion,[AFileName]);
|
Error(SErrUnsupportedConfigVersion,[AFileName]);
|
||||||
end;
|
end;
|
||||||
@ -290,7 +293,7 @@ begin
|
|||||||
FRemoteRepository:=ReadString(SDefaults,KeyRemoteRepository,FRemoteRepository);
|
FRemoteRepository:=ReadString(SDefaults,KeyRemoteRepository,FRemoteRepository);
|
||||||
FLocalRepository:=ReadString(SDefaults,KeyLocalRepository,FLocalRepository);
|
FLocalRepository:=ReadString(SDefaults,KeyLocalRepository,FLocalRepository);
|
||||||
FBuildDir:=FixPath(ReadString(SDefaults,KeyBuildDir,FBuildDir));
|
FBuildDir:=FixPath(ReadString(SDefaults,KeyBuildDir,FBuildDir));
|
||||||
FPackagesDir:=FixPath(ReadString(SDefaults,KeyPackagesDir,FPackagesDir));
|
FArchivesDir:=FixPath(ReadString(SDefaults,KeyArchivesDir,FArchivesDir));
|
||||||
FCompilerConfigDir:=FixPath(ReadString(SDefaults,KeyCompilerConfigDir,FCompilerConfigDir));
|
FCompilerConfigDir:=FixPath(ReadString(SDefaults,KeyCompilerConfigDir,FCompilerConfigDir));
|
||||||
FDefaultCompilerConfig:=ReadString(SDefaults,KeyCompilerConfig,FDefaultCompilerConfig);
|
FDefaultCompilerConfig:=ReadString(SDefaults,KeyCompilerConfig,FDefaultCompilerConfig);
|
||||||
FFPMakeCompilerConfig:=ReadString(SDefaults,KeyFPMakeCompilerConfig,FFPMakeCompilerConfig);
|
FFPMakeCompilerConfig:=ReadString(SDefaults,KeyFPMakeCompilerConfig,FFPMakeCompilerConfig);
|
||||||
@ -314,7 +317,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
WriteInteger(SDefaults,KeyConfigVersion,CurrentConfigVersion);
|
WriteInteger(SDefaults,KeyConfigVersion,CurrentConfigVersion);
|
||||||
WriteString(SDefaults,KeyBuildDir,FBuildDir);
|
WriteString(SDefaults,KeyBuildDir,FBuildDir);
|
||||||
WriteString(SDefaults,KeyPackagesDir,FPackagesDir);
|
WriteString(SDefaults,KeyArchivesDir,FArchivesDir);
|
||||||
WriteString(SDefaults,KeyCompilerConfigDir,FCompilerConfigDir);
|
WriteString(SDefaults,KeyCompilerConfigDir,FCompilerConfigDir);
|
||||||
WriteString(SDefaults,KeyLocalRepository,FLocalRepository);
|
WriteString(SDefaults,KeyLocalRepository,FLocalRepository);
|
||||||
WriteString(SDefaults,KeyRemoteMirrorsURL,FRemoteMirrorsURL);
|
WriteString(SDefaults,KeyRemoteMirrorsURL,FRemoteMirrorsURL);
|
||||||
|
Loading…
Reference in New Issue
Block a user