#! /usr/bin/env python # encoding: utf-8 # mittorn, 2018 from waflib import Logs import os top = '.' def options(opt): grp = opt.add_option_group('ref_gl options') grp.add_option('--enable-static-gl', action='store_true', dest='GL_STATIC', default=False, help = 'enable direct linking to opengl [default: %default]') grp.add_option('--enable-gles1', action='store_true', dest='NANOGL', default=False, help = 'enable gles1 renderer [default: %default]') grp.add_option('--enable-gles2', action='store_true', dest='GLWES', default=False, help = 'enable gles2 renderer [default: %default]') grp.add_option('--enable-gl4es', action='store_true', dest='GL4ES', default=False, help = 'enable gles2 renderer [default: %default]') grp.add_option('--disable-gl', action='store_false', dest='GL', default=True, help = 'disable opengl [default: %default]') # stub return def configure(conf): # check for dedicated server build if conf.options.DEDICATED: return conf.define_cond('SUPPORT_BSP2_FORMAT', conf.options.SUPPORT_BSP2_FORMAT) conf.env.NANOGL = conf.options.NANOGL conf.env.GLWES = conf.options.GLWES conf.env.GL4ES = conf.options.GL4ES conf.env.GL = conf.options.GL if conf.env.NANOGL: conf.add_subproject('nanogl') if conf.env.GLWES: conf.add_subproject('gl-wes-v2') conf.env.GL_STATIC = conf.options.GL_STATIC if conf.env.GL_STATIC: conf.check(lib='GL') conf.define('REF_DLL', 1) if conf.env.DEST_OS2 == 'android': conf.check_cc(lib='log') def build(bld): libs = [ 'public', 'M' ] source = bld.path.ant_glob(['*.c']) includes = ['.', '../filesystem', '../engine', '../engine/common', '../engine/server', '../engine/client', '../public', '../common', '../pm_shared' ] if bld.env.GL: bld.shlib( source = source, target = 'ref_gl', features = 'c', includes = includes, use = libs + (['GL'] if bld.env.GL_STATIC else []), defines = ['XASH_GL_STATIC'] if bld.env.GL_STATIC else [], install_path = bld.env.LIBDIR, subsystem = bld.env.MSVC_SUBSYSTEM ) if bld.env.NANOGL: bld.add_subproject('nanogl') bld.shlib( source = source, target = 'ref_gles1', features = 'c', includes = includes, use = libs + ['DL', 'nanogl'], defines = ['XASH_NANOGL'], install_path = bld.env.LIBDIR, subsystem = bld.env.MSVC_SUBSYSTEM) if bld.env.GLWES: bld.add_subproject('gl-wes-v2') bld.shlib( source = source, target = 'ref_gles2', features = 'c', includes = includes, use = libs + ['DL', 'gl-wes-v2'], defines = ['XASH_WES'], install_path = bld.env.LIBDIR, subsystem = bld.env.MSVC_SUBSYSTEM) if bld.env.GL4ES: gl4es_srcdir = bld.path.find_node('gl4es/src') bld.stlib( source = gl4es_srcdir.ant_glob(['gl/*.c', 'gl/*/*.c', 'glx/hardext.c']), target = 'gl4es', features = 'c', includes = ['gl4es/src', 'gl4es/src/gl', 'gl4es/src/glx', 'gl4es/include'], defines = ['NOX11', 'NO_GBM', 'NO_INIT_CONSTRUCTOR', 'DEFAULT_ES=2', 'NOEGL', 'EXTERNAL_GETPROCADDRESS=GL4ES_GetProcAddress', 'NO_LOADER', 'STATICLIB'], cflags = ['-w', '-fvisibility=hidden', '-std=gnu99'], use = libs, subsystem = bld.env.MSVC_SUBSYSTEM) bld.shlib( source = source, target = 'ref_gl4es', features = 'c', includes = includes, use = libs + ['DL', 'gl4es', 'LOG'], defines = ['XASH_GL4ES', 'XASH_GL_STATIC'], install_path = bld.env.LIBDIR, subsystem = bld.env.MSVC_SUBSYSTEM)