3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-12 20:18:18 +00:00

Added support for MSYS2

This commit is contained in:
Christoph M. Wintersteiger 2017-10-30 18:24:38 +00:00
parent 9e20bfe7f9
commit e50470f2c4

View file

@ -72,6 +72,7 @@ IS_FREEBSD=False
IS_OPENBSD=False IS_OPENBSD=False
IS_CYGWIN=False IS_CYGWIN=False
IS_CYGWIN_MINGW=False IS_CYGWIN_MINGW=False
IS_MSYS2=False
VERBOSE=True VERBOSE=True
DEBUG_MODE=False DEBUG_MODE=False
SHOW_CPPS = True SHOW_CPPS = True
@ -152,6 +153,9 @@ def is_cygwin():
def is_cygwin_mingw(): def is_cygwin_mingw():
return IS_CYGWIN_MINGW return IS_CYGWIN_MINGW
def is_msys2():
return IS_MSYS2
def norm_path(p): def norm_path(p):
return os.path.expanduser(os.path.normpath(p)) return os.path.expanduser(os.path.normpath(p))
@ -227,7 +231,7 @@ def rmf(fname):
def exec_compiler_cmd(cmd): def exec_compiler_cmd(cmd):
r = exec_cmd(cmd) r = exec_cmd(cmd)
if is_windows() or is_cygwin_mingw(): if is_windows() or is_cygwin_mingw() or is_cygwin() or is_msys2():
rmf('a.exe') rmf('a.exe')
else: else:
rmf('a.out') rmf('a.out')
@ -606,6 +610,13 @@ elif os.name == 'posix':
IS_CYGWIN=True IS_CYGWIN=True
if (CC != None and "mingw" in CC): if (CC != None and "mingw" in CC):
IS_CYGWIN_MINGW=True IS_CYGWIN_MINGW=True
elif os.uname()[0].startswith('MSYS_NT'):
IS_MSYS2=True
if os.uname()[4] == 'x86_64':
LINUX_X64=True
else:
LINUX_X64=False
def display_help(exit_code): def display_help(exit_code):
print("mk_make.py: Z3 Makefile generator\n") print("mk_make.py: Z3 Makefile generator\n")
@ -1229,7 +1240,7 @@ def get_so_ext():
sysname = os.uname()[0] sysname = os.uname()[0]
if sysname == 'Darwin': if sysname == 'Darwin':
return 'dylib' return 'dylib'
elif sysname == 'Linux' or sysname == 'FreeBSD' or sysname == 'OpenBSD': elif sysname == 'Linux' or sysname == 'FreeBSD' or sysname == 'OpenBSD' or sysname.startswith('MSYS_NT'):
return 'so' return 'so'
elif sysname == 'CYGWIN': elif sysname == 'CYGWIN':
return 'dll' return 'dll'
@ -1783,6 +1794,8 @@ class JavaDLLComponent(Component):
t = t.replace('PLATFORM', 'openbsd') t = t.replace('PLATFORM', 'openbsd')
elif IS_CYGWIN: elif IS_CYGWIN:
t = t.replace('PLATFORM', 'cygwin') t = t.replace('PLATFORM', 'cygwin')
elif IS_MSYS2:
t = t.replace('PLATFORM', 'win32')
else: else:
t = t.replace('PLATFORM', 'win32') t = t.replace('PLATFORM', 'win32')
out.write(t) out.write(t)
@ -2446,7 +2459,7 @@ def mk_config():
if sysname == 'Darwin': if sysname == 'Darwin':
SO_EXT = '.dylib' SO_EXT = '.dylib'
SLIBFLAGS = '-dynamiclib' SLIBFLAGS = '-dynamiclib'
elif sysname == 'Linux': elif sysname == 'Linux' or sysname.startswith('MSYS_NT'):
CXXFLAGS = '%s -D_LINUX_' % CXXFLAGS CXXFLAGS = '%s -D_LINUX_' % CXXFLAGS
OS_DEFINES = '-D_LINUX_' OS_DEFINES = '-D_LINUX_'
SO_EXT = '.so' SO_EXT = '.so'