Initial working project
This commit is contained in:
parent
920e8573ef
commit
e6c5d2f1d0
7 changed files with 75 additions and 47 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 = "GLFW Bindings"
|
||||||
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", "https://github.com/jyapayne/nimterop#367ec05", "regex"
|
||||||
1
nim.cfg
1
nim.cfg
|
|
@ -1 +0,0 @@
|
||||||
-d:Project_SetVer="M.M.V" -d:Project_DL -d:Project_Static
|
|
||||||
3
src/glfw.nim
Normal file
3
src/glfw.nim
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
import glfw/glfw
|
||||||
|
|
||||||
|
export glfw
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import macros, nimterop / plugin
|
import macros, nimterop / plugin
|
||||||
import strutils, regex
|
import strutils, regex
|
||||||
import sets
|
|
||||||
|
|
||||||
proc firstLetterLower(m: RegexMatch, s: string): string =
|
proc firstLetterLower(m: RegexMatch, s: string): string =
|
||||||
if m.groupsCount > 0 and m.group(0).len > 0:
|
if m.groupsCount > 0 and m.group(0).len > 0:
|
||||||
|
|
@ -15,13 +14,17 @@ 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"^GLFW_(.)",
|
||||||
|
re"^GLFW(.)",
|
||||||
|
re"^glfw(.)",
|
||||||
]
|
]
|
||||||
|
|
||||||
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 == "GLFW_CURSOR":
|
||||||
|
sym.name = "GLFW_INPUT_MODE_CURSOR"
|
||||||
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("__", "_")
|
||||||
|
|
@ -32,6 +35,11 @@ proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} =
|
||||||
sym.name = sym.name.replace(rep, firstLetterLower)
|
sym.name = sym.name.replace(rep, firstLetterLower)
|
||||||
except:
|
except:
|
||||||
discard
|
discard
|
||||||
|
elif sym.kind == nskType:
|
||||||
|
try:
|
||||||
|
sym.name = sym.name.replace(rep, camelCase)
|
||||||
|
except:
|
||||||
|
discard
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
sym.name = sym.name.replace(rep, nothing)
|
sym.name = sym.name.replace(rep, nothing)
|
||||||
60
src/glfw/glfw.nim
Normal file
60
src/glfw/glfw.nim
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
import os, strutils, strformat
|
||||||
|
import nimterop/[cimport, build, globals]
|
||||||
|
|
||||||
|
const
|
||||||
|
ProjectCacheDir* = getProjectCacheDir("nimglfw")
|
||||||
|
baseDir = ProjectCacheDir
|
||||||
|
srcDir = baseDir / "glfw"
|
||||||
|
buildDir = srcDir / "buildcache"
|
||||||
|
symbolPluginPath = currentSourcePath.parentDir() / "cleansymbols.nim"
|
||||||
|
defs = """
|
||||||
|
glfw3SetVer=05dd2fa
|
||||||
|
glfw3Git
|
||||||
|
glfw3Static
|
||||||
|
"""
|
||||||
|
|
||||||
|
setDefines(defs.splitLines())
|
||||||
|
|
||||||
|
{.passL: "-lpthread".}
|
||||||
|
getHeader(
|
||||||
|
"glfw3.h",
|
||||||
|
giturl = "https://github.com/glfw/glfw",
|
||||||
|
outdir = srcDir,
|
||||||
|
altNames = "glfw,glfw3",
|
||||||
|
cmakeFlags = &"-DCMAKE_C_FLAGS=-lpthread"
|
||||||
|
)
|
||||||
|
|
||||||
|
static:
|
||||||
|
discard
|
||||||
|
# cSkipSymbol @[]
|
||||||
|
# cDebug()
|
||||||
|
# cDisableCaching()
|
||||||
|
|
||||||
|
# cOverride:
|
||||||
|
# discard
|
||||||
|
|
||||||
|
cIncludeDir(srcDir/"include"/"GLFW")
|
||||||
|
cPluginPath(symbolPluginPath)
|
||||||
|
|
||||||
|
when isDefined(glfw3Static):
|
||||||
|
cImport(srcDir/"include"/"GLFW"/"glfw3.h", recurse = true, flags = "-f=ast2 -E__,_ -F__,_ -H")
|
||||||
|
else:
|
||||||
|
cImport(srcDir/"include"/"GLFW"/"glfw3.h", recurse = true, dynlib = "glfw3LPath", flags = "-f=ast2 -E__,_ -F__,_ -H")
|
||||||
|
|
||||||
|
const
|
||||||
|
KEY_LAST* = KEY_MENU
|
||||||
|
MOUSE_BUTTON_LAST* = MOUSE_BUTTON_8
|
||||||
|
MOUSE_BUTTON_LEFT* = MOUSE_BUTTON_1
|
||||||
|
MOUSE_BUTTON_RIGHT* = MOUSE_BUTTON_2
|
||||||
|
MOUSE_BUTTON_MIDDLE* = MOUSE_BUTTON_3
|
||||||
|
JOYSTICK_LAST* = JOYSTICK_16
|
||||||
|
GAMEPAD_BUTTON_LAST* = GAMEPAD_BUTTON_DPAD_LEFT
|
||||||
|
GAMEPAD_BUTTON_CROSS* = GAMEPAD_BUTTON_A
|
||||||
|
GAMEPAD_BUTTON_CIRCLE* = GAMEPAD_BUTTON_B
|
||||||
|
GAMEPAD_BUTTON_SQUARE* = GAMEPAD_BUTTON_X
|
||||||
|
GAMEPAD_BUTTON_TRIANGLE* = GAMEPAD_BUTTON_Y
|
||||||
|
GAMEPAD_AXIS_LAST* = GAMEPAD_AXIS_RIGHT_TRIGGER
|
||||||
|
OPENGL_DEBUG_CONTEXT* = CONTEXT_DEBUG
|
||||||
|
HRESIZE_CURSOR* = RESIZE_EW_CURSOR
|
||||||
|
VRESIZE_CURSOR* = RESIZE_NS_CURSOR
|
||||||
|
HAND_CURSOR* = POINTING_HAND_CURSOR
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
import project/project
|
|
||||||
|
|
||||||
export project
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
import os, strutils, strformat
|
|
||||||
import nimterop/[cimport, build]
|
|
||||||
|
|
||||||
const
|
|
||||||
ProjectCacheDir* = currentSourcePath.parentDir().parentDir() / "build" #getProjectCacheDir("nimsdl2")
|
|
||||||
baseDir = SDLCacheDir
|
|
||||||
srcDir = baseDir / "sdl2"
|
|
||||||
buildDir = srcDir / "buildcache"
|
|
||||||
symbolPluginPath = currentSourcePath.parentDir() / "cleansymbols.nim"
|
|
||||||
|
|
||||||
getHeader(
|
|
||||||
"template.h",
|
|
||||||
dlurl = "https://download.com/template-$1.tar.gz",
|
|
||||||
outdir = srcDir,
|
|
||||||
cmakeFlags = "-F flag",
|
|
||||||
conFlags = "-F flag"
|
|
||||||
)
|
|
||||||
|
|
||||||
static:
|
|
||||||
discard
|
|
||||||
# gitPull("https://github.com/lib/project", outdir=srcDir, plist="""
|
|
||||||
# src/*.h
|
|
||||||
# src/*.c
|
|
||||||
# """, checkout = "1f9c8864fc556a1be4d4bf1d6bfe20cde25734b4")
|
|
||||||
# cSkipSymbol @[]
|
|
||||||
# cDebug()
|
|
||||||
# cDisableCaching()
|
|
||||||
# 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__,_")
|
|
||||||
else:
|
|
||||||
cImport(Project_Path, recurse = true, dynlib = "Project_LPath", flags = "-f=ast2 -E__,_ -F__,_")
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue