mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-15 07:59:57 +00:00
e7a8fe1967
CMake. The Go bindings tests in an unoptimized build take over 30 seconds for me, making it the slowest test in 'check-llvm' by a factor of two. I've only rigged this up fully to the CMake build. If someone is interested in rigging it up to the autoconf build, they're welcome to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247243 91177308-0d34-0410-b5e6-96231b3b80d8
61 lines
1.8 KiB
INI
61 lines
1.8 KiB
INI
import os
|
|
import pipes
|
|
import shlex
|
|
import sys
|
|
|
|
if not 'go' in config.root.llvm_bindings:
|
|
config.unsupported = True
|
|
|
|
if config.root.include_go_tests != 'ON':
|
|
config.unsupported = True
|
|
|
|
def find_executable(executable, path=None):
|
|
if path is None:
|
|
path = os.environ['PATH']
|
|
paths = path.split(os.pathsep)
|
|
base, ext = os.path.splitext(executable)
|
|
|
|
if (sys.platform == 'win32' or os.name == 'os2') and (ext != '.exe'):
|
|
executable = executable + '.exe'
|
|
|
|
if not os.path.isfile(executable):
|
|
for p in paths:
|
|
f = os.path.join(p, executable)
|
|
if os.path.isfile(f):
|
|
return f
|
|
return None
|
|
else:
|
|
return executable
|
|
|
|
# Resolve certain symlinks in the first word of compiler.
|
|
#
|
|
# This is a Go-specific hack. cgo and other Go tools check $CC and $CXX for the
|
|
# substring 'clang' to determine if the compiler is Clang. This won't work if
|
|
# $CC is cc and cc is a symlink pointing to clang, as it is on Darwin.
|
|
#
|
|
# Go tools also have problems with ccache, so we disable it.
|
|
def fixup_compiler_path(compiler):
|
|
args = shlex.split(compiler)
|
|
if args[0].endswith('ccache'):
|
|
args = args[1:]
|
|
|
|
path = find_executable(args[0])
|
|
|
|
try:
|
|
if path.endswith('/cc') and os.readlink(path) == 'clang':
|
|
args[0] = path[:len(path)-2] + 'clang'
|
|
except (AttributeError, OSError):
|
|
pass
|
|
|
|
try:
|
|
if path.endswith('/c++') and os.readlink(path) == 'clang++':
|
|
args[0] = path[:len(path)-3] + 'clang++'
|
|
except (AttributeError, OSError):
|
|
pass
|
|
|
|
return ' '.join([pipes.quote(arg) for arg in args])
|
|
|
|
config.environment['CC'] = fixup_compiler_path(config.host_cc)
|
|
config.environment['CXX'] = fixup_compiler_path(config.host_cxx)
|
|
config.environment['CGO_LDFLAGS'] = config.host_ldflags
|