浏览代码

* Namespaced WASI and JOB APIs

Michaël Van Canneyt 1 年之前
父节点
当前提交
1afdbeda6a

+ 3 - 0
packages/job/namespaced/JOB.Browser.pas

@@ -0,0 +1,3 @@
+{$DEFINE FPC_DOTTEDUNITS}
+unit JOB.Browser;
+{$include ../src/job_browser.pp}

+ 3 - 0
packages/job/namespaced/JOB.Shared.pas

@@ -0,0 +1,3 @@
+{$DEFINE FPC_DOTTEDUNITS}
+unit JOB.Shared;
+{$include ../src/job_shared.pp}

+ 8 - 1
packages/job/job_browser.pp → packages/job/src/job_browser.pp

@@ -3,13 +3,20 @@
 
 
   Browser side.
   Browser side.
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit JOB_Browser;
 unit JOB_Browser;
+{$ENDIF}
 
 
 {$mode objfpc}
 {$mode objfpc}
 
 
 interface
 interface
 
 
-uses sysutils, types, js, web, wasienv, JOB_Shared;
+uses 
+{$IFDEF FPC_DOTTEDUNITS}
+  System.SysUtils, System.Types, JSApi.JS, BrowserApi.Web, Wasi.Env, JOB.Shared;
+{$ELSE}
+  sysutils, types, js, web, wasienv, JOB_Shared;
+{$ENDIF}
 
 
 Type
 Type
   EJOBBridge = class(Exception);
   EJOBBridge = class(Exception);

+ 2 - 0
packages/job/job_shared.pp → packages/job/src/job_shared.pp

@@ -3,7 +3,9 @@
 
 
   These types and constants are shared between pas2js and webassembly.
   These types and constants are shared between pas2js and webassembly.
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit JOB_Shared;
 unit JOB_Shared;
+{$ENDIF}
 
 
 interface
 interface
 
 

+ 3 - 0
packages/wasi/namespaced/Fcl.App.Wasi.Host.pas

@@ -0,0 +1,3 @@
+{$DEFINE FPC_DOTTEDUNITS}
+unit Fcl.App.Wasi.Host;
+{$include ../src/wasihostapp.pas}

+ 3 - 0
packages/wasi/namespaced/Fcl.App.Wasi.Service.pas

@@ -0,0 +1,3 @@
+{$DEFINE FPC_DOTTEDUNITS}
+unit Fcl.App.Wasi.Service;
+{$include ../src/wasiserviceapp.pas}

+ 3 - 0
packages/wasi/namespaced/Fcl.App.Wasi.Threaded.pas

@@ -0,0 +1,3 @@
+{$DEFINE FPC_DOTTEDUNITS}
+unit Fcl.App.Wasi.Threaded;
+{$include ../src/wasithreadedapp.pas}

+ 3 - 0
packages/wasi/namespaced/Fcl.App.Wasi.ThreadedHost.pas

@@ -0,0 +1,3 @@
+{$DEFINE FPC_DOTTEDUNITS}
+unit Fcl.App.Wasi.ThreadedHost;
+{$include ../src/wasiworkerthreadhost.pas}

+ 3 - 0
packages/wasi/namespaced/System.WebThreads.pas

@@ -0,0 +1,3 @@
+{$DEFINE FPC_DOTTEDUNITS}
+unit System.WebThreads;
+{$include ../src/rtl.webthreads.pas}

+ 3 - 0
packages/wasi/namespaced/Wasi.Env.pas

@@ -0,0 +1,3 @@
+{$DEFINE FPC_DOTTEDUNITS}
+unit Wasi.Env;
+{$include ../src/wasienv.pas}

+ 1 - 1
packages/rtl/src/rtl.webthreads.pas → packages/wasi/src/rtl.webthreads.pas

@@ -24,7 +24,7 @@ interface
 
 
 uses
 uses
 {$IFDEF FPC_DOTTEDUNITS}
 {$IFDEF FPC_DOTTEDUNITS}
-  JSApi.JS, System.SysUtils, System.WasiEnv, BrowserApi.WebAssembly;
+  JSApi.JS, System.SysUtils, Wasi.Env, BrowserApi.WebAssembly;
 {$ELSE}
 {$ELSE}
   JS, SysUtils, wasienv, webassembly;
   JS, SysUtils, wasienv, webassembly;
 {$ENDIF}  
 {$ENDIF}  

+ 12 - 2
packages/wasi/wasienv.pas → packages/wasi/src/wasienv.pas

@@ -1,5 +1,6 @@
-
+{$IFNDEF FPC_DOTTEDUNITS}
 unit wasienv;
 unit wasienv;
+{$ENDIF}
 
 
 {$mode ObjFPC}
 {$mode ObjFPC}
 {$modeswitch externalclass}
 {$modeswitch externalclass}
@@ -11,7 +12,11 @@ unit wasienv;
 interface
 interface
 
 
 uses
 uses
+{$IFDEF FPC_DOTTEDUNITS}
+  System.SysUtils, System.Classes, JSApi.JS, BrowserApi.WebAssembly, System.Types;
+{$ELSE} 
   SysUtils, Classes, JS, WebAssembly, types;
   SysUtils, Classes, JS, WebAssembly, types;
+{$ENDIF}
 
 
 
 
 Const
 Const
@@ -588,7 +593,12 @@ type
 
 
 implementation
 implementation
 
 
