[email protected] | 25a967e | 2014-01-31 17:23:56 | [diff] [blame] | 1 | #!/usr/bin/env python |
2 | # Copyright 2014 The Chromium Authors. All rights reserved. | ||||
3 | # Use of this source code is governed by a BSD-style license that can be | ||||
4 | # found in the LICENSE file. | ||||
5 | |||||
6 | """Outputs host CPU architecture in format recognized by gyp.""" | ||||
7 | |||||
8 | import platform | ||||
9 | import re | ||||
10 | import sys | ||||
11 | |||||
12 | |||||
[email protected] | d6bdd54 | 2014-07-09 12:06:21 | [diff] [blame] | 13 | def HostArch(): |
14 | """Returns the host architecture with a predictable string.""" | ||||
[email protected] | 25a967e | 2014-01-31 17:23:56 | [diff] [blame] | 15 | host_arch = platform.machine() |
16 | |||||
17 | # Convert machine type to format recognized by gyp. | ||||
18 | if re.match(r'i.86', host_arch) or host_arch == 'i86pc': | ||||
19 | host_arch = 'ia32' | ||||
20 | elif host_arch in ['x86_64', 'amd64']: | ||||
21 | host_arch = 'x64' | ||||
22 | elif host_arch.startswith('arm'): | ||||
23 | host_arch = 'arm' | ||||
brendan.kirby | a321aeb23 | 2016-06-15 15:48:03 | [diff] [blame] | 24 | elif host_arch.startswith('mips'): |
25 | host_arch = 'mips' | ||||
[email protected] | 25a967e | 2014-01-31 17:23:56 | [diff] [blame] | 26 | |
27 | # platform.machine is based on running kernel. It's possible to use 64-bit | ||||
28 | # kernel with 32-bit userland, e.g. to give linker slightly more memory. | ||||
29 | # Distinguish between different userland bitness by querying | ||||
30 | # the python binary. | ||||
31 | if host_arch == 'x64' and platform.architecture()[0] == '32bit': | ||||
32 | host_arch = 'ia32' | ||||
33 | |||||
[email protected] | d2f38924 | 2014-06-06 09:56:44 | [diff] [blame] | 34 | return host_arch |
[email protected] | 25a967e | 2014-01-31 17:23:56 | [diff] [blame] | 35 | |
[email protected] | d6bdd54 | 2014-07-09 12:06:21 | [diff] [blame] | 36 | def DoMain(_): |
37 | """Hook to be called from gyp without starting a separate python | ||||
38 | interpreter.""" | ||||
39 | return HostArch() | ||||
40 | |||||
[email protected] | 25a967e | 2014-01-31 17:23:56 | [diff] [blame] | 41 | if __name__ == '__main__': |
[email protected] | d6bdd54 | 2014-07-09 12:06:21 | [diff] [blame] | 42 | print DoMain([]) |