#! /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', help = 'don\'t load opengl in runtime, instead link to libGL directly(default: False)') grp.add_option('--enable-gles1', action='store_true', dest='NANOGL', help = 'enable gles1 renderer by linking nanogl statically(put source to ref_gl directory)') grp.add_option('--enable-gles2', action='store_true', dest='GLWES', help = 'enable gles2 renderer by linking gl-wes-v2 statically(put source to ref_gl directory)') grp.add_option('--disable-gl', action='store_false', dest='GL', default=True, help = 'disable building OpenGL renderer(default: False)') # stub return def configure(conf): # check for dedicated server build if conf.options.DEDICATED: return if conf.options.SUPPORT_BSP2_FORMAT: conf.env.append_unique('DEFINES', 'SUPPORT_BSP2_FORMAT') conf.env.NANOGL = conf.options.NANOGL conf.env.GLWES = conf.options.GLWES 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.env.append_unique('DEFINES', 'REF_DLL') if conf.env.DEST_OS2 == 'android': conf.check_cc(lib='log') def build(bld): libs = [ 'public', 'M' ] source = bld.path.ant_glob(['*.c']) includes = ['.', '../engine', '../engine/common', '../engine/server', '../engine/client', '../public', '../common', '../pm_shared' ] def link_gl( glstatic ): if glstatic: return ['GL'] else: return [] def static_gl( glstatic ): if glstatic: return ['XASH_GL_STATIC'] else: return [] if bld.env.GL: bld.shlib( source = source, target = 'ref_gl', features = 'c', includes = includes, use = libs + link_gl(bld.env.GL_STATIC), defines = static_gl(bld.env.GL_STATIC), 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)