diff --git a/src/glew/glew.nim b/src/glew/glew.nim index f73064d..3a02450 100644 --- a/src/glew/glew.nim +++ b/src/glew/glew.nim @@ -1,19 +1,39 @@ -import os, strutils +import os, strutils, strformat import nimterop/[cimport, build] const ProjectCacheDir* = getProjectCacheDir("nimglew") - baseDir = ProjectCacheDir + baseDir = ProjectCacheDir.sanitizePath srcDir = baseDir / "glew" + buildDir = srcDir / "lib" + includeDir = srcDir / "include" symbolPluginPath = currentSourcePath.parentDir() / "cleansymbols.nim" +when defined(windows): + when defined(amd64): + const flags = &"--libdir={buildDir} --includedir={includeDir} --host=x86_64-w64-mingw32" + else: + const flags = &"--libdir={buildDir} --includedir={includeDir} --host=i686-w64-mingw32" +else: + const flags = &"--libdir={buildDir} --includedir={includeDir}" + +static: + putEnv("GLEW_PREFIX", srcDir) + putEnv("GLEW_DEST", srcDir) + let pathenv = getEnv("PATH") + putEnv("PATH", &"{includeDir}:{buildDir}:{pathenv}") + getHeader( "glew.h", dlurl = "https://github.com/nigels-com/glew/releases/download/glew-$1/glew-$1.zip", outdir = srcDir, - altNames = "libGLEW" + altNames = "libGLEW", + conFlags = flags, + buildTypes = [btAutoConf] ) +cIncludeDir(includeDir) + static: discard # gitPull("https://github.com/lib/project", outdir=srcDir, plist=""" @@ -30,6 +50,6 @@ static: cPluginPath(symbolPluginPath) when defined(glewStatic): - cImport(glewPath, recurse = true, flags = "-f=ast2 -E__,_ -F__,_") + cImport(glewPath, recurse = true, flags = "-f=ast2 -H -E__,_ -F__,_") else: - cImport(glewPath, recurse = true, dynlib = "glewLPath", flags = "-f=ast2 -E__,_ -F__,_") + cImport(glewPath, recurse = true, dynlib = "glewLPath", flags = "-f=ast2 -H -E__,_ -F__,_")