103 lines · plain
1include(AddLLVM) # for configure_lit_site_cfg and add_lit_testsuite2include(HandleLitArguments)3macro(pythonize_bool var)4 if (${var})5 set(${var} True)6 else()7 set(${var} False)8 endif()9endmacro()10 11set(LIBCXXABI_TESTING_INSTALL_PREFIX "${LIBCXXABI_BINARY_DIR}/test-suite-install")12add_custom_target(libcxxabi-install-cxx-for-testing13 DEPENDS cxx-headers14 cxx15 cxx_experimental16 cxx-modules17 COMMAND ${CMAKE_COMMAND} -E make_directory "${LIBCXXABI_TESTING_INSTALL_PREFIX}"18 COMMAND "${CMAKE_COMMAND}"19 -DCMAKE_INSTALL_COMPONENT=cxx-headers20 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"21 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"22 COMMAND "${CMAKE_COMMAND}"23 -DCMAKE_INSTALL_COMPONENT=cxx-modules24 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"25 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"26 COMMAND "${CMAKE_COMMAND}"27 -DCMAKE_INSTALL_COMPONENT=cxx28 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"29 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")30add_dependencies(cxxabi-test-depends libcxxabi-install-cxx-for-testing)31 32add_custom_target(libcxxabi-install-cxxabi-for-testing33 DEPENDS cxxabi-headers34 cxxabi35 COMMAND ${CMAKE_COMMAND} -E make_directory "${LIBCXXABI_TESTING_INSTALL_PREFIX}"36 COMMAND "${CMAKE_COMMAND}"37 -DCMAKE_INSTALL_COMPONENT=cxxabi-headers38 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"39 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"40 COMMAND "${CMAKE_COMMAND}"41 -DCMAKE_INSTALL_COMPONENT=cxxabi42 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"43 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")44add_dependencies(cxxabi-test-depends libcxxabi-install-cxxabi-for-testing)45 46if (LIBCXXABI_USE_LLVM_UNWINDER AND TARGET unwind)47 add_custom_target(libcxxabi-install-unwind-for-testing48 DEPENDS unwind-headers49 unwind50 COMMAND ${CMAKE_COMMAND} -E make_directory "${LIBCXXABI_TESTING_INSTALL_PREFIX}"51 COMMAND "${CMAKE_COMMAND}"52 -DCMAKE_INSTALL_COMPONENT=unwind-headers53 -DCMAKE_INSTALL_PREFIX="${LIBCXXABI_TESTING_INSTALL_PREFIX}"54 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"55 COMMAND "${CMAKE_COMMAND}"56 -DCMAKE_INSTALL_COMPONENT=unwind57 -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)60endif()61 62pythonize_bool(LIBCXXABI_USE_LLVM_UNWINDER)63 64set(AUTO_GEN_COMMENT "## Autogenerated by libcxxabi configuration.\n# Do not edit!")65set(SERIALIZED_LIT_PARAMS "# Lit parameters serialized here for llvm-lit to pick them up\n")66 67serialize_lit_string_param(SERIALIZED_LIT_PARAMS compiler "${CMAKE_CXX_COMPILER}")68 69if (NOT LIBCXXABI_ENABLE_EXCEPTIONS)70 serialize_lit_param(SERIALIZED_LIT_PARAMS enable_exceptions False)71endif()72 73if (LIBCXXABI_ENABLE_ASSERTIONS)74 serialize_lit_param(SERIALIZED_LIT_PARAMS enable_assertions True)75endif()76 77serialize_lit_param(SERIALIZED_LIT_PARAMS enable_experimental False)78 79if (LLVM_USE_SANITIZER)80 serialize_lit_string_param(SERIALIZED_LIT_PARAMS use_sanitizer "${LLVM_USE_SANITIZER}")81endif()82 83if (CMAKE_CXX_COMPILER_TARGET)84 serialize_lit_string_param(SERIALIZED_LIT_PARAMS target_triple "${CMAKE_CXX_COMPILER_TARGET}")85else()86 serialize_lit_string_param(SERIALIZED_LIT_PARAMS target_triple "${LLVM_DEFAULT_TARGET_TRIPLE}")87endif()88 89serialize_lit_params_list(SERIALIZED_LIT_PARAMS LIBCXXABI_TEST_PARAMS)90 91configure_file("${CMAKE_CURRENT_SOURCE_DIR}/configs/cmake-bridge.cfg.in"92 "${CMAKE_CURRENT_BINARY_DIR}/cmake-bridge.cfg"93 @ONLY)94 95configure_lit_site_cfg(96 "${LIBCXXABI_TEST_CONFIG}"97 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg98 MAIN_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py")99 100add_lit_testsuite(check-cxxabi "Running libcxxabi tests"101 ${CMAKE_CURRENT_BINARY_DIR}102 DEPENDS cxxabi-test-depends)103