Skip to content

Commit

Permalink
Adds OpenGL/GLEW checks to scons.
Browse files Browse the repository at this point in the history
Taken mostly verbatim from 3e2eba2
  • Loading branch information
Pentarctagon authored and jyrkive committed Mar 29, 2018
1 parent 92b37d6 commit ff18ce2
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 9 deletions.
12 changes: 3 additions & 9 deletions SConstruct
Expand Up @@ -308,7 +308,7 @@ def Warning(message):

from metasconf import init_metasconf
configure_args = dict(
custom_tests = init_metasconf(env, ["ieee_754", "cplusplus", "python_devel", "sdl", "boost", "cairo", "pango", "pkgconfig", "gettext_tool", "lua"]),
custom_tests = init_metasconf(env, ["ieee_754", "cplusplus", "python_devel", "sdl", "boost", "cairo", "pango", "pkgconfig", "gettext_tool", "lua", "gl"]),
config_h = "$build_dir/config.h",
log_file="$build_dir/config.log", conf_dir="$build_dir/sconf_temp")

Expand Down Expand Up @@ -389,6 +389,8 @@ if env["prereqs"]:
conf.CheckOgg())) & \
conf.CheckPNG() & \
conf.CheckJPG() & \
conf.CheckOpenGL() and \
conf.CheckGLEW() and \
conf.CheckCairo(min_version = "1.10") & \
conf.CheckPango("cairo", require_version = "1.22.0") & \
conf.CheckPKG("fontconfig") & \
Expand Down Expand Up @@ -417,14 +419,6 @@ if env["prereqs"]:
if env["history"]:
client_env.Append(CPPDEFINES = ["HAVE_HISTORY"])

if env["PLATFORM"] == 'darwin':
client_env.Append(FRAMEWORKS = "OpenGL")
client_env.AppendUnique(LIBS = ["GLEW"])
elif env["PLATFORM"] == 'posix':
opengl_config = check_output(["pkg-config", "--libs", "--cflags", "gl", "glew"])
opengl_flags = client_env.ParseFlags(opengl_config)
client_env.MergeFlags(opengl_flags)

if env["forum_user_handler"]:
mysql_config = check_output(["mysql_config", "--libs", "--cflags"]).replace("\n", " ").replace("-DNDEBUG", "")
mysql_flags = env.ParseFlags(mysql_config)
Expand Down
59 changes: 59 additions & 0 deletions scons/gl.py
@@ -0,0 +1,59 @@
# vi: syntax=python:et:ts=4

def CheckOpenGL(context):
context.Message("Checking for OpenGL... ")
env = context.env
backup = env.Clone().Dictionary()

test_program = ""

if env["PLATFORM"] == "win32":
env.AppendUnique(LIBS = ["opengl32"])
test_program += "#include <GL/opengl32.h>\n"
elif env["PLATFORM"] == "darwin":
env.AppendUnique(FRAMEWORKS = "OpenGL")
test_program += "#include <OpenGL/gl.h>\n"
else:
env.AppendUnique(LIBS = ["GL"])
test_program += "#include <GL/gl.h>\n"

test_program += "int main()\n{}\n"

if context.TryLink(test_program, ".c"):
context.Result("yes")
return True
else:
env.Replace(**backup)
context.Result("no")
return False

def CheckGLEW(context):
context.Message("Checking for OpenGL Extension Wrangler... ")
env = context.env
backup = env.Clone().Dictionary()

if env["PLATFORM"] == "win32":
env.AppendUnique(LIBS = ["glew32", "opengl32"])
elif env["PLATFORM"] == "darwin":
env.AppendUnique(LIBS = ["GLEW"])
env.AppendUnique(FRAMEWORKS = "OpenGL")
else:
env.AppendUnique(LIBS = ["GLEW", "GL"])

test_program = """
#include <GL/glew.h>
int main()
{
glewInit();
}
"""

if context.TryLink(test_program, ".c"):
context.Result("yes")
return True
else:
env.Replace(**backup)
context.Result("no")
return False

config_checks = { "CheckOpenGL" : CheckOpenGL, "CheckGLEW" : CheckGLEW }

0 comments on commit ff18ce2

Please sign in to comment.