167 lines
3.1 KiB
167 lines
3.1 KiB
#! /usr/bin/env python |
|
# encoding: utf-8 |
|
# a1batross, mittorn, 2018 |
|
|
|
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 += [ |
|
'agrunt.cpp', |
|
'airtank.cpp', |
|
'aflock.cpp', |
|
'animating.cpp', |
|
'animation.cpp', |
|
'apache.cpp', |
|
'barnacle.cpp', |
|
'barney.cpp', |
|
'bigmomma.cpp', |
|
'bloater.cpp', |
|
'bmodels.cpp', |
|
'bullsquid.cpp', |
|
'buttons.cpp', |
|
'cbase.cpp', |
|
'client.cpp', |
|
'combat.cpp', |
|
'controller.cpp', |
|
'crossbow.cpp', |
|
'crowbar.cpp', |
|
'defaultai.cpp', |
|
'doors.cpp', |
|
'effects.cpp', |
|
'egon.cpp', |
|
'explode.cpp', |
|
'flyingmonster.cpp', |
|
'func_break.cpp', |
|
'func_tank.cpp', |
|
'game.cpp', |
|
'gamerules.cpp', |
|
'gargantua.cpp', |
|
'gauss.cpp', |
|
'genericmonster.cpp', |
|
'ggrenade.cpp', |
|
'globals.cpp', |
|
'glock.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', |
|
'hornet.cpp', |
|
'hornetgun.cpp', |
|
'houndeye.cpp', |
|
'ichthyosaur.cpp', |
|
'islave.cpp', |
|
'items.cpp', |
|
'leech.cpp', |
|
'lights.cpp', |
|
'maprules.cpp', |
|
'monstermaker.cpp', |
|
'monsters.cpp', |
|
'monsterstate.cpp', |
|
'mortar.cpp', |
|
'mp5.cpp', |
|
'multiplay_gamerules.cpp', |
|
'nihilanth.cpp', |
|
'nodes.cpp', |
|
'observer.cpp', |
|
'osprey.cpp', |
|
'pathcorner.cpp', |
|
'plane.cpp', |
|
'plats.cpp', |
|
'player.cpp', |
|
'playermonster.cpp', |
|
'python.cpp', |
|
'rat.cpp', |
|
'roach.cpp', |
|
'rpg.cpp', |
|
'satchel.cpp', |
|
'schedule.cpp', |
|
'scientist.cpp', |
|
'scripted.cpp', |
|
'shotgun.cpp', |
|
'singleplay_gamerules.cpp', |
|
'skill.cpp', |
|
'sound.cpp', |
|
'soundent.cpp', |
|
'spectator.cpp', |
|
'squadmonster.cpp', |
|
'squeakgrenade.cpp', |
|
'subs.cpp', |
|
'talkmonster.cpp', |
|
'teamplay_gamerules.cpp', |
|
'tempmonster.cpp', |
|
'tentacle.cpp', |
|
'triggers.cpp', |
|
'tripmine.cpp', |
|
'turret.cpp', |
|
'util.cpp', |
|
'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() |
|
) |
|
|
|
|