Browse Source

* integrate wasm

Michaël Van Canneyt 3 months ago
parent
commit
4827482d91
1 changed files with 68 additions and 7 deletions
  1. 68 7
      src/fresnel.lpk

+ 68 - 7
src/fresnel.lpk

@@ -7,12 +7,23 @@
     <CompilerOptions>
     <CompilerOptions>
       <Version Value="11"/>
       <Version Value="11"/>
       <SearchPaths>
       <SearchPaths>
-        <OtherUnitFiles Value="skia/skia4delphi;win32"/>
+        <IncludeFiles Value="wasm"/>
+        <OtherUnitFiles Value="skia/skia4delphi;win32;wasm"/>
         <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
         <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
       </SearchPaths>
       </SearchPaths>
       <Conditionals Value="// FresnelBackend
       <Conditionals Value="// FresnelBackend
 if FresnelBackend+&apos;&apos;=&apos;&apos; then begin
 if FresnelBackend+&apos;&apos;=&apos;&apos; then begin
-  if (TargetOS=&apos;win32&apos;) or (TargetOS=&apos;win64&apos;) then
+  if (TargetCPU=&apos;wasm32&apos;) then
+    begin
+    FresnelBackend := &apos;wasm&apos;;
+    FresnelRenderer := &apos;wasm&apos;;
+    end
+  else if (TargetOS=&apos;wasip1&apos;) or (TargetOS=&apos;wasip1threads&apos;) then
+    begin
+    FresnelBackend := &apos;wasm&apos;;
+    FresnelRenderer := &apos;wasm&apos;;
+    end
+  else if (TargetOS=&apos;win32&apos;) or (TargetOS=&apos;win64&apos;) then
     FresnelBackend := &apos;win32&apos;
     FresnelBackend := &apos;win32&apos;
   else if TargetOS=&apos;darwin&apos; then
   else if TargetOS=&apos;darwin&apos; then
     FresnelBackend := &apos;cocoa&apos;
     FresnelBackend := &apos;cocoa&apos;
@@ -26,7 +37,10 @@ if FresnelRenderer+&apos;&apos;=&apos;&apos; then begin
 end;
 end;
 
 
 // backend specific options
 // backend specific options
-if FresnelBackend=&apos;gtk3&apos; then begin
+if FresnelBackend=&apos;wasm&apos; then begin
+  CustomOptions := &apos;-dFresnelwasm&apos;;
+  UnitPath := &apos;wasm&apos;;
+end else if FresnelBackend=&apos;gtk3&apos; then begin
   CustomOptions := &apos;-dFresnelGtk3&apos;;
   CustomOptions := &apos;-dFresnelGtk3&apos;;
   UnitPath := &apos;gtk3;$PkgDir(LCL)/gtk3/gtk3bindings&apos;;
   UnitPath := &apos;gtk3;$PkgDir(LCL)/gtk3/gtk3bindings&apos;;
 end else if FresnelBackend=&apos;cocoa&apos; then begin
 end else if FresnelBackend=&apos;cocoa&apos; then begin
@@ -52,19 +66,21 @@ end;"/>
         <Count Value="2"/>
         <Count Value="2"/>
         <Item1>
         <Item1>
           <Identifier Value="FresnelBackend"/>
           <Identifier Value="FresnelBackend"/>
-          <Values Count="3">
+          <Values Count="4">
             <Item1 Value="gtk3"/>
             <Item1 Value="gtk3"/>
             <Item2 Value="cocoa"/>
             <Item2 Value="cocoa"/>
             <Item3 Value="win32"/>
             <Item3 Value="win32"/>
+            <Item4 Value="wasm"/>
           </Values>
           </Values>
-          <ValueDescriptions Count="3"/>
+          <ValueDescriptions Count="4"/>
         </Item1>
         </Item1>
         <Item2>
         <Item2>
           <Identifier Value="FresnelRenderer"/>
           <Identifier Value="FresnelRenderer"/>
-          <Values Count="1">
+          <Values Count="2">
             <Item1 Value="skia"/>
             <Item1 Value="skia"/>
+            <Item2 Value="wasm"/>
           </Values>
           </Values>
-          <ValueDescriptions Count="1"/>
+          <ValueDescriptions Count="2"/>
         </Item2>
         </Item2>
       </BuildMacros>
       </BuildMacros>
       <Parsing>
       <Parsing>
@@ -123,6 +139,51 @@ The skia backend requires the sk4d library, e.g. sk4d.dll for Windows. A version
         <AddToUsesPkgSection Value="False"/>
         <AddToUsesPkgSection Value="False"/>
         <UnitName Value="Fresnel.Win32"/>
         <UnitName Value="Fresnel.Win32"/>
       </Item>
       </Item>
+      <Item>
+        <Filename Value="wasm/fresnel.lexeme.pas"/>
+        <AddToUsesPkgSection Value="False"/>
+        <UnitName Value="Fresnel.Lexeme"/>
+      </Item>
+      <Item>
+        <Filename Value="wasm/fresnel.polygon.clipper.pas"/>
+        <AddToUsesPkgSection Value="False"/>
+        <UnitName Value="Fresnel.Polygon.Clipper"/>
+      </Item>
+      <Item>
+        <Filename Value="wasm/fresnel.unicode.pas"/>
+        <AddToUsesPkgSection Value="False"/>
+        <UnitName Value="Fresnel.Unicode"/>
+      </Item>
+      <Item>
+        <Filename Value="wasm/fresnel.usermedia.pas"/>
+        <AddToUsesPkgSection Value="False"/>
+        <UnitName Value="fresnel.usermedia"/>
+      </Item>
+      <Item>
+        <Filename Value="wasm/fresnel.wasm.api.pp"/>
+        <AddToUsesPkgSection Value="False"/>
+        <UnitName Value="fresnel.wasm.api"/>
+      </Item>
+      <Item>
+        <Filename Value="wasm/fresnel.wasm.app.pp"/>
+        <AddToUsesPkgSection Value="False"/>
+        <UnitName Value="fresnel.wasm.app"/>
+      </Item>
+      <Item>
+        <Filename Value="wasm/fresnel.wasm.font.pp"/>
+        <AddToUsesPkgSection Value="False"/>
+        <UnitName Value="fresnel.wasm.font"/>
+      </Item>
+      <Item>
+        <Filename Value="wasm/fresnel.wasm.render.pp"/>
+        <AddToUsesPkgSection Value="False"/>
+        <UnitName Value="fresnel.wasm.render"/>
+      </Item>
+      <Item>
+        <Filename Value="wasm/fresnel.wasm.shared.pp"/>
+        <AddToUsesPkgSection Value="False"/>
+        <UnitName Value="fresnel.wasm.shared"/>
+      </Item>
     </Files>
     </Files>
     <RequiredPkgs>
     <RequiredPkgs>
       <Item>
       <Item>