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 13 def main(): 14 print DoMain([]) 15 return 0 16 17 def DoMain(_): 18 """Hook to be called from gyp without starting a separate python 19 interpreter.""" 20 host_arch = platform.machine() 21 22 # Convert machine type to format recognized by gyp. 23 if re.match(r'i.86', host_arch) or host_arch == 'i86pc': 24 host_arch = 'ia32' 25 elif host_arch in ['x86_64', 'amd64']: 26 host_arch = 'x64' 27 elif host_arch.startswith('arm'): 28 host_arch = 'arm' 29 30 # platform.machine is based on running kernel. It's possible to use 64-bit 31 # kernel with 32-bit userland, e.g. to give linker slightly more memory. 32 # Distinguish between different userland bitness by querying 33 # the python binary. 34 if host_arch == 'x64' and platform.architecture()[0] == '32bit': 35 host_arch = 'ia32' 36 37 return host_arch 38 39 if __name__ == '__main__': 40 sys.exit(main()) 41