From c06b2df750a847167778d8a21dff30b492e14609 Mon Sep 17 00:00:00 2001 From: Myaamori Date: Tue, 27 Oct 2020 17:07:14 +0000 Subject: [PATCH] meson: set correct flags when compiling LuaJIT on Windows --- subprojects/luajit/src/host/meson.build | 44 +++++++++++++++---------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/subprojects/luajit/src/host/meson.build b/subprojects/luajit/src/host/meson.build index d6ae5c943..5354f153f 100644 --- a/subprojects/luajit/src/host/meson.build +++ b/subprojects/luajit/src/host/meson.build @@ -11,25 +11,33 @@ endif dynasm_dasc = files('../vm_@0@.dasc'.format(dynasm_arch)) dasm = [minilua, files('../../dynasm/dynasm.lua')] -# BUG: meson does not resolve paths correctly for subprojects -hpre = '#include "@0@/../lj_arch.h"'.format(meson.current_source_dir()) - -checkdefs = [ - ['LJ_ARCH_BITS', '64', ['-D', 'P64']], - ['LJ_HASJIT', '1', ['-D', 'JIT']], - ['LJ_HASFFI', '1', ['-D', 'FFI']], - ['LJ_DUALNUM', '1', ['-D', 'DUALNUM']], -] - -if host_machine.cpu_family() == 'x86' - checkdefs += ['__SSE2__', '1', ['-D', 'SSE']] -endif - -foreach def: checkdefs - if cc.get_define(def[0], prefix: hpre) == def[1] - dasm += def[2] +if cc.get_id() == 'msvc' + # the cl.exe preprocessor seemingly removes/expands macros, so hardcode flags + dasm += ['-D', 'WIN', '-D', 'JIT', '-D', 'FFI'] + if host_machine.cpu_family() == 'x86_64' + dasm += ['-D', 'P64'] endif -endforeach +else + # BUG: meson does not resolve paths correctly for subprojects + hpre = '#include "@0@/../lj_arch.h"'.format(meson.current_source_dir()) + + checkdefs = [ + ['LJ_ARCH_BITS', '64', ['-D', 'P64']], + ['LJ_HASJIT', '1', ['-D', 'JIT']], + ['LJ_HASFFI', '1', ['-D', 'FFI']], + ['LJ_DUALNUM', '1', ['-D', 'DUALNUM']], + ] + + if host_machine.cpu_family() == 'x86' + checkdefs += ['__SSE2__', '1', ['-D', 'SSE']] + endif + + foreach def: checkdefs + if cc.get_define(def[0], prefix: hpre) == def[1] + dasm += def[2] + endif + endforeach +endif buildvm_src = files( 'buildvm.c',