Merge pull request #139 from mathstuf/use-uname-for-arch
architecture: use uname if available
This commit is contained in:
commit
fec6674597
@ -23,13 +23,12 @@
|
|||||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
##############################################################################
|
##############################################################################
|
||||||
import os
|
import os
|
||||||
import platform as py_platform
|
import subprocess
|
||||||
|
|
||||||
from llnl.util.lang import memoized
|
from llnl.util.lang import memoized
|
||||||
|
|
||||||
import spack
|
import spack
|
||||||
import spack.error as serr
|
import spack.error as serr
|
||||||
from spack.version import Version
|
|
||||||
|
|
||||||
|
|
||||||
class InvalidSysTypeError(serr.SpackError):
|
class InvalidSysTypeError(serr.SpackError):
|
||||||
@ -59,22 +58,23 @@ def get_sys_type_from_environment():
|
|||||||
return os.environ.get('SYS_TYPE')
|
return os.environ.get('SYS_TYPE')
|
||||||
|
|
||||||
|
|
||||||
def get_mac_sys_type():
|
def get_sys_type_from_uname():
|
||||||
"""Return a Mac OS SYS_TYPE or None if this isn't a mac."""
|
"""Return the architecture from uname."""
|
||||||
mac_ver = py_platform.mac_ver()[0]
|
try:
|
||||||
if not mac_ver:
|
arch_proc = subprocess.Popen(['uname', '-i'],
|
||||||
|
stdout=subprocess.PIPE)
|
||||||
|
arch, _ = arch_proc.communicate()
|
||||||
|
return arch.strip()
|
||||||
|
except:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return "macosx_%s_%s" % (
|
|
||||||
Version(mac_ver).up_to(2), py_platform.machine())
|
|
||||||
|
|
||||||
|
|
||||||
@memoized
|
@memoized
|
||||||
def sys_type():
|
def sys_type():
|
||||||
"""Returns a SysType for the current machine."""
|
"""Returns a SysType for the current machine."""
|
||||||
methods = [get_sys_type_from_spack_globals,
|
methods = [get_sys_type_from_spack_globals,
|
||||||
get_sys_type_from_environment,
|
get_sys_type_from_environment,
|
||||||
get_mac_sys_type]
|
get_sys_type_from_uname]
|
||||||
|
|
||||||
# search for a method that doesn't return None
|
# search for a method that doesn't return None
|
||||||
sys_type = None
|
sys_type = None
|
||||||
|
Loading…
Reference in New Issue
Block a user