mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-09-22 02:19:04 +02:00
fpmake: create pas2js.cfg, added missing package dirs
This commit is contained in:
parent
8ffc23e173
commit
5d1e874c9e
63
fpmake.pp
63
fpmake.pp
@ -3,6 +3,20 @@ program fpmake;
|
|||||||
|
|
||||||
uses {$ifdef unix}cthreads,{$endif} sysutils, fpmkunit;
|
uses {$ifdef unix}cthreads,{$endif} sysutils, fpmkunit;
|
||||||
|
|
||||||
|
function FilenameIsAbsolute(const TheFilename: string):boolean;
|
||||||
|
begin
|
||||||
|
{$IFDEF WINDOWS}
|
||||||
|
// windows
|
||||||
|
Result:=((length(TheFilename)>=2) and (TheFilename[1] in ['A'..'Z','a'..'z'])
|
||||||
|
and (TheFilename[2]=':'))
|
||||||
|
or ((length(TheFilename)>=2)
|
||||||
|
and (TheFilename[1]='\') and (TheFilename[2]='\'));
|
||||||
|
{$ELSE}
|
||||||
|
// unix
|
||||||
|
Result:=(TheFilename<>'') and (TheFilename[1]='/');
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
Procedure CreateConfigFile(CfgFile,BaseDir : String);
|
Procedure CreateConfigFile(CfgFile,BaseDir : String);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
@ -32,31 +46,32 @@ begin
|
|||||||
end;
|
end;
|
||||||
if (BaseDir<>'') then
|
if (BaseDir<>'') then
|
||||||
BaseDir:=ExcludeTrailingPathDelimiter(BaseDir);
|
BaseDir:=ExcludeTrailingPathDelimiter(BaseDir);
|
||||||
if (BaseDir<>'') then
|
|
||||||
BaseDir:=ExcludeLeadingPathDelimiter(BaseDir);
|
|
||||||
Addln('#');
|
Addln('#');
|
||||||
Addln('# Minimal config file for pas2js compiler');
|
Addln('# Minimal config file for pas2js compiler');
|
||||||
Addln('#');
|
Addln('#');
|
||||||
Addln('# not yet implemented: -d is the same as #DEFINE');
|
Addln('# -d is the same as #DEFINE');
|
||||||
Addln('# not yet implemented: -u is the same as #UNDEF');
|
Addln('# -u is the same as #UNDEF');
|
||||||
Addln('#');
|
Addln('#');
|
||||||
Addln('# Write always a nice logo ;)');
|
Addln('# Write always a nice logo ;)');
|
||||||
Addln('-l');
|
Addln('-l');
|
||||||
Addln('');
|
Addln('');
|
||||||
Addln('# Display Hints, Warnings and Notes');
|
Addln('# Display Warnings, Notes and Hints');
|
||||||
Addln('-vwnh');
|
Addln('-vwnh');
|
||||||
Addln('# If you don''t want so much verbosity use');
|
Addln('# If you don''t want so much verbosity use');
|
||||||
Addln('#-vw');
|
Addln('#-vw');
|
||||||
Addln('');
|
Addln('');
|
||||||
Addln('-Fu$CfgDir/'+BASEDIR+'/rtl');
|
if FilenameIsAbsolute(BaseDir) then
|
||||||
Addln('-Fu$CfgDir/'+BASEDIR+'/fcl-base');
|
Addln('-Fu'+BaseDir+'/*')
|
||||||
Addln('-Fu$CfgDir/'+BASEDIR+'/fcl-db');
|
else
|
||||||
Addln('-Fu$CfgDir/'+BASEDIR+'/fpcunit');
|
Addln('-Fu$CfgDir/'+ExcludeLeadingPathDelimiter(BaseDir)+'/*');
|
||||||
Addln('');
|
Addln('');
|
||||||
Addln('#IFDEF nodejs');
|
Addln('#IFDEF nodejs');
|
||||||
Addln('-Jirtl.js');
|
Addln('-Jirtl.js');
|
||||||
Addln('#ENDIF');
|
Addln('#ENDIF');
|
||||||
Addln('');
|
Addln('');
|
||||||
|
Addln('# Put all generated JavaScript into one file');
|
||||||
|
Addln('-Jc');
|
||||||
|
Addln('');
|
||||||
Addln('# end.');
|
Addln('# end.');
|
||||||
Close(F);
|
Close(F);
|
||||||
end;
|
end;
|
||||||
@ -108,7 +123,7 @@ end;
|
|||||||
|
|
||||||
Var
|
Var
|
||||||
P : TPackage;
|
P : TPackage;
|
||||||
UnitDir,DemoDir,BD : String;
|
UnitDir,DemoDir,BD: String;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
With Installer do
|
With Installer do
|
||||||
@ -120,7 +135,7 @@ begin
|
|||||||
P.Description := 'Convert pascal sources to javascript.';
|
P.Description := 'Convert pascal sources to javascript.';
|
||||||
P.Email := 'michael@freepascal.org';
|
P.Email := 'michael@freepascal.org';
|
||||||
P.NeedLibC:= false;
|
P.NeedLibC:= false;
|
||||||
P.Version:='3.1.1';
|
P.Version:='3.3.1';
|
||||||
P.SourcePath.Add('compiler/utils/pas2js');
|
P.SourcePath.Add('compiler/utils/pas2js');
|
||||||
P.UnitPath.Add('compiler/utils/pas2js');
|
P.UnitPath.Add('compiler/utils/pas2js');
|
||||||
P.UnitPath.Add('compiler/packages/pastojs/src');
|
P.UnitPath.Add('compiler/packages/pastojs/src');
|
||||||
@ -175,33 +190,43 @@ begin
|
|||||||
P.Targets.AddImplicitUnit('webidltopas',False).ResourceStrings:=True;
|
P.Targets.AddImplicitUnit('webidltopas',False).ResourceStrings:=True;
|
||||||
// Determine unit files location
|
// Determine unit files location
|
||||||
BD:=IncludeTrailingPathDelimiter(P.GetBinOutputDir(Defaults.BuildCPU,Defaults.BuildOS));
|
BD:=IncludeTrailingPathDelimiter(P.GetBinOutputDir(Defaults.BuildCPU,Defaults.BuildOS));
|
||||||
UnitDir:=ExcludeTrailingPathDelimiter(Defaults.UnitInstallDir);
|
|
||||||
UnitDir:=ExcludeTrailingPathDelimiter(ExtractFilePath(UnitDir));
|
|
||||||
UnitDir:=ExcludeTrailingPathDelimiter(ExtractFilePath(UnitDir));
|
|
||||||
UnitDir:=ExtractFilePath(UnitDir);
|
|
||||||
UnitDir:=UnitDir+'pas2js'+PathDelim;
|
|
||||||
Case Installer.RunMode of
|
Case Installer.RunMode of
|
||||||
|
rmCompile,rmBuild:
|
||||||
|
begin
|
||||||
|
if not FileExists(BD+'pas2js.cfg') then
|
||||||
|
CreateConfigFile(BD+'pas2js.cfg',SetDirSeparators('../../packages'));
|
||||||
|
end;
|
||||||
rmInstall,rmArchive,rmZipInstall:
|
rmInstall,rmArchive,rmZipInstall:
|
||||||
begin
|
begin
|
||||||
|
// UnitDir = some\path\units\i386-win32\..\..\..\pas2js\
|
||||||
|
UnitDir:=ExcludeTrailingPathDelimiter(Defaults.UnitInstallDir);
|
||||||
|
UnitDir:=ExcludeTrailingPathDelimiter(ExtractFilePath(UnitDir));
|
||||||
|
UnitDir:=ExcludeTrailingPathDelimiter(ExtractFilePath(UnitDir));
|
||||||
|
UnitDir:=ExtractFilePath(UnitDir);
|
||||||
|
UnitDir:=UnitDir+'pas2js'+PathDelim;
|
||||||
// Config file
|
// Config file
|
||||||
// Create config file
|
// Create config file
|
||||||
CreateConfigFile(BD+'pas2js.cfg',ExtractRelativePath(IncludeTrailingPathDelimiter(Defaults.BinInstallDir),IncludeTrailingPathDelimiter(UnitDir)));
|
CreateConfigFile(BD+'pas2js.cfg',ExtractRelativePath(IncludeTrailingPathDelimiter(Defaults.BinInstallDir),IncludeTrailingPathDelimiter(UnitDir)));
|
||||||
P.InstallFiles.Add(BD+'pas2js.cfg',Defaults.BinInstallDir);
|
P.InstallFiles.Add(BD+'pas2js.cfg',Defaults.BinInstallDir);
|
||||||
P.InstallFiles.Add('compiler/utils/pas2js/dist/rtl.js',IncludeTrailingPathDelimiter(UnitDir)+'rtl');
|
P.InstallFiles.Add('compiler/utils/pas2js/dist/rtl.js',IncludeTrailingPathDelimiter(UnitDir)+'rtl');
|
||||||
AddPackageFiles(P.InstallFiles,'rtl',UnitDir);
|
AddPackageFiles(P.InstallFiles,'chartjs',UnitDir);
|
||||||
|
AddPackageFiles(P.InstallFiles,'dataabstract',UnitDir);
|
||||||
AddPackageFiles(P.InstallFiles,'fcl-base',UnitDir);
|
AddPackageFiles(P.InstallFiles,'fcl-base',UnitDir);
|
||||||
AddPackageFiles(P.InstallFiles,'fcl-db',UnitDir);
|
AddPackageFiles(P.InstallFiles,'fcl-db',UnitDir);
|
||||||
AddPackageFiles(P.InstallFiles,'fpcunit',UnitDir);
|
AddPackageFiles(P.InstallFiles,'fpcunit',UnitDir);
|
||||||
|
AddPackageFiles(P.InstallFiles,'jspdf',UnitDir);
|
||||||
|
AddPackageFiles(P.InstallFiles,'nodejs',UnitDir);
|
||||||
|
AddPackageFiles(P.InstallFiles,'rtl',UnitDir);
|
||||||
// Demo files
|
// Demo files
|
||||||
DemoDir:=IncludeTrailingPathDelimiter(Defaults.ExamplesInstallDir);
|
DemoDir:=IncludeTrailingPathDelimiter(Defaults.ExamplesInstallDir);
|
||||||
AddDemoFiles(P.InstallFiles,'rtl',DemoDir);
|
|
||||||
AddDemoFiles(P.InstallFiles,'fcldb',DemoDir);
|
AddDemoFiles(P.InstallFiles,'fcldb',DemoDir);
|
||||||
AddDemoFiles(P.InstallFiles,'fpcunit',DemoDir);
|
AddDemoFiles(P.InstallFiles,'fpcunit',DemoDir);
|
||||||
AddDemoFiles(P.InstallFiles,'fpreport',DemoDir);
|
AddDemoFiles(P.InstallFiles,'fpreport',DemoDir);
|
||||||
AddDemoFiles(P.InstallFiles,'hotreload',DemoDir);
|
AddDemoFiles(P.InstallFiles,'hotreload',DemoDir);
|
||||||
AddDemoFiles(P.InstallFiles,'jquery',DemoDir);
|
AddDemoFiles(P.InstallFiles,'jquery',DemoDir);
|
||||||
|
AddDemoFiles(P.InstallFiles,'rtl',DemoDir);
|
||||||
end;
|
end;
|
||||||
rmClean:
|
rmDistClean:
|
||||||
if FileExists(BD+'pas2js.cfg') then
|
if FileExists(BD+'pas2js.cfg') then
|
||||||
P.CleanFiles.Add(BD+'pas2js.cfg');
|
P.CleanFiles.Add(BD+'pas2js.cfg');
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user