Portable Half-Life SDK. GoldSource and Xash3D. Crossplatform.
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.
 
 
 
 
 
 

186 lines
3.5 KiB

#! /usr/bin/env python
# encoding: utf-8
# a1batross, mittorn, 2018
# Edited by Roy for HL:Invasion
# Warning: Completely UNTESTED!
# Warning: Won't work properly as this mod requires TRUE VGUI! (If you can edit it in - you're more than welcome!)
from waflib import Utils
import os
def options(opt):
# stub
return
def configure(conf):
if conf.env.COMPILER_CC == 'msvc':
# hl.def removes MSVC function name decoration from GiveFnptrsToDll on Windows.
# Without this, the lookup for this function fails.
hlDefNode = conf.path.find_resource("./hl.def")
if hlDefNode is not None:
conf.env.append_unique('LINKFLAGS', '/def:%s' % hlDefNode.abspath())
else:
conf.fatal("Could not find hl.def")
def build(bld):
source = bld.path.parent.ant_glob([
'pm_shared/*.c',
])
source += [
'aflock.cpp',
'agrunt.cpp',
'airtank.cpp',
'animating.cpp',
'animation.cpp',
'apache.cpp',
'barnacle.cpp',
'barney.cpp',
'bigmomma.cpp',
'bloater.cpp',
'bmodels.cpp',
'briquet.cpp',
'bullsquid.cpp',
'buttons.cpp',
'cbase.cpp',
'client.cpp',
'combat.cpp',
'controller.cpp',
'crowbar.cpp',
'defaultai.cpp',
'diablo.cpp',
'doors.cpp',
'effects.cpp',
'explode.cpp',
'fgrenade.cpp',
'flybee.cpp',
'flyingmonster.cpp',
'fog.cpp',
'fsniper.cpp',
'func_break.cpp',
'func_tank.cpp',
'func_vgui.cpp',
'game.cpp',
'gamerules.cpp',
'gargantua.cpp',
'gauss.cpp',
'genericmonster.cpp',
'ggrenade.cpp',
'globals.cpp',
'gman.cpp',
'h_ai.cpp',
'h_battery.cpp',
'h_cine.cpp',
'h_cycler.cpp',
'h_export.cpp',
'handgrenade.cpp',
'hassassin.cpp',
'headcrab.cpp',
'healthkit.cpp',
'hgrunt.cpp',
'glock.cpp',
'hornet.cpp',
'houndeye.cpp',
'ichthyosaur.cpp',
'irgun.cpp',
'islave.cpp',
'items.cpp',
'leech.cpp',
'lflammes.cpp',
'lights.cpp',
'luciole.cpp',
'm16.cpp',
'maprules.cpp',
'miroir.cpp',
'monstermaker.cpp',
'monsters.cpp',
'monsters.h',
'monsterstate.cpp',
'mortar.cpp',
'mp5.cpp',
'multiplay_gamerules.cpp',
'music.cpp',
'nihilanth.cpp',
'nodes.cpp',
'osprey.cpp',
'pathcorner.cpp',
'plane.cpp',
'plats.cpp',
'player.cpp',
'python.cpp',
'radiomsg.cpp',
'rat.cpp',
'roach.cpp',
'rpg.cpp',
'rpggrunt.cpp',
'satchel.cpp',
'schedule.cpp',
'scientist.cpp',
'scripted.cpp',
'shotgun.cpp',
'singleplay_gamerules.cpp',
'skill.cpp',
'sniper.cpp',
'sound.cpp',
'soundent.cpp',
'spectator.cpp',
'squadmonster.cpp',
'squeakgrenade.cpp',
'subs.cpp',
'supergun.cpp',
't_sub.cpp',
'talkmonster.cpp',
'tank.cpp',
'teamplay_gamerules.cpp',
'tempmonster.cpp',
'tentacle.cpp',
'triggers.cpp',
'tripmine.cpp',
'turret.cpp',
'util.cpp',
'util.h',
'weapons.cpp',
'world.cpp',
'xen.cpp',
'zombie.cpp'
]
includes = [
'.',
'../common',
'../engine',
'../pm_shared',
'../game_shared',
'../public'
]
defines = []
if bld.env.VOICEMGR:
source += bld.path.parent.ant_glob([
'game_shared/voice_gamemgr.cpp',
])
else:
defines += ['NO_VOICEGAMEMGR']
libs = []
if bld.env.DEST_OS not in ['android', 'dos']:
install_path = os.path.join(bld.env.GAMEDIR, bld.env.SERVER_DIR)
else:
install_path = bld.env.PREFIX
bld.shlib(
source = source,
target = bld.env.SERVER_NAME + bld.env.POSTFIX,
name = 'server',
features = 'c cxx',
includes = includes,
defines = defines,
use = libs,
install_path = install_path,
subsystem = bld.env.MSVC_SUBSYSTEM,
idx = bld.get_taskgen_count()
)