mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
1be4884f17
Visual Studios implementation of the C++ Standard Library does not use strerror to produce a message for std::error_code unlike other standard libraries such as libstdc++ or libc++ that might be used. This patch adds a cmake script that through running a C++ program gets the error messages for the POSIX error codes and passes them onto lit through an optional config parameter. If the config parameter is not set, or getting the messages failed, due to say a cross compiling configuration without an emulator, it will fall back to using pythons strerror functions. Differential Revision: https://reviews.llvm.org/D98278
73 lines
2.9 KiB
Python
73 lines
2.9 KiB
Python
@LIT_SITE_CFG_IN_HEADER@
|
|
|
|
import sys
|
|
|
|
config.host_triple = "@LLVM_HOST_TRIPLE@"
|
|
config.target_triple = "@TARGET_TRIPLE@"
|
|
config.llvm_src_root = path(r"@LLVM_SOURCE_DIR@")
|
|
config.llvm_obj_root = path(r"@LLVM_BINARY_DIR@")
|
|
config.llvm_tools_dir = path(r"@LLVM_TOOLS_DIR@")
|
|
config.llvm_lib_dir = path(r"@LLVM_LIBS_DIR@")
|
|
config.llvm_shlib_dir = path(r"@SHLIBDIR@")
|
|
config.llvm_shlib_ext = "@SHLIBEXT@"
|
|
config.llvm_exe_ext = "@EXEEXT@"
|
|
config.lit_tools_dir = path(r"@LLVM_LIT_TOOLS_DIR@")
|
|
config.errc_messages = "@LLVM_LIT_ERRC_MESSAGES@"
|
|
config.python_executable = "@Python3_EXECUTABLE@"
|
|
config.gold_executable = "@GOLD_EXECUTABLE@"
|
|
config.ld64_executable = "@LD64_EXECUTABLE@"
|
|
config.ocamlfind_executable = "@OCAMLFIND@"
|
|
config.have_ocamlopt = @HAVE_OCAMLOPT@
|
|
config.have_ocaml_ounit = @HAVE_OCAML_OUNIT@
|
|
config.ocaml_flags = "@OCAMLFLAGS@"
|
|
config.include_go_tests = @LLVM_INCLUDE_GO_TESTS@
|
|
config.go_executable = "@GO_EXECUTABLE@"
|
|
config.enable_shared = @ENABLE_SHARED@
|
|
config.enable_assertions = @ENABLE_ASSERTIONS@
|
|
config.targets_to_build = "@TARGETS_TO_BUILD@"
|
|
config.native_target = "@LLVM_NATIVE_ARCH@"
|
|
config.llvm_bindings = "@LLVM_BINDINGS@".split(' ')
|
|
config.host_os = "@HOST_OS@"
|
|
config.host_cc = "@HOST_CC@"
|
|
config.host_cxx = "@HOST_CXX@"
|
|
# Note: ldflags can contain double-quoted paths, so must use single quotes here.
|
|
config.host_ldflags = '@HOST_LDFLAGS@'
|
|
config.llvm_use_intel_jitevents = @LLVM_USE_INTEL_JITEVENTS@
|
|
config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
|
|
config.have_zlib = @LLVM_ENABLE_ZLIB@
|
|
config.have_libxar = @HAVE_LIBXAR@
|
|
config.have_libxml2 = @LLVM_ENABLE_LIBXML2@
|
|
config.have_dia_sdk = @LLVM_ENABLE_DIA_SDK@
|
|
config.enable_ffi = @LLVM_ENABLE_FFI@
|
|
config.build_examples = @LLVM_BUILD_EXAMPLES@
|
|
config.enable_threads = @LLVM_ENABLE_THREADS@
|
|
config.build_shared_libs = @BUILD_SHARED_LIBS@
|
|
config.link_llvm_dylib = @LLVM_LINK_LLVM_DYLIB@
|
|
config.llvm_host_triple = '@LLVM_HOST_TRIPLE@'
|
|
config.host_arch = "@HOST_ARCH@"
|
|
config.have_opt_viewer_modules = @LLVM_HAVE_OPT_VIEWER_MODULES@
|
|
config.libcxx_used = @LLVM_LIBCXX_USED@
|
|
config.has_plugins = @LLVM_ENABLE_PLUGINS@
|
|
config.linked_bye_extension = @LLVM_BYE_LINK_INTO_TOOLS@
|
|
config.have_tf_aot = @LLVM_HAVE_TF_AOT@
|
|
config.have_tf_api = @LLVM_HAVE_TF_API@
|
|
config.expensive_checks = @LLVM_ENABLE_EXPENSIVE_CHECKS@
|
|
|
|
# Support substitution of the tools_dir with user parameters. This is
|
|
# used when we can't determine the tool dir at configuration time.
|
|
try:
|
|
config.llvm_tools_dir = config.llvm_tools_dir % lit_config.params
|
|
config.llvm_lib_dir = config.llvm_lib_dir % lit_config.params
|
|
config.llvm_shlib_dir = config.llvm_shlib_dir % lit_config.params
|
|
except KeyError:
|
|
e = sys.exc_info()[1]
|
|
key, = e.args
|
|
lit_config.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key,key))
|
|
|
|
import lit.llvm
|
|
lit.llvm.initialize(lit_config, config)
|
|
|
|
# Let the main config do the real work.
|
|
lit_config.load_config(
|
|
config, os.path.join(config.llvm_src_root, "test/lit.cfg.py"))
|