|
|
|
#! /usr/bin/env python
|
|
|
|
# encoding: utf-8
|
|
|
|
# mittorn, 2018
|
|
|
|
|
|
|
|
VERSION='0.99'
|
|
|
|
APPNAME='xash3d-fwgs'
|
|
|
|
|
|
|
|
top = '.'
|
|
|
|
|
|
|
|
def options(opt):
|
|
|
|
opt.load('compiler_c')
|
|
|
|
# opt.load('msvs')
|
|
|
|
opt.add_option('--dedicated', action = 'store_true', help = 'build dedicated server only' )
|
|
|
|
opt.add_option('--64bits', dest = 'amd64', action = 'store_true', help = 'build 64-bit engine on x86_64' )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def configure(conf):
|
|
|
|
conf.load('compiler_c')
|
|
|
|
conf.env.append_unique('CFLAGS', '-O2')
|
|
|
|
conf.env.append_unique('DEFINES', 'SINGLE_BINARY')
|
|
|
|
conf.env.append_value('LINKFLAGS', '-ldl')
|
|
|
|
conf.env.append_value('LINKFLAGS', '-lm')
|
|
|
|
conf.env.append_value('LINKFLAGS', '-pthread')
|
|
|
|
|
|
|
|
# check for 64-bit builds
|
|
|
|
# TODO: check 32-bit toolchain and dependencies
|
|
|
|
if conf.env.DEST_CPU == 'x86_64' and not conf.options.amd64:
|
|
|
|
conf.env.append_value('LINKFLAGS', '-m32')
|
|
|
|
conf.env.append_value('CFLAGS', '-m32')
|
|
|
|
print('NOTE: will build engine with 64-bit toolchain using -m32')
|
|
|
|
else:
|
|
|
|
print('Warning: 64bit engine may be unstable')
|
|
|
|
|
|
|
|
# check for dedicated server build
|
|
|
|
if conf.options.dedicated:
|
|
|
|
conf.env.append_unique('DEFINES', 'XASH_DEDICATED')
|
|
|
|
conf.env.dedicated = True
|
|
|
|
else:
|
|
|
|
# TODO: add way to specify SDL2 path, move to separate function
|
|
|
|
try:
|
|
|
|
conf.check_cfg(path='sdl2-config', args='--cflags --libs', package='', msg='Checking for SDL2', uselib_store='SDL2')
|
|
|
|
except conf.errors.ConfigurationError:
|
|
|
|
conf.fatal('SDL2 not availiable! If you want to build dedicated server, specify --dedicated')
|
|
|
|
conf.env.append_unique('DEFINES', 'XASH_SDL')
|
|
|
|
|
|
|
|
def build(bld):
|
|
|
|
# basic build: dedicated only, no dependencies
|
|
|
|
use = [];
|
|
|
|
source = bld.path.ant_glob([
|
|
|
|
'common/*.c',
|
|
|
|
'common/imagelib/*.c',
|
|
|
|
'common/soundlib/*.c',
|
|
|
|
'common/soundlib/libmpg/*.c',
|
|
|
|
'server/*.c'])
|
|
|
|
|
|
|
|
# add client files and sdl2 library
|
|
|
|
if not bld.env.dedicated:
|
|
|
|
use += ['SDL2']
|
|
|
|
source += bld.path.ant_glob([
|
|
|
|
'client/*.c',
|
|
|
|
'client/vgui/*.c',
|
|
|
|
'client/avi/*.c',
|
|
|
|
'platform/sdl/*.c'])
|
|
|
|
|
|
|
|
|
|
|
|
bld(
|
|
|
|
target = 'xash',
|
|
|
|
features = 'c cprogram',
|
|
|
|
includes = ['../common', '../pm_shared', 'common', 'server', 'client', 'client/vgui', '.' ],
|
|
|
|
source = source,
|
|
|
|
use = use
|
|
|
|
)
|