#! /usr/bin/env python # encoding: utf-8 # a1batross, mittorn, 2018 from waflib import Utils import os def options(opt): 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_value('LINKFLAGS', '/def:%s' % hlDefNode.abspath()) else: conf.fatal("Could not find hl.def") def build(bld): excluded_files = ['mpstubb.cpp', 'stats.cpp', 'Wxdebug.cpp', 'zx/bumplight.cpp', 'zx/debugger.cpp', 'zx/teamdm.cpp', 'zx/bot_chat.cpp', 'zx/bot_client.cpp', 'zx/bot_models.cpp', 'zx/bot_navigate.cpp', 'zx/bot_start.cpp', 'zx/op_eagle.cpp', 'zx/namefunc.cpp', 'zx/hgrunt_blackop.cpp', 'zx/linkfunc.cpp', 'zx/hands.cpp', 'zx/engine.cpp', 'zx/waypoint.cpp', 'zx/dll.cpp', 'zx/game_config.cpp', 'zx/nvg.cpp', 'zx/observer.cpp' ] source = bld.path.ant_glob('**/*.cpp', excl=excluded_files) source += bld.path.parent.ant_glob('pm_shared/*.c') source += ['../game_shared/vcs_info.cpp'] defines = [] if bld.env.USE_VOICEMGR: source += ['../game_shared/voice_gamemgr.cpp'] else: defines += ['NO_VOICEGAMEMGR'] includes = [ '.', 'zx', '../common', '../engine', '../pm_shared', '../game_shared', '../public' ] if bld.env.DEST_OS not in ['android', 'dos']: install_path = os.path.join(bld.env.GAMEDIR, bld.env.SERVER_INSTALL_DIR) else: install_path = bld.env.PREFIX bld.shlib( source = source, target = bld.env.SERVER_LIBRARY_NAME + bld.env.POSTFIX, name = 'server', features = 'c cxx', includes = includes, defines = defines, install_path = install_path, subsystem = bld.env.MSVC_SUBSYSTEM, idx = bld.get_taskgen_count() )