mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-04-07 18:07:49 +02:00
fpmake: create pas2js.cfg, added missing package dirs
This commit is contained in:
parent
04fcb50ce0
commit
0e750ea860
63
fpmake.pp
63
fpmake.pp
@ -3,6 +3,20 @@ program fpmake;
|
||||
|
||||
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);
|
||||
|
||||
Var
|
||||
@ -32,31 +46,32 @@ begin
|
||||
end;
|
||||
if (BaseDir<>'') then
|
||||
BaseDir:=ExcludeTrailingPathDelimiter(BaseDir);
|
||||
if (BaseDir<>'') then
|
||||
BaseDir:=ExcludeLeadingPathDelimiter(BaseDir);
|
||||
Addln('#');
|
||||
Addln('# Minimal config file for pas2js compiler');
|
||||
Addln('#');
|
||||
Addln('# not yet implemented: -d is the same as #DEFINE');
|
||||
Addln('# not yet implemented: -u is the same as #UNDEF');
|
||||
Addln('# -d is the same as #DEFINE');
|
||||
Addln('# -u is the same as #UNDEF');
|
||||
Addln('#');
|
||||
Addln('# Write always a nice logo ;)');
|
||||
Addln('-l');
|
||||
Addln('');
|
||||
Addln('# Display Hints, Warnings and Notes');
|
||||
Addln('# Display Warnings, Notes and Hints');
|
||||
Addln('-vwnh');
|
||||
Addln('# If you don''t want so much verbosity use');
|
||||
Addln('#-vw');
|
||||
Addln('');
|
||||
Addln('-Fu$CfgDir/'+BASEDIR+'/rtl');
|
||||
Addln('-Fu$CfgDir/'+BASEDIR+'/fcl-base');
|
||||
Addln('-Fu$CfgDir/'+BASEDIR+'/fcl-db');
|
||||
Addln('-Fu$CfgDir/'+BASEDIR+'/fpcunit');
|
||||
if FilenameIsAbsolute(BaseDir) then
|
||||
Addln('-Fu'+BaseDir+'/*')
|
||||
else
|
||||
Addln('-Fu$CfgDir/'+ExcludeLeadingPathDelimiter(BaseDir)+'/*');
|
||||
Addln('');
|
||||
Addln('#IFDEF nodejs');
|
||||
Addln('-Jirtl.js');
|
||||
Addln('#ENDIF');
|
||||
Addln('');
|
||||
Addln('# Put all generated JavaScript into one file');
|
||||
Addln('-Jc');
|
||||
Addln('');
|
||||
Addln('# end.');
|
||||
Close(F);
|
||||
end;
|
||||
@ -108,7 +123,7 @@ end;
|
||||
|
||||
Var
|
||||
P : TPackage;
|
||||
UnitDir,DemoDir,BD : String;
|
||||
UnitDir,DemoDir,BD: String;
|
||||
|
||||
begin
|
||||
With Installer do
|
||||
@ -120,7 +135,7 @@ begin
|
||||
P.Description := 'Convert pascal sources to javascript.';
|
||||
P.Email := 'michael@freepascal.org';
|
||||
P.NeedLibC:= false;
|
||||
P.Version:='3.1.1';
|
||||
P.Version:='3.3.1';
|
||||
P.SourcePath.Add('compiler/utils/pas2js');
|
||||
P.UnitPath.Add('compiler/utils/pas2js');
|
||||
P.UnitPath.Add('compiler/packages/pastojs/src');
|
||||
@ -175,33 +190,43 @@ begin
|
||||
P.Targets.AddImplicitUnit('webidltopas',False).ResourceStrings:=True;
|
||||
// Determine unit files location
|
||||
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
|
||||
rmCompile,rmBuild:
|
||||
begin
|
||||
if not FileExists(BD+'pas2js.cfg') then
|
||||
CreateConfigFile(BD+'pas2js.cfg',SetDirSeparators('../../packages'));
|
||||
end;
|
||||
rmInstall,rmArchive,rmZipInstall:
|
||||
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
|
||||
// Create config file
|
||||
CreateConfigFile(BD+'pas2js.cfg',ExtractRelativePath(IncludeTrailingPathDelimiter(Defaults.BinInstallDir),IncludeTrailingPathDelimiter(UnitDir)));
|
||||
P.InstallFiles.Add(BD+'pas2js.cfg',Defaults.BinInstallDir);
|
||||
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-db',UnitDir);
|
||||
AddPackageFiles(P.InstallFiles,'fpcunit',UnitDir);
|
||||
AddPackageFiles(P.InstallFiles,'jspdf',UnitDir);
|
||||
AddPackageFiles(P.InstallFiles,'nodejs',UnitDir);
|
||||
AddPackageFiles(P.InstallFiles,'rtl',UnitDir);
|
||||
// Demo files
|
||||
DemoDir:=IncludeTrailingPathDelimiter(Defaults.ExamplesInstallDir);
|
||||
AddDemoFiles(P.InstallFiles,'rtl',DemoDir);
|
||||
AddDemoFiles(P.InstallFiles,'fcldb',DemoDir);
|
||||
AddDemoFiles(P.InstallFiles,'fpcunit',DemoDir);
|
||||
AddDemoFiles(P.InstallFiles,'fpreport',DemoDir);
|
||||
AddDemoFiles(P.InstallFiles,'hotreload',DemoDir);
|
||||
AddDemoFiles(P.InstallFiles,'jquery',DemoDir);
|
||||
AddDemoFiles(P.InstallFiles,'rtl',DemoDir);
|
||||
end;
|
||||
rmClean:
|
||||
rmDistClean:
|
||||
if FileExists(BD+'pas2js.cfg') then
|
||||
P.CleanFiles.Add(BD+'pas2js.cfg');
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user