瀏覽代碼

Added support for emscripten on the nim's gen script

Nazari Gonzalez 1 年之前
父節點
當前提交
c16a2d21b5
共有 1 個文件被更改,包括 17 次插入3 次删除
  1. 17 3
      bindgen/gen_nim.py

+ 17 - 3
bindgen/gen_nim.py

@@ -489,27 +489,40 @@ def gen_imports(inp, dep_prefixes):
 def gen_extra(inp):
     if inp['prefix'] in ['sg_']:
         # FIXME: remove when sokol-shdc has been integrated!
-        l('when defined gl:')
+        l('when defined emscripten:')
         l('  const gl*    = true')
         l('  const d3d11* = false')
         l('  const metal* = false')
+        l('  const emscripten* = true')
+        l('elif when defined gl:')
+        l('  const gl*    = true')
+        l('  const d3d11* = false')
+        l('  const metal* = false')
+        l('  const emscripten* = false')
         l('elif defined windows:')
         l('  const gl*    = false')
         l('  const d3d11* = true')
         l('  const metal* = false')
+        l('  const emscripten* = false')
         l('elif defined macosx:')
         l('  const gl*    = false')
         l('  const d3d11* = false')
         l('  const metal* = true')
+        l('  const emscripten* = false')
         l('elif defined linux:')
         l('  const gl*    = true')
         l('  const d3d11* = false')
         l('  const metal* = false')
+        l('  const emscripten* = false')
         l('else:')
         l('  error("unsupported platform")')
         l('')
     if inp['prefix'] in ['sg_', 'sapp_']:
-        l('when defined windows:')
+        l('when defined emscripten:')
+        l('  {.passl:"-lGL -ldl".}')
+        l('  {.passc:"-DSOKOL_GLES3".}')
+        l('  {.passL: "-s USE_WEBGL2=1".}')
+        l('elif defined windows:')
         l('  when not defined vcc:')
         l('    {.passl:"-lkernel32 -luser32 -lshell32 -lgdi32".}')
         l('  when defined gl:')
@@ -540,7 +553,8 @@ def gen_extra(inp):
         l('elif defined macosx:')
         l('  {.passl:"-framework AudioToolbox".}')
         l('elif defined linux:')
-        l('  {.passl:"-lasound -lm -lpthread".}')
+        l('  when not defined emscripten:')
+        l('    {.passl:"-lasound -lm -lpthread".}')
         l('else:')
         l('  error("unsupported platform")')
         l('')