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.
127 lines
3.4 KiB
127 lines
3.4 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', 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 = ['.', |
|
'../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=c99'], |
|
use = libs, |
|
subsystem = bld.env.MSVC_SUBSYSTEM) |
|
|
|
bld.shlib( |
|
source = source, |
|
target = 'ref_gles2_gl4es', |
|
features = 'c', |
|
includes = includes, |
|
use = libs + ['DL', 'gl4es'], |
|
defines = ['XASH_GL4ES', 'XASH_GL_STATIC'], |
|
install_path = bld.env.LIBDIR, |
|
subsystem = bld.env.MSVC_SUBSYSTEM)
|
|
|