Initial glew wrapper
This commit is contained in:
parent
f91d063d6c
commit
05cddea5e9
6 changed files with 30 additions and 19 deletions
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
author = "Joey Yakimowich-Payne"
|
author = "Joey Yakimowich-Payne"
|
||||||
description = "Nimterop template"
|
description = "Autogenerated glew bindings for Nim"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
srcDir = "src"
|
srcDir = "src"
|
||||||
|
|
||||||
|
|
@ -10,4 +10,4 @@ srcDir = "src"
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
|
|
||||||
requires "nim >= 1.0.6", "nimterop#head", "regex"
|
requires "nim >= 1.0.6", "nimterop#head", "regex >= 0.14.1"
|
||||||
2
nim.cfg
2
nim.cfg
|
|
@ -1 +1 @@
|
||||||
-d:Project_SetVer="M.M.V" -d:Project_DL -d:Project_Static
|
-d:GLEW_SetVer="2.1.0" -d:glewDL -d:glewStatic
|
||||||
|
|
|
||||||
3
src/glew.nim
Normal file
3
src/glew.nim
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
import glew/glew
|
||||||
|
|
||||||
|
export glew
|
||||||
|
|
@ -15,13 +15,27 @@ proc nothing(m: RegexMatch, s: string): string =
|
||||||
return s[m.group(0)[0]]
|
return s[m.group(0)[0]]
|
||||||
|
|
||||||
const replacements = [
|
const replacements = [
|
||||||
re"^PREFIX_(.)",
|
re"^glew(.)",
|
||||||
]
|
]
|
||||||
|
|
||||||
const underscoreReg = re"_(.)"
|
const underscoreReg = re"_(.)"
|
||||||
|
|
||||||
# Symbol renaming examples
|
# Symbol renaming examples
|
||||||
proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} =
|
proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} =
|
||||||
|
if sym.name.startsWith("GL_BYTE"):
|
||||||
|
sym.name = "CGL_BYTE"
|
||||||
|
if sym.name.startsWith("GL_SHORT"):
|
||||||
|
sym.name = "CGL_SHORT"
|
||||||
|
if sym.name.startsWith("GL_INT"):
|
||||||
|
sym.name = "CGL_INT"
|
||||||
|
if sym.name.startsWith("GL_FLOAT"):
|
||||||
|
sym.name = "CGL_FLOAT"
|
||||||
|
if sym.name.startsWith("GL_DOUBLE"):
|
||||||
|
sym.name = "CGL_DOUBLE"
|
||||||
|
if sym.name.startsWith("GL_FIXED"):
|
||||||
|
sym.name = "CGL_FIXED"
|
||||||
|
if sym.name.startsWith("PFNGLGETTRANSFORMFEEDBACKIVPROC"):
|
||||||
|
sym.name = "CPFNGLGETTRANSFORMFEEDBACKIVPROC"
|
||||||
if sym.kind == nskProc or sym.kind == nskType or sym.kind == nskConst:
|
if sym.kind == nskProc or sym.kind == nskType or sym.kind == nskConst:
|
||||||
if sym.name != "_":
|
if sym.name != "_":
|
||||||
sym.name = sym.name.strip(chars={'_'}).replace("__", "_")
|
sym.name = sym.name.strip(chars={'_'}).replace("__", "_")
|
||||||
|
|
@ -2,18 +2,17 @@ import os, strutils, strformat
|
||||||
import nimterop/[cimport, build]
|
import nimterop/[cimport, build]
|
||||||
|
|
||||||
const
|
const
|
||||||
ProjectCacheDir* = currentSourcePath.parentDir().parentDir() / "build" #getProjectCacheDir("nimsdl2")
|
ProjectCacheDir* = getProjectCacheDir("nimglew")
|
||||||
baseDir = SDLCacheDir
|
baseDir = ProjectCacheDir
|
||||||
srcDir = baseDir / "sdl2"
|
srcDir = baseDir / "glew"
|
||||||
buildDir = srcDir / "buildcache"
|
buildDir = srcDir / "buildcache"
|
||||||
symbolPluginPath = currentSourcePath.parentDir() / "cleansymbols.nim"
|
symbolPluginPath = currentSourcePath.parentDir() / "cleansymbols.nim"
|
||||||
|
|
||||||
getHeader(
|
getHeader(
|
||||||
"template.h",
|
"glew.h",
|
||||||
dlurl = "https://download.com/template-$1.tar.gz",
|
dlurl = "https://github.com/nigels-com/glew/releases/download/glew-$1/glew-$1.zip",
|
||||||
outdir = srcDir,
|
outdir = srcDir,
|
||||||
cmakeFlags = "-F flag",
|
altNames = "libGLEW"
|
||||||
conFlags = "-F flag"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
static:
|
static:
|
||||||
|
|
@ -28,12 +27,10 @@ static:
|
||||||
# let contents = readFile(srcDir/"src"/"dynapi"/"SDL_dynapi_procs.h")
|
# let contents = readFile(srcDir/"src"/"dynapi"/"SDL_dynapi_procs.h")
|
||||||
# writeFile(srcDir/"src"/"dynapi"/"SDL_dynapi_procs.c", contents
|
# writeFile(srcDir/"src"/"dynapi"/"SDL_dynapi_procs.c", contents
|
||||||
|
|
||||||
cOverride:
|
|
||||||
discard
|
|
||||||
|
|
||||||
cPluginPath(symbolPluginPath)
|
cPluginPath(symbolPluginPath)
|
||||||
|
|
||||||
when defined(Project_Static):
|
when defined(glewStatic):
|
||||||
cImport(Project_Path, recurse = true, flags = "-f=ast2 -E__,_ -F__,_")
|
cImport(glewPath, recurse = true, flags = "-f=ast2 -E__,_ -F__,_")
|
||||||
else:
|
else:
|
||||||
cImport(Project_Path, recurse = true, dynlib = "Project_LPath", flags = "-f=ast2 -E__,_ -F__,_")
|
cImport(glewPath, recurse = true, dynlib = "glewLPath", flags = "-f=ast2 -E__,_ -F__,_")
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
import project/project
|
|
||||||
|
|
||||||
export project
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue