Build: Fixed GiveFnptrsToDll not being found on Windows

Also fixed server DLL being named server.dll instead of hl.dll.
This commit is contained in:
Jonathan Poncelet 2019-10-31 08:14:36 +00:00
parent 71afe6e204
commit 1bc65c15f5
2 changed files with 22 additions and 16 deletions

View File

@ -10,8 +10,15 @@ def options(opt):
return
def configure(conf):
# stub
return
if conf.env.DEST_OS == 'win32':
# 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', f'/def:{hlDefNode.abspath()}')
else:
conf.fatal("Could not find hl.def")
def build(bld):
defines = []
@ -61,7 +68,7 @@ def build(bld):
bld.shlib(
source = source,
target = 'server',
target = bld.env.SERVER_NAME,
features = 'c cxx',
includes = includes,
defines = defines,

11
wscript
View File

@ -40,14 +40,13 @@ def options(opt):
grp.add_option('--enable-poly-opt', action = 'store_true', dest = 'POLLY', default = False,
help = 'enable polyhedral optimization if possible [default: %default]')
opt.recurse('cl_dll dlls')
opt.load('xcompile compiler_cxx compiler_c clang_compilation_database strip_on_install')
if sys.platform == 'win32':
opt.load('msvc msdev msvs')
opt.load('reconfigure')
opt.load('reconfigure subproject')
opt.add_subproject(["cl_dll", "dlls"])
def configure(conf):
# Configuration
@ -220,10 +219,10 @@ def configure(conf):
conf.define('CLIENT_WEAPONS', '1')
conf.recurse('cl_dll dlls')
conf.add_subproject(["cl_dll", "dlls"])
def build(bld):
bld.recurse('cl_dll dlls')
bld.add_subproject(["cl_dll", "dlls"])