Xash3D FWGS engine.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
2.6 KiB

#! /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')
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)