From a7efe4e3f89524e6f3a2d8d80ba92f91e39435a6 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Thu, 18 May 2017 11:47:38 +0200 Subject: [PATCH] Fix setup.py for MSVC --- buildutils/detect.py | 11 +++++++---- buildutils/misc.py | 4 ++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/buildutils/detect.py b/buildutils/detect.py index 19459b1..03f1be4 100644 --- a/buildutils/detect.py +++ b/buildutils/detect.py @@ -57,11 +57,14 @@ def test_compilation(cfile, compiler=None, **compiler_attrs): lpreargs = ['-m32'] else: lpreargs = ['-m64'] - extra = compiler_attrs.get('extra_compile_args', []) - extra += ['--std=c++14'] + extra_compile_args = compiler_attrs.get('extra_compile_args', []) + extra_compile_args += ['--std=c++14'] + extra_link_args = compiler_attrs.get('extra_link_args', []) + if cc.compiler_type == 'msvc': + extra_link_args += ['/MANIFEST'] - objs = cc.compile([cfile], extra_preargs=cpreargs, extra_postargs=extra) - cc.link_executable(objs, efile, extra_preargs=lpreargs) + objs = cc.compile([cfile], extra_preargs=cpreargs, extra_postargs=extra_compile_args) + cc.link_executable(objs, efile, extra_preargs=lpreargs, extra_postargs=extra_link_args) return efile def compile_and_run(basedir, src, compiler=None, **compiler_attrs): diff --git a/buildutils/misc.py b/buildutils/misc.py index fabb52d..6f0c370 100644 --- a/buildutils/misc.py +++ b/buildutils/misc.py @@ -24,6 +24,8 @@ def customize_mingw(cc): if 'msvcr90' in cc.dll_libraries: cc.dll_libraries.remove('msvcr90') +def customize_msvc(cc): + pass def get_compiler(compiler, **compiler_attrs): """get and customize a compiler""" @@ -32,6 +34,8 @@ def get_compiler(compiler, **compiler_attrs): customize_compiler(cc) if cc.compiler_type == 'mingw32': customize_mingw(cc) + elif cc.compiler_type == 'msvc': + customize_msvc(cc) else: cc = compiler