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