aboutsummaryrefslogtreecommitdiff
path: root/environment.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-08-24 23:40:11 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2013-08-24 23:40:11 +0300
commit195fb0d967a0c60d0425b95d9596347a703aed20 (patch)
treeda5cbef1223bb267bba676c292ee7ab9ced97e23 /environment.py
parent21e4fcc6b0fb1a78c8cb75a5efc816e5bf46f717 (diff)
downloadmeson-195fb0d967a0c60d0425b95d9596347a703aed20.zip
meson-195fb0d967a0c60d0425b95d9596347a703aed20.tar.gz
meson-195fb0d967a0c60d0425b95d9596347a703aed20.tar.bz2
Get alignment from cross file.
Diffstat (limited to 'environment.py')
-rw-r--r--environment.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/environment.py b/environment.py
index 991bbaa..804d931 100644
--- a/environment.py
+++ b/environment.py
@@ -227,7 +227,7 @@ Please define the corresponding variable {1} in your cross compilation definitio
raise EnvironmentException('Could not run sizeof test binary.')
return int(res.stdout)
- def alignment(self, typename):
+ def alignment(self, typename, env):
# A word of warning: this algoritm may be totally incorrect.
# However it worked for me on the cases I tried.
# There is probably a smarter and more robust way to get this
@@ -273,7 +273,23 @@ int main(int argc, char **argv) {
return 0;
}
'''
- res = self.run(templ % typename)
+ varname = 'alignment ' + typename
+ varname = varname.replace(' ', '_')
+ if self.is_cross:
+ val = env.cross_info.get(varname)
+ if val is not None:
+ if isinstance(val, int):
+ return val
+ raise EnvironmentException('Cross variable {0} is not an integer.'.format(varname))
+ cross_failed = False
+ try:
+ res = self.run(templ % typename)
+ except CrossNoRunException:
+ cross_failed = True
+ if cross_failed:
+ message = '''Can not determine alignment of {0} because cross compiled binaries are not runnable.
+Please define the corresponding variable {1} in your cross compilation definition file.'''.format(typename, varname)
+ raise EnvironmentException(message)
if not res.compiled:
raise EnvironmentException('Could not compile alignment test.')
if res.returncode != 0: