@@ -26,6 +26,14 @@ class Windows extends tools.Task {
2626 var windowsProjectPath = Path .join ([cwd , ' project/windows' ]);
2727 var windowsAppExe = Path .join ([windowsProjectPath , project .app .name + ' .exe' ]);
2828
29+ var winArch = ' x64' ;
30+ if (context .defines .exists (' HXCPP_ARM64' )) {
31+ winArch = ' arm64' ;
32+ }
33+
34+ var windowsAppSdlLib = Path .join ([windowsProjectPath , ' SDL3.dll' ]);
35+ var ceramicSdlLib = Path .join ([context .ceramicRootPath , ' bin/sdl/sdl3-windows- $winArch /bin/SDL3.dll' ]);
36+
2937 var appIconPath = Path .join ([windowsProjectPath , ' app.ico' ]);
3038
3139 var doRun = extractArgFlag (args , ' run' );
@@ -40,6 +48,43 @@ class Windows extends tools.Task {
4048 // Copy binary file
4149 File .copy (Path .join ([outTargetPath , ' cpp' , context .debug ? ' Main-debug.exe' : ' Main.exe' ]), windowsAppExe );
4250
51+ // Copy libSDL3
52+ if (! Files .haveSameLastModified (ceramicSdlLib , windowsAppSdlLib )) {
53+ File .copy (ceramicSdlLib , windowsAppSdlLib );
54+ }
55+
56+ var windowsAppAngleEGL = Path .join ([windowsProjectPath , ' libEGL.dll' ]);
57+ var ceramicAngleEGL = Path .join ([context .ceramicRootPath , ' bin/angle/angle-windows- $winArch /bin/libEGL.dll' ]);
58+ var windowsAppAngleGLESv2 = Path .join ([windowsProjectPath , ' libGLESv2.dll' ]);
59+ var ceramicAngleGLESv2 = Path .join ([context .ceramicRootPath , ' bin/angle/angle-windows- $winArch /bin/libGLESv2.dll' ]);
60+ var windowsAppAngleD3DCompiler = Path .join ([windowsProjectPath , ' d3dcompiler_47.dll' ]);
61+ var ceramicAngleD3DCompiler = Path .join ([context .ceramicRootPath , ' bin/angle/angle-windows- $winArch /bin/d3dcompiler_47.dll' ]);
62+
63+ if (context .defines .exists (' gles_angle' )) {
64+
65+ if (! Files .haveSameLastModified (ceramicAngleEGL , windowsAppAngleEGL )) {
66+ File .copy (ceramicAngleEGL , windowsAppAngleEGL );
67+ }
68+
69+ if (! Files .haveSameLastModified (ceramicAngleGLESv2 , windowsAppAngleGLESv2 )) {
70+ File .copy (ceramicAngleGLESv2 , windowsAppAngleGLESv2 );
71+ }
72+
73+ if (! Files .haveSameLastModified (ceramicAngleD3DCompiler , windowsAppAngleD3DCompiler )) {
74+ File .copy (ceramicAngleD3DCompiler , windowsAppAngleD3DCompiler );
75+ }
76+ }
77+ else {
78+
79+ if (FileSystem .exists (windowsAppAngleEGL )) {
80+ FileSystem .deleteFile (windowsAppAngleEGL );
81+ }
82+
83+ if (FileSystem .exists (windowsAppAngleGLESv2 )) {
84+ FileSystem .deleteFile (windowsAppAngleGLESv2 );
85+ }
86+ }
87+
4388 // Update app icon
4489 if (FileSystem .exists (appIconPath )) {
4590 command (Path .join ([pluginPath , ' resources' , ' rcedit.exe' ]), [
0 commit comments