mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 19:19:18 +02:00
pas2js: added macro $(pas2js), do not add packages
git-svn-id: trunk@58096 -
This commit is contained in:
parent
50cce1a623
commit
72edd414d8
@ -52,9 +52,10 @@ Type
|
|||||||
Private
|
Private
|
||||||
FOnRefresh: TNotifyEvent;
|
FOnRefresh: TNotifyEvent;
|
||||||
FServerInstances: TServerInstanceList;
|
FServerInstances: TServerInstanceList;
|
||||||
function GetPasJSBrowser(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
function GetPas2JSPath(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
||||||
function GetPasJSNodeJS(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
function GetPas2JSBrowser(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
||||||
function GetProjectURL(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
function GetPas2JSNodeJS(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
||||||
|
function GetPas2jsProjectURL(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
||||||
function MaybeStartServer(Sender: TObject; var Handled: boolean): TModalResult;
|
function MaybeStartServer(Sender: TObject; var Handled: boolean): TModalResult;
|
||||||
Public
|
Public
|
||||||
Constructor Create;
|
Constructor Create;
|
||||||
@ -189,42 +190,62 @@ end;
|
|||||||
|
|
||||||
{ TPJSController }
|
{ TPJSController }
|
||||||
|
|
||||||
function TPJSController.GetPasJSBrowser(const s: string; const Data: PtrInt; var Abort: boolean): string;
|
function TPJSController.GetPas2JSPath(const s: string; const Data: PtrInt;
|
||||||
|
var Abort: boolean): string;
|
||||||
|
begin
|
||||||
|
Abort:=False;
|
||||||
|
if (s<>'') and (ConsoleVerbosity>=0) then
|
||||||
|
debugln(['Hint: (lazarus) [TPJSController.GetPas2JSPath] ignoring macro Pas2JS parameter "',s,'"']);
|
||||||
|
Result:=PJSOptions.CompilerFilename;
|
||||||
|
if Result='' then
|
||||||
|
Result:='pas2js'+GetExeExt
|
||||||
|
else
|
||||||
|
IdeMacros.SubstituteMacros(Result);
|
||||||
|
if (Result<>'') and (ExtractFilePath(Result)='') then
|
||||||
|
Result:=FindDefaultExecutablePath(Result);
|
||||||
|
if (Result<>'') and not FilenameIsAbsolute(Result) then begin
|
||||||
|
if ConsoleVerbosity>=0 then
|
||||||
|
debugln(['Hint: (lazarus) [TPJSController.GetPas2JSPath] invalid pas2js filename "',Result,'"']);
|
||||||
|
Result:='';
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TPJSController.GetPas2JSBrowser(const s: string; const Data: PtrInt; var Abort: boolean): string;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Abort:=False;
|
Abort:=False;
|
||||||
|
if (s<>'') and (ConsoleVerbosity>=0) then
|
||||||
|
debugln(['Hint: (lazarus) [TPJSController.GetPas2JSBrowser] ignoring macro Pas2JSBrowser parameter "',s,'"']);
|
||||||
Result:=PJSOptions.BrowserFileName;
|
Result:=PJSOptions.BrowserFileName;
|
||||||
if Result='' then
|
if Result='' then
|
||||||
Result:=GetStandardBrowser;
|
Result:=GetStandardBrowser;
|
||||||
IdeMacros.SubstituteMacros(Result);
|
IdeMacros.SubstituteMacros(Result);
|
||||||
if (Result<>'') and not FilenameIsAbsolute(Result) then
|
if (Result<>'') and not FilenameIsAbsolute(Result) then
|
||||||
Result:=FindDefaultExecutablePath(Result);
|
Result:=FindDefaultExecutablePath(Result);
|
||||||
if (s<>'') and (ConsoleVerbosity>=0) then
|
|
||||||
debugln(['Hint: (lazarus) [TPJSController.GetPasJSBrowser] ignoring macro Pas2JSBrowser parameter "',s,'"']);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPJSController.GetPasJSNodeJS(const s: string; const Data: PtrInt; var Abort: boolean): string;
|
function TPJSController.GetPas2JSNodeJS(const s: string; const Data: PtrInt; var Abort: boolean): string;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Abort:=False;
|
Abort:=False;
|
||||||
|
if (s<>'') and (ConsoleVerbosity>=0) then
|
||||||
|
debugln(['Hint: (lazarus) [TPJSController.GetPas2JSNodeJS] ignoring macro Pas2JSNodeJS parameter "',s,'"']);
|
||||||
Result:=PJSOptions.NodeJSFileName;
|
Result:=PJSOptions.NodeJSFileName;
|
||||||
if Result='' then
|
if Result='' then
|
||||||
Result:=GetStandardNodeJS;
|
Result:=GetStandardNodeJS;
|
||||||
IdeMacros.SubstituteMacros(Result);
|
IdeMacros.SubstituteMacros(Result);
|
||||||
if (Result<>'') and not FilenameIsAbsolute(Result) then
|
if (Result<>'') and not FilenameIsAbsolute(Result) then
|
||||||
Result:=FindDefaultExecutablePath(Result);
|
Result:=FindDefaultExecutablePath(Result);
|
||||||
if (s<>'') and (ConsoleVerbosity>=0) then
|
|
||||||
debugln(['Hint: (lazarus) [TPJSController.GetPasJSNodeJS] ignoring macro Pas2JSNodeJS parameter "',s,'"']);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPJSController.GetProjectURL(const s: string; const Data: PtrInt; var Abort: boolean): string;
|
function TPJSController.GetPas2jsProjectURL(const s: string; const Data: PtrInt; var Abort: boolean): string;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
FN : String;
|
FN : String;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if (s<>'') and (ConsoleVerbosity>=0) then
|
if (s<>'') and (ConsoleVerbosity>=0) then
|
||||||
debugln(['Hint: (lazarus) [TPJSController.GetProjectURL] ignoring macro Pas2JSProjectURL parameter "',s,'"']);
|
debugln(['Hint: (lazarus) [TPJSController.GetPas2jsProjectURL] ignoring macro Pas2JSProjectURL parameter "',s,'"']);
|
||||||
|
|
||||||
if ConsoleVerbosity>0 then
|
if ConsoleVerbosity>0 then
|
||||||
DebugLN(['LazarusIDE.ActiveProject.CustomData[PJSProjectWebBrowser]: ',LazarusIDE.ActiveProject.CustomData[PJSProjectWebBrowser]]);
|
DebugLN(['LazarusIDE.ActiveProject.CustomData[PJSProjectWebBrowser]: ',LazarusIDE.ActiveProject.CustomData[PJSProjectWebBrowser]]);
|
||||||
@ -253,7 +274,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
Abort:=(Result='');
|
Abort:=(Result='');
|
||||||
if ConsoleVerbosity>0 then
|
if ConsoleVerbosity>0 then
|
||||||
DebugLN(['GetProjectURL : ',Result]);
|
DebugLN(['GetPas2jsProjectURL : ',Result]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPJSController.MaybeStartServer(Sender: TObject; var Handled: boolean): TModalResult;
|
function TPJSController.MaybeStartServer(Sender: TObject; var Handled: boolean): TModalResult;
|
||||||
@ -320,9 +341,10 @@ end;
|
|||||||
|
|
||||||
procedure TPJSController.Hook;
|
procedure TPJSController.Hook;
|
||||||
begin
|
begin
|
||||||
IDEMacros.Add(TTransferMacro.Create('Pas2JSBrowser','','Pas2JS selected Browser executable',@GetPasJSBrowser,[]));
|
IDEMacros.Add(TTransferMacro.Create('Pas2JS','','Pas2JS executable',@GetPas2JSPath,[]));
|
||||||
IDEMacros.Add(TTransferMacro.Create('Pas2JSNodeJS','','Pas2JS selected NodeJS xecutable',@GetPasJSNodeJS,[]));
|
IDEMacros.Add(TTransferMacro.Create('Pas2JSBrowser','','Pas2JS selected Browser executable',@GetPas2JSBrowser,[]));
|
||||||
IDEMacros.Add(TTransferMacro.Create('Pas2JSProjectURL','','Pas2JS current project URL',@GetProjectURL,[]));
|
IDEMacros.Add(TTransferMacro.Create('Pas2JSNodeJS','','Pas2JS selected NodeJS excutable',@GetPas2JSNodeJS,[]));
|
||||||
|
IDEMacros.Add(TTransferMacro.Create('Pas2JSProjectURL','','Pas2JS current project URL',@GetPas2jsProjectURL,[]));
|
||||||
LazarusIDE.AddHandlerOnRunWithoutDebugInit(@MaybeStartServer);
|
LazarusIDE.AddHandlerOnRunWithoutDebugInit(@MaybeStartServer);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ const
|
|||||||
PJSDsgnOptsFile = 'pas2jsdsgnoptions.xml';
|
PJSDsgnOptsFile = 'pas2jsdsgnoptions.xml';
|
||||||
PJSDefaultCompiler = '$MakeExe(IDE,pas2js)';
|
PJSDefaultCompiler = '$MakeExe(IDE,pas2js)';
|
||||||
PJSDefaultHTTPServer = '$MakeExe(IDE,simpleserver)';
|
PJSDefaultHTTPServer = '$MakeExe(IDE,simpleserver)';
|
||||||
PJSDefaultStartAtPort = 3000; // Simpleserver default
|
PJSDefaultStartAtPort = 4000; // Simpleserver default
|
||||||
PJSDefaultBrowser = '$MakeExe(IDE,firefox)';
|
PJSDefaultBrowser = '$MakeExe(IDE,firefox)';
|
||||||
PJSDefaultNodeJS = '$MakeExe(IDE,nodejs)';
|
PJSDefaultNodeJS = '$MakeExe(IDE,nodejs)';
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ implementation
|
|||||||
|
|
||||||
function GetStandardPas2jsExe: string;
|
function GetStandardPas2jsExe: string;
|
||||||
begin
|
begin
|
||||||
Result:='$MakeExe(IDE,pas2js)';
|
Result:=PJSDefaultCompiler;
|
||||||
if not IDEMacros.SubstituteMacros(Result) then
|
if not IDEMacros.SubstituteMacros(Result) then
|
||||||
Result:='pas2js';
|
Result:='pas2js';
|
||||||
end;
|
end;
|
||||||
@ -83,7 +83,7 @@ end;
|
|||||||
function GetStandardNodeJS: string;
|
function GetStandardNodeJS: string;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result:='$MakeExe(IDE,nodejs)';
|
Result:=PJSDefaultNodeJS;
|
||||||
if not IDEMacros.SubstituteMacros(Result) then
|
if not IDEMacros.SubstituteMacros(Result) then
|
||||||
Result:='nodejs';
|
Result:='nodejs';
|
||||||
end;
|
end;
|
||||||
@ -91,7 +91,7 @@ end;
|
|||||||
function GetStandardHTTPServer: string;
|
function GetStandardHTTPServer: string;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result:='$MakeExe(IDE,simpleserver)';
|
Result:=PJSDefaultHTTPServer;
|
||||||
if not IDEMacros.SubstituteMacros(Result) then
|
if not IDEMacros.SubstituteMacros(Result) then
|
||||||
Result:='simpleserver';
|
Result:='simpleserver';
|
||||||
end;
|
end;
|
||||||
@ -233,7 +233,7 @@ Const
|
|||||||
procedure TPas2jsOptions.LoadFromConfig(Cfg: TConfigStorage);
|
procedure TPas2jsOptions.LoadFromConfig(Cfg: TConfigStorage);
|
||||||
|
|
||||||
begin
|
begin
|
||||||
CompilerFilename:=Cfg.GetValue(KeyCompiler ,PJSDefaultCompiler);
|
CompilerFilename:=Cfg.GetValue(KeyCompiler,PJSDefaultCompiler);
|
||||||
HTTPServerFileName:=Cfg.GetValue(KeyHTTPServer,PJSDefaultHTTPServer);
|
HTTPServerFileName:=Cfg.GetValue(KeyHTTPServer,PJSDefaultHTTPServer);
|
||||||
BrowserFileName:=Cfg.GetValue(KeyBrowser,PJSDefaultBrowser);
|
BrowserFileName:=Cfg.GetValue(KeyBrowser,PJSDefaultBrowser);
|
||||||
NodeJSFileName:=Cfg.GetValue(KeyNodeJS,PJSDefaultNodeJS);
|
NodeJSFileName:=Cfg.GetValue(KeyNodeJS,PJSDefaultNodeJS);
|
||||||
|
@ -37,7 +37,7 @@ Type
|
|||||||
procedure NodeJSBrowseButtonClick(Sender: TObject);
|
procedure NodeJSBrowseButtonClick(Sender: TObject);
|
||||||
procedure Pas2jsPathBrowseButtonClick(Sender: TObject);
|
procedure Pas2jsPathBrowseButtonClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
function CheckCompiler(Buttons: TMsgDlgButtons): boolean;
|
function CheckCompiler({%H-}Buttons: TMsgDlgButtons): boolean;
|
||||||
public
|
public
|
||||||
function GetTitle: String; override;
|
function GetTitle: String; override;
|
||||||
procedure Setup({%H-}ADialog: TAbstractOptionsEditorDialog); override;
|
procedure Setup({%H-}ADialog: TAbstractOptionsEditorDialog); override;
|
||||||
|
@ -108,7 +108,6 @@ begin
|
|||||||
RegisterIdeMenuCommand(itmViewDebugWindows,'Pas2JSWebservers',SPasJSWebserversCaption,nil,@ShowServerDialog);
|
RegisterIdeMenuCommand(itmViewDebugWindows,'Pas2JSWebservers',SPasJSWebserversCaption,nil,@ShowServerDialog);
|
||||||
// Add project options frame
|
// Add project options frame
|
||||||
RegisterIDEOptionsEditor(GroupProject,TPas2JSProjectOptionsFrame, Pas2JSOptionsIndex);
|
RegisterIDEOptionsEditor(GroupProject,TPas2JSProjectOptionsFrame, Pas2JSOptionsIndex);
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TProjectPas2JSNodeJSApp }
|
{ TProjectPas2JSNodeJSApp }
|
||||||
@ -256,9 +255,9 @@ begin
|
|||||||
// create program source
|
// create program source
|
||||||
AProject.MainFile.SetSourceText(CreateProjectSource,true);
|
AProject.MainFile.SetSourceText(CreateProjectSource,true);
|
||||||
|
|
||||||
AProject.AddPackageDependency('pas2js_rtl');
|
//AProject.AddPackageDependency('pas2js_rtl');
|
||||||
if naoUseNodeJSApp in Options then
|
//if naoUseNodeJSApp in Options then
|
||||||
AProject.AddPackageDependency('fcl_base_pas2js');
|
// AProject.AddPackageDependency('fcl_base_pas2js');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TProjectPas2JSNodeJSApp.CreateStartFiles(AProject: TLazProject
|
function TProjectPas2JSNodeJSApp.CreateStartFiles(AProject: TLazProject
|
||||||
@ -277,12 +276,6 @@ begin
|
|||||||
Flags:=DefaultProjectNoApplicationFlags-[pfRunnable];
|
Flags:=DefaultProjectNoApplicationFlags-[pfRunnable];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
(*function TProjectPas2JSWebApp.GetBrowserCommand(AFileName : string): String;
|
|
||||||
|
|
||||||
begin
|
|
||||||
Result:='$(Pas2JSBrowser) $(Pas2JSProjectURL)'
|
|
||||||
end; *)
|
|
||||||
|
|
||||||
function TProjectPas2JSWebApp.GetNextPort : Word;
|
function TProjectPas2JSWebApp.GetNextPort : Word;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -537,9 +530,9 @@ begin
|
|||||||
if baoRunOnReady in options then
|
if baoRunOnReady in options then
|
||||||
AProject.CustomData[PJSProjectRunAtReady]:='1';
|
AProject.CustomData[PJSProjectRunAtReady]:='1';
|
||||||
end;
|
end;
|
||||||
AProject.AddPackageDependency('pas2js_rtl');
|
//AProject.AddPackageDependency('pas2js_rtl');
|
||||||
if baoUseBrowserApp in Options then
|
//if baoUseBrowserApp in Options then
|
||||||
AProject.AddPackageDependency('fcl_base_pas2js');
|
// AProject.AddPackageDependency('fcl_base_pas2js');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TProjectPas2JSWebApp.CreateStartFiles(AProject: TLazProject
|
function TProjectPas2JSWebApp.CreateStartFiles(AProject: TLazProject
|
||||||
|
@ -107,10 +107,7 @@ begin
|
|||||||
CompOpts.WriteFPCLogo:=true;
|
CompOpts.WriteFPCLogo:=true;
|
||||||
CompOpts.CustomOptions:=CustomOpts;
|
CompOpts.CustomOptions:=CustomOpts;
|
||||||
|
|
||||||
if PJSOptions.CompilerFilename='' then
|
Compiler:='$(pas2js)';
|
||||||
Compiler:='$MakeExe(IDE,pas2js)'
|
|
||||||
else
|
|
||||||
Compiler:=PJSOptions.CompilerFilename;
|
|
||||||
CompOpts.CompilerPath:=Compiler;
|
CompOpts.CompilerPath:=Compiler;
|
||||||
debugln(['Hint: (lazarus) [pjsprojectoptions.SetPasJSCompileOptions] Compiler=',CompOpts.CompilerPath,' TargetOS=',CompOpts.TargetOS,' Custom="',CompOpts.CustomOptions,'"']);
|
debugln(['Hint: (lazarus) [pjsprojectoptions.SetPasJSCompileOptions] Compiler=',CompOpts.CompilerPath,' TargetOS=',CompOpts.TargetOS,' Custom="',CompOpts.CustomOptions,'"']);
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user