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