1 include(AddLLVM) # for configure_lit_site_cfg and add_lit_testsuite
2 include(HandleLitArguments)
3 macro(pythonize_bool var)
11 set(LIBCXXABI_TESTING_INSTALL_PREFIX "${LIBCXXABI_BINARY_DIR}/test-suite-install")
12 add_custom_target(libcxxabi-install-cxx-for-testing
17 COMMAND ${CMAKE_COMMAND} -E make_directory "${LIBCXXABI_TESTING_INSTALL_PREFIX}"
18 COMMAND "${CMAKE_COMMAND}"
19 -DCMAKE_INSTALL_COMPONENT=cxx-headers
20 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"
21 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
22 COMMAND "${CMAKE_COMMAND}"
23 -DCMAKE_INSTALL_COMPONENT=cxx-modules
24 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"
25 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
26 COMMAND "${CMAKE_COMMAND}"
27 -DCMAKE_INSTALL_COMPONENT=cxx
28 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"
29 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
30 add_dependencies(cxxabi-test-depends libcxxabi-install-cxx-for-testing)
32 add_custom_target(libcxxabi-install-cxxabi-for-testing
33 DEPENDS cxxabi-headers
35 COMMAND ${CMAKE_COMMAND} -E make_directory "${LIBCXXABI_TESTING_INSTALL_PREFIX}"
36 COMMAND "${CMAKE_COMMAND}"
37 -DCMAKE_INSTALL_COMPONENT=cxxabi-headers
38 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"
39 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
40 COMMAND "${CMAKE_COMMAND}"
41 -DCMAKE_INSTALL_COMPONENT=cxxabi
42 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"
43 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
44 add_dependencies(cxxabi-test-depends libcxxabi-install-cxxabi-for-testing)
46 if (LIBCXXABI_USE_LLVM_UNWINDER AND TARGET unwind)
47 add_custom_target(libcxxabi-install-unwind-for-testing
48 DEPENDS unwind-headers
50 COMMAND ${CMAKE_COMMAND} -E make_directory "${LIBCXXABI_TESTING_INSTALL_PREFIX}"
51 COMMAND "${CMAKE_COMMAND}"
52 -DCMAKE_INSTALL_COMPONENT=unwind-headers
53 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"
54 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
55 COMMAND "${CMAKE_COMMAND}"
56 -DCMAKE_INSTALL_COMPONENT=unwind
57 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"
58 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
59 add_dependencies(cxxabi-test-depends libcxxabi-install-unwind-for-testing)
62 pythonize_bool(LIBCXXABI_USE_LLVM_UNWINDER)
64 set(AUTO_GEN_COMMENT "## Autogenerated by libcxxabi configuration.\n# Do not edit!")
65 set(SERIALIZED_LIT_PARAMS "# Lit parameters serialized here for llvm-lit to pick them up\n")
67 serialize_lit_string_param(SERIALIZED_LIT_PARAMS compiler "${CMAKE_CXX_COMPILER}")
69 if (NOT LIBCXXABI_ENABLE_EXCEPTIONS)
70 serialize_lit_param(SERIALIZED_LIT_PARAMS enable_exceptions False)
73 if (LIBCXXABI_ENABLE_ASSERTIONS)
74 serialize_lit_param(SERIALIZED_LIT_PARAMS enable_assertions True)
77 serialize_lit_param(SERIALIZED_LIT_PARAMS enable_experimental False)
79 if (LLVM_USE_SANITIZER)
80 serialize_lit_string_param(SERIALIZED_LIT_PARAMS use_sanitizer "${LLVM_USE_SANITIZER}")
83 if (CMAKE_CXX_COMPILER_TARGET)
84 serialize_lit_string_param(SERIALIZED_LIT_PARAMS target_triple "${CMAKE_CXX_COMPILER_TARGET}")
86 serialize_lit_string_param(SERIALIZED_LIT_PARAMS target_triple "${LLVM_DEFAULT_TARGET_TRIPLE}")
89 serialize_lit_params_list(SERIALIZED_LIT_PARAMS LIBCXXABI_TEST_PARAMS)
91 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/configs/cmake-bridge.cfg.in"
92 "${CMAKE_CURRENT_BINARY_DIR}/cmake-bridge.cfg"
95 configure_lit_site_cfg(
96 "${LIBCXXABI_TEST_CONFIG}"
97 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
98 MAIN_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py")
100 add_lit_testsuite(check-cxxabi "Running libcxxabi tests"
101 ${CMAKE_CURRENT_BINARY_DIR}
102 DEPENDS cxxabi-test-depends)