diff --git a/nim_sdl2.nimble b/sdl2.nimble similarity index 83% rename from nim_sdl2.nimble rename to sdl2.nimble index 8404cc4..8070508 100644 --- a/nim_sdl2.nimble +++ b/sdl2.nimble @@ -13,7 +13,7 @@ requires "nim >= 1.0.6", "nimterop#head" when gorgeEx("nimble path nimterop").exitCode == 0: import nimterop/docs - task docs, "Generate docs": buildDocs(@["src/sdl2_all.nim"], "build/htmldocs") + task docs, "Generate docs": buildDocs(@["src/sdl2.nim"], "build/htmldocs") else: task docs, "Do nothing": discard diff --git a/src/sdl2.nim b/src/sdl2.nim index 8335308..400a943 100644 --- a/src/sdl2.nim +++ b/src/sdl2.nim @@ -1,2 +1,15 @@ -import nim_sdl2 / wrapper -export wrapper \ No newline at end of file +import sdl2/sdl2 +import sdl2/sdl2_gpu +import sdl2/sdl2_image +import sdl2/sdl2_mixer +import sdl2/sdl2_net +import sdl2/sdl2_ttf +import sdl2/sdl2_gfx + +export sdl2 +export sdl2_gpu +export sdl2_image +export sdl2_mixer +export sdl2_net +export sdl2_ttf +export sdl2_gfx \ No newline at end of file diff --git a/src/nim_sdl2/wrapper.nim b/src/sdl2/sdl2.nim similarity index 92% rename from src/nim_sdl2/wrapper.nim rename to src/sdl2/sdl2.nim index fecf596..0944ae6 100644 --- a/src/nim_sdl2/wrapper.nim +++ b/src/sdl2/sdl2.nim @@ -13,7 +13,7 @@ getHeader( ) static: - cSkipSymbol @["bool"] + cSkipSymbol @["bool", "compile_time_assert_SDL_Event"] # cDebug() # cDisableCaching() @@ -120,14 +120,15 @@ cPlugin: proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = # Get rid of leading and trailing underscores # sym.name = sym.name.strip(chars = {'_'}) + if sym.name == "SDL_init_flags": + sym.name = "sdlInitFlags" + if sym.name == "GPU_init_flags": + sym.name = "gpuInitFlags" - # Remove prefixes or suffixes from procs - if sym.name == "__MACOSX__": - sym.name = "MACOSX" if sym.kind == nskProc or sym.kind == nskType or sym.kind == nskConst: if sym.name != "_": - sym.name = sym.name.replace(re"^_+", "") - sym.name = sym.name.replace(re"_+$", "") + sym.name = sym.name.strip(chars={'_'}).replace("___", "_") + sym.name = sym.name.replace(re"^SDL_", "") if sym.name.startsWith("SDLK_"): @@ -136,6 +137,9 @@ cPlugin: if EVENT_TYPES.contains(sym.name): sym.name = "EVENT_" & sym.name + if sym.name == "version": + sym.name = "Version" + if sym.name == "ThreadID": sym.name = "CurrentThreadID" if sym.name == "GLContextResetNotification": diff --git a/src/nim_sdl2_gfx/wrapper.nim b/src/sdl2/sdl2_gfx.nim similarity index 90% rename from src/nim_sdl2_gfx/wrapper.nim rename to src/sdl2/sdl2_gfx.nim index c15d6c1..661e6da 100644 --- a/src/nim_sdl2_gfx/wrapper.nim +++ b/src/sdl2/sdl2_gfx.nim @@ -1,8 +1,8 @@ import os, strutils, strformat -import ../nim_sdl2/wrapper as sdl2_wrapper +import sdl2 import nimterop/[cimport, build] -export sdl2_wrapper +export sdl2 const baseDir = currentSourcePath.parentDir().parentDir().parentDir() @@ -17,9 +17,9 @@ getHeader( altNames = "SDL2_gfx,SDL_gfx" ) -# static: -# cDebug() -# cDisableCaching() +static: + cDebug() + cDisableCaching() cPlugin: import strutils, nre @@ -82,15 +82,10 @@ cPlugin: # Symbol renaming examples proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = # Get rid of leading and trailing underscores - # sym.name = sym.name.strip(chars = {'_'}) - - # Remove prefixes or suffixes from procs - if sym.name == "__MACOSX__": - sym.name = "MACOSX" if sym.kind == nskProc or sym.kind == nskType or sym.kind == nskConst: if sym.name != "_": - sym.name = sym.name.replace(re"^_+", "") - sym.name = sym.name.replace(re"_+$", "") + sym.name = sym.name.strip(chars={'_'}).replace("___", "_") + sym.name = sym.name.replace(re"^SDL_", "") if sym.name.startsWith("SDLK_"): @@ -99,6 +94,9 @@ cPlugin: if EVENT_TYPES.contains(sym.name): sym.name = "EVENT_" & sym.name + if sym.name == "version": + sym.name = "Version" + if sym.name == "ThreadID": sym.name = "CurrentThreadID" if sym.name == "GLContextResetNotification": diff --git a/src/nim_sdl2_gpu/wrapper.nim b/src/sdl2/sdl2_gpu.nim similarity index 81% rename from src/nim_sdl2_gpu/wrapper.nim rename to src/sdl2/sdl2_gpu.nim index 43f27e5..16badc7 100644 --- a/src/nim_sdl2_gpu/wrapper.nim +++ b/src/sdl2/sdl2_gpu.nim @@ -1,7 +1,9 @@ -import os, strformat -import ../nim_sdl2/wrapper +import os, strformat, strutils +import sdl2 import nimterop/[build, cimport] +export sdl2 + const baseDir = currentSourcePath.parentDir().parentDir().parentDir() buildDir = baseDir / "build" @@ -19,9 +21,16 @@ getHeader( &"-DSDL2MAIN_LIBRARY={SDLMainLib} -DSDL2_PATH={sdlDir} -DSDL2_INCLUDE_DIR={sdlIncludeDir} -DSDL_gpu_BUILD_DEMOS=OFF" ) -# static: -# cDebug() -# cDisableCaching() +static: + cDebug() + cDisableCaching() + + # This shouldn't be needed, but for some reason is + let contents = readFile(srcDir/"include/SDL_gpu.h") + let newContents = contents.replace("""typedef struct GPU_Renderer GPU_Renderer; +typedef struct GPU_Target GPU_Target;""", "") + + writeFile(srcDir/"include/SDL_gpu.h", newContents) cOverride: type @@ -91,12 +100,16 @@ cPlugin: # Symbol renaming examples proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = # Remove prefixes or suffixes from procs - sym.name = sym.name.replace(re"^GPU_", "") + if sym.name == "SDL_init_flags": + sym.name = "sdlInitFlags" + if sym.name == "GPU_init_flags": + sym.name = "gpuInitFlags" if sym.kind == nskProc or sym.kind == nskType or sym.kind == nskConst: if sym.name != "_": - sym.name = sym.name.strip(chars = {'_'}) + sym.name = sym.name.strip(chars={'_'}).replace("___", "_") + sym.name = sym.name.replace(re"^GPU_", "") sym.name = sym.name.replace(re"^SDL_", "") if sym.name.startsWith("SDLK_"): @@ -105,6 +118,9 @@ cPlugin: if EVENT_TYPES.contains(sym.name): sym.name = "EVENT_" & sym.name + if sym.name == "version": + sym.name = "Version" + if sym.name == "ThreadID": sym.name = "CurrentThreadID" if sym.name == "GLContextResetNotification": diff --git a/src/nim_sdl2_image/wrapper.nim b/src/sdl2/sdl2_image.nim similarity index 90% rename from src/nim_sdl2_image/wrapper.nim rename to src/sdl2/sdl2_image.nim index d87a123..50ad6dc 100644 --- a/src/nim_sdl2_image/wrapper.nim +++ b/src/sdl2/sdl2_image.nim @@ -1,7 +1,9 @@ import os, strutils, strformat -import ../nim_sdl2/wrapper +import sdl2 import nimterop/[cimport, build] +export sdl2 + const baseDir = currentSourcePath.parentDir().parentDir().parentDir() buildDir = baseDir / "build" @@ -81,15 +83,10 @@ cPlugin: # Symbol renaming examples proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = # Get rid of leading and trailing underscores - # sym.name = sym.name.strip(chars = {'_'}) - - # Remove prefixes or suffixes from procs - if sym.name == "__MACOSX__": - sym.name = "MACOSX" if sym.kind == nskProc or sym.kind == nskType or sym.kind == nskConst: if sym.name != "_": - sym.name = sym.name.replace(re"^_+", "") - sym.name = sym.name.replace(re"_+$", "") + sym.name = sym.name.strip(chars={'_'}).replace("___", "_") + sym.name = sym.name.replace(re"^SDL_", "") if sym.name.startsWith("SDLK_"): @@ -98,6 +95,9 @@ cPlugin: if EVENT_TYPES.contains(sym.name): sym.name = "EVENT_" & sym.name + if sym.name == "version": + sym.name = "Version" + if sym.name == "ThreadID": sym.name = "CurrentThreadID" if sym.name == "GLContextResetNotification": diff --git a/src/nim_sdl2_mixer/wrapper.nim b/src/sdl2/sdl2_mixer.nim similarity index 89% rename from src/nim_sdl2_mixer/wrapper.nim rename to src/sdl2/sdl2_mixer.nim index 37e4410..9a70d80 100644 --- a/src/nim_sdl2_mixer/wrapper.nim +++ b/src/sdl2/sdl2_mixer.nim @@ -1,7 +1,9 @@ import os, strutils, strformat -import ../nim_sdl2/wrapper as sdl2_wrapper +import sdl2 import nimterop/[cimport, build] +export sdl2 + const baseDir = currentSourcePath.parentDir().parentDir().parentDir() buildDir = baseDir / "build" @@ -80,15 +82,10 @@ cPlugin: # Symbol renaming examples proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = # Get rid of leading and trailing underscores - # sym.name = sym.name.strip(chars = {'_'}) - - # Remove prefixes or suffixes from procs - if sym.name == "__MACOSX__": - sym.name = "MACOSX" if sym.kind == nskProc or sym.kind == nskType or sym.kind == nskConst: if sym.name != "_": - sym.name = sym.name.replace(re"^_+", "") - sym.name = sym.name.replace(re"_+$", "") + sym.name = sym.name.strip(chars={'_'}).replace("___", "_") + sym.name = sym.name.replace(re"^SDL_", "") if sym.name.startsWith("SDLK_"): @@ -97,6 +94,9 @@ cPlugin: if EVENT_TYPES.contains(sym.name): sym.name = "EVENT_" & sym.name + if sym.name == "version": + sym.name = "Version" + if sym.name == "ThreadID": sym.name = "CurrentThreadID" if sym.name == "GLContextResetNotification": diff --git a/src/nim_sdl2_net/wrapper.nim b/src/sdl2/sdl2_net.nim similarity index 90% rename from src/nim_sdl2_net/wrapper.nim rename to src/sdl2/sdl2_net.nim index c7a43c2..0bcebc8 100644 --- a/src/nim_sdl2_net/wrapper.nim +++ b/src/sdl2/sdl2_net.nim @@ -1,7 +1,9 @@ import os, strutils, strformat -import ../nim_sdl2/wrapper as sdl2_wrapper +import sdl2 import nimterop/[cimport, build] +export sdl2 + const baseDir = currentSourcePath.parentDir().parentDir().parentDir() buildDir = baseDir / "build" @@ -81,15 +83,10 @@ cPlugin: # Symbol renaming examples proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = # Get rid of leading and trailing underscores - # sym.name = sym.name.strip(chars = {'_'}) - - # Remove prefixes or suffixes from procs - if sym.name == "__MACOSX__": - sym.name = "MACOSX" if sym.kind == nskProc or sym.kind == nskType or sym.kind == nskConst: if sym.name != "_": - sym.name = sym.name.replace(re"^_+", "") - sym.name = sym.name.replace(re"_+$", "") + sym.name = sym.name.strip(chars={'_'}).replace("___", "_") + sym.name = sym.name.replace(re"^SDL_", "") if sym.name.startsWith("SDLK_"): @@ -98,6 +95,9 @@ cPlugin: if EVENT_TYPES.contains(sym.name): sym.name = "EVENT_" & sym.name + if sym.name == "version": + sym.name = "Version" + if sym.name == "ThreadID": sym.name = "CurrentThreadID" if sym.name == "GLContextResetNotification": diff --git a/src/nim_sdl2_ttf/wrapper.nim b/src/sdl2/sdl2_ttf.nim similarity index 90% rename from src/nim_sdl2_ttf/wrapper.nim rename to src/sdl2/sdl2_ttf.nim index f384fc6..07fa44a 100644 --- a/src/nim_sdl2_ttf/wrapper.nim +++ b/src/sdl2/sdl2_ttf.nim @@ -1,7 +1,9 @@ import os, strutils, strformat -import ../nim_sdl2/wrapper as sdl2_wrapper +import sdl2 import nimterop/[cimport, build] +export sdl2 + const baseDir = currentSourcePath.parentDir().parentDir().parentDir() buildDir = baseDir / "build" @@ -84,15 +86,10 @@ cPlugin: # Symbol renaming examples proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = # Get rid of leading and trailing underscores - # sym.name = sym.name.strip(chars = {'_'}) - - # Remove prefixes or suffixes from procs - if sym.name == "__MACOSX__": - sym.name = "MACOSX" if sym.kind == nskProc or sym.kind == nskType or sym.kind == nskConst: if sym.name != "_": - sym.name = sym.name.replace(re"^_+", "") - sym.name = sym.name.replace(re"_+$", "") + sym.name = sym.name.strip(chars={'_'}).replace("___", "_") + sym.name = sym.name.replace(re"^SDL_", "") if sym.name.startsWith("SDLK_"): @@ -101,6 +98,9 @@ cPlugin: if EVENT_TYPES.contains(sym.name): sym.name = "EVENT_" & sym.name + if sym.name == "version": + sym.name = "Version" + if sym.name == "ThreadID": sym.name = "CurrentThreadID" if sym.name == "GLContextResetNotification": diff --git a/src/sdl2_all.nim b/src/sdl2_all.nim deleted file mode 100644 index c5639bc..0000000 --- a/src/sdl2_all.nim +++ /dev/null @@ -1,15 +0,0 @@ -import sdl2 -import sdl2_gpu -import sdl2_image -import sdl2_mixer -import sdl2_net -import sdl2_ttf -import sdl2_gfx - -export sdl2 -export sdl2_gpu -export sdl2_image -export sdl2_mixer -export sdl2_net -export sdl2_ttf -export sdl2_gfx \ No newline at end of file diff --git a/src/sdl2_gfx.nim b/src/sdl2_gfx.nim deleted file mode 100644 index c3778bf..0000000 --- a/src/sdl2_gfx.nim +++ /dev/null @@ -1,2 +0,0 @@ -import nim_sdl2_gfx / wrapper -export wrapper \ No newline at end of file diff --git a/src/sdl2_gpu.nim b/src/sdl2_gpu.nim deleted file mode 100644 index bcc6598..0000000 --- a/src/sdl2_gpu.nim +++ /dev/null @@ -1,2 +0,0 @@ -import nim_sdl2_gpu / wrapper -export wrapper \ No newline at end of file diff --git a/src/sdl2_image.nim b/src/sdl2_image.nim deleted file mode 100644 index 6acb7c3..0000000 --- a/src/sdl2_image.nim +++ /dev/null @@ -1,2 +0,0 @@ -import nim_sdl2_image / wrapper -export wrapper \ No newline at end of file diff --git a/src/sdl2_mixer.nim b/src/sdl2_mixer.nim deleted file mode 100644 index 94aed74..0000000 --- a/src/sdl2_mixer.nim +++ /dev/null @@ -1,2 +0,0 @@ -import nim_sdl2_mixer / wrapper -export wrapper \ No newline at end of file diff --git a/src/sdl2_net.nim b/src/sdl2_net.nim deleted file mode 100644 index 07f14ab..0000000 --- a/src/sdl2_net.nim +++ /dev/null @@ -1,2 +0,0 @@ -import nim_sdl2_net / wrapper -export wrapper \ No newline at end of file diff --git a/src/sdl2_ttf.nim b/src/sdl2_ttf.nim deleted file mode 100644 index 088bd03..0000000 --- a/src/sdl2_ttf.nim +++ /dev/null @@ -1,2 +0,0 @@ -import nim_sdl2_ttf / wrapper -export wrapper \ No newline at end of file