|
@@ -17,17 +17,63 @@ begin
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+Procedure CreateNamespacedConfigFile(CfgFile : string);
|
|
|
|
+
|
|
|
|
+var
|
|
|
|
+ F : Text;
|
|
|
|
+
|
|
|
|
+ Procedure AddLn(S : String);
|
|
|
|
+
|
|
|
|
+ begin
|
|
|
|
+ Writeln(F,S);
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+begin
|
|
|
|
+ if not ForceDirectories(ExtractFilePath(CfgFile)) then
|
|
|
|
+ begin
|
|
|
|
+ Writeln(StdErr,'Could not create destination directory ',ExtractFilePath(CfgFile));
|
|
|
|
+ Halt(2);
|
|
|
|
+ end;
|
|
|
|
+ Assign(F,CfgFile);
|
|
|
|
+ try
|
|
|
|
+ Rewrite(F);
|
|
|
|
+ except
|
|
|
|
+ On E : exception do
|
|
|
|
+ begin
|
|
|
|
+ Writeln(StdErr,'Could not create config file ',CfgFile,' : ',E.Message);
|
|
|
|
+ Halt(3);
|
|
|
|
+ end;
|
|
|
|
+ end;
|
|
|
|
+ AddLn('-dUNICODERTL');
|
|
|
|
+ Close(F);
|
|
|
|
+end;
|
|
|
|
+
|
|
Procedure CreateConfigFile(CfgFile,BaseDir : String; rtl_js_dir: string = '');
|
|
Procedure CreateConfigFile(CfgFile,BaseDir : String; rtl_js_dir: string = '');
|
|
|
|
|
|
Var
|
|
Var
|
|
F : Text;
|
|
F : Text;
|
|
|
|
|
|
|
|
+
|
|
Procedure AddLn(S : String);
|
|
Procedure AddLn(S : String);
|
|
|
|
|
|
begin
|
|
begin
|
|
Writeln(F,S);
|
|
Writeln(F,S);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+ Procedure AddPath(const aPrefix,aDir,Suffix : String);
|
|
|
|
+
|
|
|
|
+ var
|
|
|
|
+ aSubDirs : String;
|
|
|
|
+
|
|
|
|
+ begin
|
|
|
|
+ aSubDirs:=aDir;
|
|
|
|
+ if Suffix<>'' then
|
|
|
|
+ aSubDirs:=aSubDirs+'*'+PathDelim+Suffix;
|
|
|
|
+ if not FilenameIsAbsolute(aDir) then
|
|
|
|
+ aSubDirs:='$CfgDir'+aSubDirs;
|
|
|
|
+ Addln(aPrefix+aSubDirs);
|
|
|
|
+ end;
|
|
|
|
+
|
|
begin
|
|
begin
|
|
if not ForceDirectories(ExtractFilePath(CfgFile)) then
|
|
if not ForceDirectories(ExtractFilePath(CfgFile)) then
|
|
begin
|
|
begin
|
|
@@ -60,15 +106,14 @@ begin
|
|
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('');
|
|
- if FilenameIsAbsolute(BaseDir) then
|
|
|
|
- Addln('-Fu'+BaseDir+'*')
|
|
|
|
- else
|
|
|
|
- Addln('-Fu$CfgDir'+PathDelim+BaseDir+'*');
|
|
|
|
|
|
+ Addln('#IFDEF FPC_SUBTARGET_NAMESPACED');
|
|
|
|
+ AddPath('-Fu',BaseDir,'namespaced');
|
|
|
|
+ AddPath('-Fi',BaseDir,'src');
|
|
|
|
+ AddLn('#else');
|
|
|
|
+ AddPath('-Fu',BaseDir,'src');
|
|
|
|
+ AddLn('#endif');
|
|
if rtl_js_dir<>'' then
|
|
if rtl_js_dir<>'' then
|
|
- if FilenameIsAbsolute(rtl_js_dir) then
|
|
|
|
- AddLn('-Fu'+rtl_js_dir)
|
|
|
|
- else
|
|
|
|
- AddLn('-Fu$CfgDir'+PathDelim+rtl_js_dir);
|
|
|
|
|
|
+ AddPath('-Fu',rtl_js_dir,'');
|
|
Addln('');
|
|
Addln('');
|
|
Addln('#IFDEF nodejs');
|
|
Addln('#IFDEF nodejs');
|
|
Addln('-Jirtl.js');
|
|
Addln('-Jirtl.js');
|
|
@@ -128,7 +173,7 @@ end;
|
|
|
|
|
|
Var
|
|
Var
|
|
P : TPackage;
|
|
P : TPackage;
|
|
- UnitDir,DemoDir,BD, TmpCfg: String;
|
|
|
|
|
|
+ UnitDir,DemoDir,BD, TmpCfg, TmpCfg2: String;
|
|
T: TTarget;
|
|
T: TTarget;
|
|
|
|
|
|
begin
|
|
begin
|
|
@@ -217,12 +262,15 @@ begin
|
|
BD:=IncludeTrailingPathDelimiter(P.GetBinOutputDir(Defaults.BuildCPU,Defaults.BuildOS));
|
|
BD:=IncludeTrailingPathDelimiter(P.GetBinOutputDir(Defaults.BuildCPU,Defaults.BuildOS));
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
TmpCfg:='compiler/utils/pas2js/dist/pas2js.cfg';
|
|
TmpCfg:='compiler/utils/pas2js/dist/pas2js.cfg';
|
|
|
|
+ TmpCfg2:='compiler/utils/pas2js/dist/pas2js-namespaced.cfg';
|
|
Case Installer.RunMode of
|
|
Case Installer.RunMode of
|
|
rmCompile,rmBuild:
|
|
rmCompile,rmBuild:
|
|
begin
|
|
begin
|
|
if not FileExists(BD+'pas2js.cfg') then
|
|
if not FileExists(BD+'pas2js.cfg') then
|
|
CreateConfigFile(BD+'pas2js.cfg',SetDirSeparators('../../packages'),
|
|
CreateConfigFile(BD+'pas2js.cfg',SetDirSeparators('../../packages'),
|
|
SetDirSeparators('../../compiler/utils/pas2js/dist/'));
|
|
SetDirSeparators('../../compiler/utils/pas2js/dist/'));
|
|
|
|
+ if not FileExists(BD+'pas2js-namespaced.cfg') then
|
|
|
|
+ CreateNameSpacedConfigFile(BD+'pas2js-namespaced.cfg');
|
|
end;
|
|
end;
|
|
rmInstall,rmArchive,rmZipInstall:
|
|
rmInstall,rmArchive,rmZipInstall:
|
|
begin
|
|
begin
|
|
@@ -235,7 +283,9 @@ begin
|
|
// Config file
|
|
// Config file
|
|
// Create config file
|
|
// Create config file
|
|
CreateConfigFile(TmpCfg,ExtractRelativePath(IncludeTrailingPathDelimiter(Defaults.BinInstallDir),IncludeTrailingPathDelimiter(UnitDir)));
|
|
CreateConfigFile(TmpCfg,ExtractRelativePath(IncludeTrailingPathDelimiter(Defaults.BinInstallDir),IncludeTrailingPathDelimiter(UnitDir)));
|
|
|
|
+ CreateNamespacedConfigFile(TmpCfg2);
|
|
P.InstallFiles.Add(TmpCfg,Defaults.BinInstallDir);
|
|
P.InstallFiles.Add(TmpCfg,Defaults.BinInstallDir);
|
|
|
|
+ P.InstallFiles.Add(TmpCfg2,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,'chartjs',UnitDir);
|
|
AddPackageFiles(P.InstallFiles,'chartjs',UnitDir);
|
|
AddPackageFiles(P.InstallFiles,'dataabstract',UnitDir);
|
|
AddPackageFiles(P.InstallFiles,'dataabstract',UnitDir);
|