73 lines
2.1 KiB
73 lines
2.1 KiB
#! /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 |
|
)
|
|
|