1# -*- Python -*- 2 3from lit import Test 4import lit.formats 5import lit.util 6import os 7import subprocess 8 9def getSysrootFlagsOnDarwin(config, lit_config): 10 # On Darwin, support relocatable SDKs by providing Clang with a 11 # default system root path. 12 if 'darwin' in config.target_triple: 13 try: 14 out = subprocess.check_output(['xcrun', '--show-sdk-path']).strip() 15 res = 0 16 except OSError: 17 res = -1 18 if res == 0 and out: 19 sdk_path = out 20 lit_config.note('using SDKROOT: %r' % sdk_path) 21 return '-isysroot %s' % sdk_path 22 return '' 23 24sysroot_flags = getSysrootFlagsOnDarwin(config, lit_config) 25 26config.clang = os.path.realpath(lit.util.which('clang', config.clang_tools_dir)).replace('\\', '/') 27 28config.name = 'Clang Perf Training' 29config.suffixes = ['.c', '.cpp', '.m', '.mm', '.cu', '.ll', '.cl', '.s', '.S', '.modulemap'] 30 31dtrace_wrapper = '%s %s/perf-helper.py dtrace' % (config.python_exe, config.perf_helper_dir) 32dtrace_wrapper_cc1 = '%s %s/perf-helper.py dtrace --cc1' % (config.python_exe, config.perf_helper_dir) 33 34if 'darwin' in config.target_triple: 35 lit_config.note('using DTrace oneshot probe') 36 dtrace_wrapper = '%s --use-oneshot' % dtrace_wrapper 37 dtrace_wrapper_cc1 = '%s --use-oneshot' % dtrace_wrapper_cc1 38 39use_lit_shell = os.environ.get("LIT_USE_INTERNAL_SHELL") 40config.test_format = lit.formats.ShTest(use_lit_shell == "0") 41config.substitutions.append( ('%clang_cpp_skip_driver', ' %s %s --driver-mode=g++ %s ' % (dtrace_wrapper_cc1, config.clang, sysroot_flags))) 42config.substitutions.append( ('%clang_cpp', ' %s %s --driver-mode=g++ %s ' % (dtrace_wrapper, config.clang, sysroot_flags))) 43config.substitutions.append( ('%clang_skip_driver', ' %s %s %s ' % (dtrace_wrapper_cc1, config.clang, sysroot_flags))) 44config.substitutions.append( ('%clang', ' %s %s %s ' % (dtrace_wrapper, config.clang, sysroot_flags) ) ) 45config.substitutions.append( ('%test_root', config.test_exec_root ) ) 46 47