-uses weborworker;
+uses 
+{$IFDEF FPC_DOTTEDUNITS}
+  BrowserApi.WebOrWorker;
+{$ELSE} 
+  WebOrWorker;
+{$ENDIF}
 
 
 { TWASIHost }
 { TWASIHost }
 
 

+ 6 - 0
packages/wasi/wasihostapp.pas → packages/wasi/src/wasihostapp.pas

@@ -1,11 +1,17 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit wasihostapp;
 unit wasihostapp;
+{$ENDIF}
 
 
 {$mode ObjFPC}
 {$mode ObjFPC}
 
 
 interface
 interface
 
 
 uses
 uses
+{$IFDEF FPC_DOTTEDUNITS}
+  System.Classes, System.SysUtils, Fcl.App.Browser, JSApi.JS, BrowserApi.WebAssembly, Wasi.Env;
+{$ELSE} 
   Classes, SysUtils, browserapp, js, webassembly, wasienv;
   Classes, SysUtils, browserapp, js, webassembly, wasienv;
+{$ENDIF}
 
 
 Type
 Type
 
 

+ 6 - 0
packages/wasi/wasiserviceapp.pas → packages/wasi/src/wasiserviceapp.pas

@@ -1,11 +1,17 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit wasiserviceapp;
 unit wasiserviceapp;
+{$ENDIF}
 
 
 {$mode ObjFPC}
 {$mode ObjFPC}
 
 
 interface
 interface
 
 
 uses
 uses
+{$IFDEF FPC_DOTTEDUNITS}
+  System.Classes, System.SysUtils, Fcl.App.ServiceWorker, BrowserApi.WebAssembly, Wasi.Env;
+{$ELSE} 
   Classes, SysUtils, serviceworkerapp,  webassembly, wasienv;
   Classes, SysUtils, serviceworkerapp,  webassembly, wasienv;
+{$ENDIF}
 
 
 Type
 Type
   { TWASIServiceApplication }
   { TWASIServiceApplication }

+ 7 - 0
packages/wasi/wasithreadedapp.pas → packages/wasi/src/wasithreadedapp.pas

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit wasithreadedapp;
 unit wasithreadedapp;
+{$ENDIF}
 
 
 {$mode ObjFPC}
 {$mode ObjFPC}
 {$modeswitch externalclass}
 {$modeswitch externalclass}
@@ -7,7 +9,12 @@ unit wasithreadedapp;
 interface
 interface
 
 
 uses
 uses
+{$IFDEF FPC_DOTTEDUNITS}
+  JSApi.JS, System.Classes, System.SysUtils, System.WebThreads, Wasi.Env, Fcl.App.Wasi.Host, 
+  BrowserApi.WebOrWorker;
+{$ELSE} 
   JS, Classes, SysUtils, Rtl.WebThreads, wasienv, wasihostapp, weborworker;
   JS, Classes, SysUtils, Rtl.WebThreads, wasienv, wasihostapp, weborworker;
+{$ENDIF}
 
 
 Type
 Type
   { TWasmThread }
   { TWasmThread }

+ 14 - 2
packages/wasi/wasiworkerthreadhost.pas → packages/wasi/src/wasiworkerthreadhost.pas

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit wasiworkerthreadhost;
 unit wasiworkerthreadhost;
+{$ENDIF}
 
 
 {$mode ObjFPC}
 {$mode ObjFPC}
 {$modeswitch externalclass}
 {$modeswitch externalclass}
@@ -6,7 +8,12 @@ unit wasiworkerthreadhost;
 interface
 interface
 
 
 uses
 uses
+{$IFDEF FPC_DOTTEDUNITS}
+  System.Classes, System.SysUtils, JSApi.JS, Fcl.CustApp, BrowserApi.WebOrWorker, 
+  BrowserApi.Worker, BrowserApi.WebAssembly, Wasi.Env, System.WebThreads;
+{$ELSE} 
   Classes, SysUtils, JS, custapp, weborworker, webworker, webassembly, wasienv, Rtl.WebThreads;
   Classes, SysUtils, JS, custapp, weborworker, webworker, webassembly, wasienv, Rtl.WebThreads;
+{$ENDIF}
 
 
 Type
 Type
   TWorkerThreadSupport = Class;
   TWorkerThreadSupport = Class;
@@ -144,7 +151,12 @@ Type
 
 
 implementation
 implementation
 
 
-uses Types;
+uses 
+{$IFDEF FPC_DOTTEDUNITS}
+  System.Types;
+{$ELSE} 
+  Types;
+{$ENDIF}
 
 
 var
 var
   Self_ : TJSDedicatedWorkerGlobalScope; external name 'self';
   Self_ : TJSDedicatedWorkerGlobalScope; external name 'self';
@@ -610,7 +622,7 @@ end;
 
 
 function TWorkerWASIHostApplication.GetLocation: String;
 function TWorkerWASIHostApplication.GetLocation: String;
 begin
 begin
-  Result:=webworker.Location.pathname;
+  Result:={$IFDEF FPC_DOTTEDUNITS}BrowserApi.Worker.{$ELSE}}WebWorker.{$ENDIF}Location.pathname;
 end;
 end;
 
 
 constructor TWorkerWASIHostApplication.Create(aOwner: TComponent);
 constructor TWorkerWASIHostApplication.Create(aOwner: TComponent);

+ 0 - 0
packages/wasi/pas2jsthreadworker.lpi → packages/wasi/worker/pas2jsthreadworker.lpi


+ 0 - 0
packages/wasi/pas2jsthreadworker.pas → packages/wasi/worker/pas2jsthreadworker.pas