fix for cross-builds targeting macosx
This commit is contained in:
parent
f0bc5568a7
commit
2d2e3b943c
|
@ -103,23 +103,19 @@ msvc_buildtype_args = {'plain': [],
|
||||||
'minsize': ["/MD", "/Zi", "/Os", "/Ob1"],
|
'minsize': ["/MD", "/Zi", "/Os", "/Ob1"],
|
||||||
}
|
}
|
||||||
|
|
||||||
gnulike_buildtype_linker_args = {}
|
apple_buildtype_linker_args = {'plain': [],
|
||||||
|
'debug': [],
|
||||||
|
'debugoptimized': [],
|
||||||
|
'release': [],
|
||||||
|
'minsize': [],
|
||||||
|
}
|
||||||
|
|
||||||
|
gnulike_buildtype_linker_args = {'plain': [],
|
||||||
if mesonlib.is_osx():
|
'debug': [],
|
||||||
gnulike_buildtype_linker_args.update({'plain': [],
|
'debugoptimized': [],
|
||||||
'debug': [],
|
'release': ['-Wl,-O1'],
|
||||||
'debugoptimized': [],
|
'minsize': [],
|
||||||
'release': [],
|
}
|
||||||
'minsize': [],
|
|
||||||
})
|
|
||||||
else:
|
|
||||||
gnulike_buildtype_linker_args.update({'plain': [],
|
|
||||||
'debug': [],
|
|
||||||
'debugoptimized': [],
|
|
||||||
'release': ['-Wl,-O1'],
|
|
||||||
'minsize': [],
|
|
||||||
})
|
|
||||||
|
|
||||||
msvc_buildtype_linker_args = {'plain': [],
|
msvc_buildtype_linker_args = {'plain': [],
|
||||||
'debug': [],
|
'debug': [],
|
||||||
|
@ -286,12 +282,12 @@ def get_base_link_args(options, linker, is_shared_module):
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
if not is_shared_module and options['b_lundef'].value:
|
if not is_shared_module and 'b_lundef' in linker.base_options and options['b_lundef'].value:
|
||||||
args.append('-Wl,--no-undefined')
|
args.append('-Wl,--no-undefined')
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
if options['b_asneeded'].value:
|
if 'b_asneeded' in linker.base_options and options['b_asneeded'].value:
|
||||||
args.append('-Wl,--as-needed')
|
args.append('-Wl,--as-needed')
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
@ -2128,6 +2124,8 @@ class GnuCompiler:
|
||||||
return gnulike_buildtype_args[buildtype]
|
return gnulike_buildtype_args[buildtype]
|
||||||
|
|
||||||
def get_buildtype_linker_args(self, buildtype):
|
def get_buildtype_linker_args(self, buildtype):
|
||||||
|
if self.gcc_type == GCC_OSX:
|
||||||
|
return apple_buildtype_linker_args[buildtype]
|
||||||
return gnulike_buildtype_linker_args[buildtype]
|
return gnulike_buildtype_linker_args[buildtype]
|
||||||
|
|
||||||
def get_always_args(self):
|
def get_always_args(self):
|
||||||
|
@ -2275,6 +2273,8 @@ class ClangCompiler():
|
||||||
return gnulike_buildtype_args[buildtype]
|
return gnulike_buildtype_args[buildtype]
|
||||||
|
|
||||||
def get_buildtype_linker_args(self, buildtype):
|
def get_buildtype_linker_args(self, buildtype):
|
||||||
|
if self.clang_type == CLANG_OSX:
|
||||||
|
return apple_buildtype_linker_args[buildtype]
|
||||||
return gnulike_buildtype_linker_args[buildtype]
|
return gnulike_buildtype_linker_args[buildtype]
|
||||||
|
|
||||||
def get_pch_suffix(self):
|
def get_pch_suffix(self):
|
||||||
|
@ -2435,6 +2435,8 @@ end program prog
|
||||||
return gnulike_buildtype_args[buildtype]
|
return gnulike_buildtype_args[buildtype]
|
||||||
|
|
||||||
def get_buildtype_linker_args(self, buildtype):
|
def get_buildtype_linker_args(self, buildtype):
|
||||||
|
if mesonlib.is_osx():
|
||||||
|
return apple_buildtype_linker_args[buildtype]
|
||||||
return gnulike_buildtype_linker_args[buildtype]
|
return gnulike_buildtype_linker_args[buildtype]
|
||||||
|
|
||||||
def split_shlib_to_parts(self, fname):
|
def split_shlib_to_parts(self, fname):
|
||||||
|
|
|
@ -386,7 +386,7 @@ class Environment():
|
||||||
version = self.get_gnu_version_from_defines(defines)
|
version = self.get_gnu_version_from_defines(defines)
|
||||||
return GnuCCompiler(ccache + [compiler], version, gtype, is_cross, exe_wrap, defines)
|
return GnuCCompiler(ccache + [compiler], version, gtype, is_cross, exe_wrap, defines)
|
||||||
if 'clang' in out:
|
if 'clang' in out:
|
||||||
if 'Apple' in out:
|
if 'Apple' in out or for_darwin(want_cross, self):
|
||||||
cltype = CLANG_OSX
|
cltype = CLANG_OSX
|
||||||
else:
|
else:
|
||||||
cltype = CLANG_STANDARD
|
cltype = CLANG_STANDARD
|
||||||
|
|
Loading…
Reference in New Issue