#! /usr/bin/env python # encoding: utf-8 from waflib import Utils import os import vpc_parser top = '.' PROJECT_NAME = 'client' def options(opt): return games = { 'hl2': ['client_base.vpc', 'client_hl2.vpc'], 'hl2mp': ['client_base.vpc', 'client_hl2mp.vpc'], 'hl1': ['client_base.vpc', 'client_hl1.vpc'], 'episodic': ['client_base.vpc', 'client_episodic.vpc'], 'portal': ['client_base.vpc', 'client_portal.vpc'], 'hl1mp': ['client_base.vpc', 'client_hl1mp.vpc'], 'cstrike': ['client_base.vpc', 'client_cstrike.vpc'], 'dod': ['client_base.vpc', 'client_dod.vpc'] } def configure(conf): game = conf.options.GAMES conf.env.GAMES = game conf.env.append_unique('DEFINES', ['DISABLE_STEAM=1']) if game not in games.keys(): conf.fatal("Couldn't find game: ", game) def build(bld): game = vpc_parser.parse_vpcs( bld.env, games[bld.env.GAMES], '../..' ) includes = [ '.', 'game_controls', '../../common', '../../public', '../../public/tier0', '../../public/tier1', '../../vgui2/include', '../../vgui2/controls', '../shared' ] libs = [ 'tier0', 'particles', 'dmxloader', 'vgui_controls', 'matsys_controls', 'tier1', 'tier2', 'tier3', 'mathlib', 'vstdlib', 'choreoobjects', 'steam_api', 'bitmap', 'vtf', 'RT', 'ZLIB' ] install_path = bld.env.PREFIX if bld.env.DEST_OS != 'android': install_path += '/'+bld.env.GAMES+'/bin' source = [ 'touch.cpp', 'in_touch.cpp' ] source += game["sources"] includes += game["includes"] defines = game["defines"] defines.remove('PROTECTED_THINGS_ENABLE') bld.shlib( source = source, target = PROJECT_NAME, name = PROJECT_NAME, features = 'c cxx', includes = includes, defines = defines, use = libs, install_path = install_path, subsystem = bld.env.MSVC_SUBSYSTEM, idx = bld.get_taskgen_count() )