mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-08-18 07:29:07 +02:00
releasecreator: added option fpcdir
This commit is contained in:
parent
f00d79df31
commit
8a47a8d61a
@ -41,6 +41,7 @@ type
|
|||||||
Pas2jsVersion: string;
|
Pas2jsVersion: string;
|
||||||
Simulate: boolean;
|
Simulate: boolean;
|
||||||
SourceDir: string; // cloned git release
|
SourceDir: string; // cloned git release
|
||||||
|
FPCDir: string;
|
||||||
Verbosity: integer;
|
Verbosity: integer;
|
||||||
constructor Create(TheOwner: TComponent); override;
|
constructor Create(TheOwner: TComponent); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -96,7 +97,7 @@ begin
|
|||||||
// quick check parameters
|
// quick check parameters
|
||||||
ErrorMsg:=CheckOptions('hb:c:s:l:qvx', ['help', 'config:',
|
ErrorMsg:=CheckOptions('hb:c:s:l:qvx', ['help', 'config:',
|
||||||
'builddir:', 'sourcedir:', 'quiet', 'verbose', 'execute',
|
'builddir:', 'sourcedir:', 'quiet', 'verbose', 'execute',
|
||||||
'fpcrelease:', 'fpcdevel:', 'fpc2:', 'fpc2target:',
|
'fpcrelease:', 'fpcdevel:', 'fpcdir:', 'fpc2:', 'fpc2target:',
|
||||||
'git:', 'make:', 'zip:']);
|
'git:', 'make:', 'zip:']);
|
||||||
if ErrorMsg<>'' then
|
if ErrorMsg<>'' then
|
||||||
Err(ErrorMsg);
|
Err(ErrorMsg);
|
||||||
@ -132,6 +133,7 @@ begin
|
|||||||
SourceDir:=GetOption_Directory('s','sourcedir',nil);
|
SourceDir:=GetOption_Directory('s','sourcedir',nil);
|
||||||
if SourceDir='' then
|
if SourceDir='' then
|
||||||
Err('missing source directory');
|
Err('missing source directory');
|
||||||
|
FPCDir:=GetOption_Directory(' ','fpcdir',nil);
|
||||||
FPCReleaseFilename:=GetOption_Executable(' ','fpcrelease',nil);
|
FPCReleaseFilename:=GetOption_Executable(' ','fpcrelease',nil);
|
||||||
FPCDevelFilename:=GetOption_Executable(' ','fpcdevel',nil);
|
FPCDevelFilename:=GetOption_Executable(' ','fpcdevel',nil);
|
||||||
FPC2Filename:=GetOption_Executable(' ','fpc2',nil);
|
FPC2Filename:=GetOption_Executable(' ','fpc2',nil);
|
||||||
@ -140,10 +142,16 @@ begin
|
|||||||
MakeFilename:=GetOption_Executable(' ','make',@GetDefaultMake);
|
MakeFilename:=GetOption_Executable(' ','make',@GetDefaultMake);
|
||||||
ZipFilename:=GetOption_Executable(' ','zip',@GetDefaultZip);
|
ZipFilename:=GetOption_Executable(' ','zip',@GetDefaultZip);
|
||||||
|
|
||||||
|
if FPCDir='' then
|
||||||
|
FPCDir:=GetEnvironmentVariable('FPCDIR');
|
||||||
|
if FPCDir='' then
|
||||||
|
FPCDir:=SourceDir+'compiler'+PathDelim;
|
||||||
|
|
||||||
// write options
|
// write options
|
||||||
if Verbosity>=0 then begin
|
if Verbosity>=0 then begin
|
||||||
Log(etInfo,'SourceDir: "'+SourceDir+'"');
|
Log(etInfo,'SourceDir: "'+SourceDir+'"');
|
||||||
Log(etInfo,'BuildDir: "'+BuildDir+'"');
|
Log(etInfo,'BuildDir: "'+BuildDir+'"');
|
||||||
|
Log(etInfo,'FPCDir: "'+FPCDir+'"');
|
||||||
Log(etInfo,'FPCRelease: "'+FPCReleaseFilename+'"');
|
Log(etInfo,'FPCRelease: "'+FPCReleaseFilename+'"');
|
||||||
Log(etInfo,'FPCDevel: "'+FPCDevelFilename+'"');
|
Log(etInfo,'FPCDevel: "'+FPCDevelFilename+'"');
|
||||||
Log(etInfo,'FPC2: "'+FPC2Filename+'"');
|
Log(etInfo,'FPC2: "'+FPC2Filename+'"');
|
||||||
@ -163,6 +171,8 @@ begin
|
|||||||
Err('BuildDir missing: "'+BuildDir+'"');
|
Err('BuildDir missing: "'+BuildDir+'"');
|
||||||
if not DirectoryExists(SourceDir) then
|
if not DirectoryExists(SourceDir) then
|
||||||
Err('SourceDir missing: "'+SourceDir+'"');
|
Err('SourceDir missing: "'+SourceDir+'"');
|
||||||
|
if not DirectoryExists(FPCDir) then
|
||||||
|
Err('FPCDir missing: "'+FPCDir+'"');
|
||||||
CheckExecutable(FPCReleaseFilename,'fpcrelease');
|
CheckExecutable(FPCReleaseFilename,'fpcrelease');
|
||||||
CheckExecutable(FPCDevelFilename,'fpcdevel');
|
CheckExecutable(FPCDevelFilename,'fpcdevel');
|
||||||
if FPC2Filename<>'' then
|
if FPC2Filename<>'' then
|
||||||
@ -216,8 +226,10 @@ begin
|
|||||||
writeln;
|
writeln;
|
||||||
writeln('Required parameters:');
|
writeln('Required parameters:');
|
||||||
writeln('-s <filename>, --sourcedir=<filename>: git directory of the pas2js release');
|
writeln('-s <filename>, --sourcedir=<filename>: git directory of the pas2js release');
|
||||||
|
writeln('--fpcdir=<filename>: Path of fpc devel sources.');
|
||||||
|
writeln(' Used for compiling pas2js and libpas2js.');
|
||||||
writeln('--fpcrelease=<filename>: Path of released version fpc executable.');
|
writeln('--fpcrelease=<filename>: Path of released version fpc executable.');
|
||||||
writeln(' Used for pas2js and libpas2js.');
|
writeln(' Used for compiling pas2js and libpas2js.');
|
||||||
writeln('--fpcdevel=<filename>: Path of development version fpc executable.');
|
writeln('--fpcdevel=<filename>: Path of development version fpc executable.');
|
||||||
writeln(' Used for compiling the other tools.');
|
writeln(' Used for compiling the other tools.');
|
||||||
writeln('--fpc2=<filename>: Path of a secondary fpc for building a second libpas2js.');
|
writeln('--fpc2=<filename>: Path of a secondary fpc for building a second libpas2js.');
|
||||||
@ -293,7 +305,7 @@ begin
|
|||||||
sl:=TStringList.Create;
|
sl:=TStringList.Create;
|
||||||
try
|
try
|
||||||
// read pas2js version number from Pascal sources
|
// read pas2js version number from Pascal sources
|
||||||
Filename:=SourceDir+SetDirSeparators('compiler/packages/pastojs/src/pas2jscompiler.pp');
|
Filename:=FPCDir+SetDirSeparators('packages/pastojs/src/pas2jscompiler.pp');
|
||||||
if Verbosity>0 then
|
if Verbosity>0 then
|
||||||
Log(etInfo,'Reading version from "'+Filename+'" ...');
|
Log(etInfo,'Reading version from "'+Filename+'" ...');
|
||||||
if not FileExists(Filename) then
|
if not FileExists(Filename) then
|
||||||
@ -326,7 +338,7 @@ begin
|
|||||||
Log(etInfo,'Pas2js version is '+Pas2jsVersion);
|
Log(etInfo,'Pas2js version is '+Pas2jsVersion);
|
||||||
|
|
||||||
// read version number from rtl.js
|
// read version number from rtl.js
|
||||||
Filename:=SourceDir+SetDirSeparators('compiler/utils/pas2js/dist/rtl.js');
|
Filename:=FPCDir+SetDirSeparators('utils/pas2js/dist/rtl.js');
|
||||||
if Verbosity>0 then
|
if Verbosity>0 then
|
||||||
Log(etInfo,'Reading version from "'+Filename+'" ...');
|
Log(etInfo,'Reading version from "'+Filename+'" ...');
|
||||||
if not FileExists(Filename) then
|
if not FileExists(Filename) then
|
||||||
@ -360,11 +372,11 @@ procedure TPas2jsReleaseCreator.CheckForgottenWriteln;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Check(SourceDir+'compiler'+PathDelim+'packages'+PathDelim+'fcl-js'+PathDelim+'src');
|
Check(FPCDir+'packages'+PathDelim+'fcl-js'+PathDelim+'src');
|
||||||
Check(SourceDir+'compiler'+PathDelim+'packages'+PathDelim+'fcl-json'+PathDelim+'src');
|
Check(FPCDir+'packages'+PathDelim+'fcl-json'+PathDelim+'src');
|
||||||
Check(SourceDir+'compiler'+PathDelim+'packages'+PathDelim+'fcl-passrc'+PathDelim+'src');
|
Check(FPCDir+'packages'+PathDelim+'fcl-passrc'+PathDelim+'src');
|
||||||
Check(SourceDir+'compiler'+PathDelim+'packages'+PathDelim+'pastojs'+PathDelim+'src');
|
Check(FPCDir+'packages'+PathDelim+'pastojs'+PathDelim+'src');
|
||||||
Check(SourceDir+'compiler'+PathDelim+'utils'+PathDelim+'pas2js');
|
Check(FPCDir+'utils'+PathDelim+'pas2js');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPas2jsReleaseCreator.ParseFPCTargetOption(const LongOpt: string; out
|
procedure TPas2jsReleaseCreator.ParseFPCTargetOption(const LongOpt: string; out
|
||||||
@ -462,16 +474,15 @@ end;
|
|||||||
|
|
||||||
procedure TPas2jsReleaseCreator.BuildTools(const TargetOS, TargetCPU: string);
|
procedure TPas2jsReleaseCreator.BuildTools(const TargetOS, TargetCPU: string);
|
||||||
var
|
var
|
||||||
WorkDir, SrcCompilerDir, PkgSrcDir, UnitOutDir, CurBinDir: String;
|
WorkDir, PkgSrcDir, UnitOutDir, CurBinDir: String;
|
||||||
SharedParams, TheParams: TStringList;
|
SharedParams, TheParams: TStringList;
|
||||||
begin
|
begin
|
||||||
SharedParams:=TStringList.Create;
|
SharedParams:=TStringList.Create;
|
||||||
TheParams:=TStringList.Create;
|
TheParams:=TStringList.Create;
|
||||||
try
|
try
|
||||||
SrcCompilerDir:=SourceDir+'compiler'+PathDelim;
|
WorkDir:=FPCDir+'utils'+PathDelim+'pas2js';
|
||||||
WorkDir:=SrcCompilerDir+'utils'+PathDelim+'pas2js';
|
|
||||||
|
|
||||||
PkgSrcDir:=SrcCompilerDir+'packages'+PathDelim;
|
PkgSrcDir:=FPCDir+'packages'+PathDelim;
|
||||||
SharedParams.Add('-Fu'+PkgSrcDir+'fcl-js'+PathDelim+'src');
|
SharedParams.Add('-Fu'+PkgSrcDir+'fcl-js'+PathDelim+'src');
|
||||||
SharedParams.Add('-Fu'+PkgSrcDir+'fcl-json'+PathDelim+'src');
|
SharedParams.Add('-Fu'+PkgSrcDir+'fcl-json'+PathDelim+'src');
|
||||||
SharedParams.Add('-Fu'+PkgSrcDir+'fcl-passrc'+PathDelim+'src');
|
SharedParams.Add('-Fu'+PkgSrcDir+'fcl-passrc'+PathDelim+'src');
|
||||||
@ -591,7 +602,7 @@ procedure TPas2jsReleaseCreator.CopyRTLjs;
|
|||||||
var
|
var
|
||||||
SrcFilename, DestFilename: String;
|
SrcFilename, DestFilename: String;
|
||||||
begin
|
begin
|
||||||
SrcFilename:=SourceDir+SetDirSeparators('compiler/utils/pas2js/dist/rtl.js');
|
SrcFilename:=FPCDir+SetDirSeparators('utils/pas2js/dist/rtl.js');
|
||||||
DestFilename:=BuildDir_Sources+SetDirSeparators('packages/rtl/src/rtl.js');
|
DestFilename:=BuildDir_Sources+SetDirSeparators('packages/rtl/src/rtl.js');
|
||||||
if Simulate then begin
|
if Simulate then begin
|
||||||
Log(etInfo,'Simulate: Copying "'+SrcFilename+'" -> "'+DestFilename+'"');
|
Log(etInfo,'Simulate: Copying "'+SrcFilename+'" -> "'+DestFilename+'"');
|
||||||
|
Loading…
Reference in New Issue
Block a user