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"
|
||||
author = "Joey Yakimowich-Payne"
|
||||
description = "Nimterop template"
|
||||
description = "Autogenerated glew bindings for Nim"
|
||||
license = "MIT"
|
||||
srcDir = "src"
|
||||
|
||||
|
|
@ -10,4 +10,4 @@ srcDir = "src"
|
|||
|
||||
# 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]]
|
||||
|
||||
const replacements = [
|
||||
re"^PREFIX_(.)",
|
||||
re"^glew(.)",
|
||||
]
|
||||
|
||||
const underscoreReg = re"_(.)"
|
||||
|
||||
# Symbol renaming examples
|
||||
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.name != "_":
|
||||
sym.name = sym.name.strip(chars={'_'}).replace("__", "_")
|
||||
|
|
@ -2,18 +2,17 @@ import os, strutils, strformat
|
|||
import nimterop/[cimport, build]
|
||||
|
||||
const
|
||||
ProjectCacheDir* = currentSourcePath.parentDir().parentDir() / "build" #getProjectCacheDir("nimsdl2")
|
||||
baseDir = SDLCacheDir
|
||||
srcDir = baseDir / "sdl2"
|
||||
ProjectCacheDir* = getProjectCacheDir("nimglew")
|
||||
baseDir = ProjectCacheDir
|
||||
srcDir = baseDir / "glew"
|
||||
buildDir = srcDir / "buildcache"
|
||||
symbolPluginPath = currentSourcePath.parentDir() / "cleansymbols.nim"
|
||||
|
||||
getHeader(
|
||||
"template.h",
|
||||
dlurl = "https://download.com/template-$1.tar.gz",
|
||||
"glew.h",
|
||||
dlurl = "https://github.com/nigels-com/glew/releases/download/glew-$1/glew-$1.zip",
|
||||
outdir = srcDir,
|
||||
cmakeFlags = "-F flag",
|
||||
conFlags = "-F flag"
|
||||
altNames = "libGLEW"
|
||||
)
|
||||
|
||||
static:
|
||||
|
|
@ -28,12 +27,10 @@ static:
|
|||
# let contents = readFile(srcDir/"src"/"dynapi"/"SDL_dynapi_procs.h")
|
||||
# writeFile(srcDir/"src"/"dynapi"/"SDL_dynapi_procs.c", contents
|
||||
|
||||
cOverride:
|
||||
discard
|
||||
|
||||
cPluginPath(symbolPluginPath)
|
||||
|
||||
when defined(Project_Static):
|
||||
cImport(Project_Path, recurse = true, flags = "-f=ast2 -E__,_ -F__,_")
|
||||
when defined(glewStatic):
|
||||
cImport(glewPath, recurse = true, flags = "-f=ast2 -E__,_ -F__,_")
|
||||
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