brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.9 KiB · f4e577a Raw
111 lines · plain
1include(HandleLitArguments)2add_subdirectory(tools)3 4# Install the library at a fake location so we can run the test suite against it.5# This ensures that we run the test suite against a setup that matches what we ship6# in production as closely as possible (in terms of file paths, rpaths, etc).7set(LIBCXX_TESTING_INSTALL_PREFIX "${LIBCXX_BINARY_DIR}/test-suite-install")8if (LIBCXX_CXX_ABI STREQUAL "libcxxabi")9  add_custom_target(install-cxxabi-test-suite-prefix10                        DEPENDS cxxabi-headers11                                cxxabi12                        COMMAND ${CMAKE_COMMAND} -E make_directory "${LIBCXX_TESTING_INSTALL_PREFIX}"13                        COMMAND "${CMAKE_COMMAND}"14                                -DCMAKE_INSTALL_COMPONENT=cxxabi-headers15                                -DCMAKE_INSTALL_PREFIX="${LIBCXX_TESTING_INSTALL_PREFIX}"16                                -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"17                        COMMAND "${CMAKE_COMMAND}"18                                -DCMAKE_INSTALL_COMPONENT=cxxabi19                                -DCMAKE_INSTALL_PREFIX="${LIBCXX_TESTING_INSTALL_PREFIX}"20                                -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")21  add_dependencies(cxx-test-depends install-cxxabi-test-suite-prefix)22endif()23 24if (LIBCXXABI_USE_LLVM_UNWINDER AND TARGET unwind)25  add_custom_target(install-unwind-test-suite-prefix26  DEPENDS unwind-headers27          unwind28  COMMAND ${CMAKE_COMMAND} -E make_directory "${LIBCXX_TESTING_INSTALL_PREFIX}"29  COMMAND "${CMAKE_COMMAND}"30          -DCMAKE_INSTALL_COMPONENT=unwind-headers31          -DCMAKE_INSTALL_PREFIX="${LIBCXX_TESTING_INSTALL_PREFIX}"32          -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"33  COMMAND "${CMAKE_COMMAND}"34          -DCMAKE_INSTALL_COMPONENT=unwind35          -DCMAKE_INSTALL_PREFIX="${LIBCXX_TESTING_INSTALL_PREFIX}"36          -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")37  add_dependencies(cxx-test-depends install-unwind-test-suite-prefix)38endif()39 40add_custom_target(install-cxx-test-suite-prefix41                      DEPENDS cxx-headers42                              cxx43                              cxx_experimental44                              cxx-modules45                      COMMAND ${CMAKE_COMMAND} -E make_directory "${LIBCXX_TESTING_INSTALL_PREFIX}"46                      COMMAND "${CMAKE_COMMAND}"47                              -DCMAKE_INSTALL_COMPONENT=cxx-headers48                              -DCMAKE_INSTALL_PREFIX="${LIBCXX_TESTING_INSTALL_PREFIX}"49                              -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"50                      COMMAND "${CMAKE_COMMAND}"51                              -DCMAKE_INSTALL_COMPONENT=cxx-modules52                              -DCMAKE_INSTALL_PREFIX="${LIBCXX_TESTING_INSTALL_PREFIX}"53                              -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"54                      COMMAND "${CMAKE_COMMAND}"55                              -DCMAKE_INSTALL_COMPONENT=cxx56                              -DCMAKE_INSTALL_PREFIX="${LIBCXX_TESTING_INSTALL_PREFIX}"57                              -P "${LIBCXX_BINARY_DIR}/cmake_install.cmake")58add_dependencies(cxx-test-depends install-cxx-test-suite-prefix)59 60set(AUTO_GEN_COMMENT "## Autogenerated by libcxx configuration.\n# Do not edit!")61set(SERIALIZED_LIT_PARAMS "# Lit parameters serialized here for llvm-lit to pick them up\n")62 63serialize_lit_string_param(SERIALIZED_LIT_PARAMS compiler "${CMAKE_CXX_COMPILER}")64 65if (LIBCXX_INCLUDE_BENCHMARKS)66  add_subdirectory(benchmarks)67  set(_libcxx_benchmark_mode "dry-run")68else()69  serialize_lit_string_param(SERIALIZED_LIT_PARAMS enable_benchmarks "no")70  set(_libcxx_benchmark_mode "no")71endif()72 73if (NOT LIBCXX_ENABLE_EXCEPTIONS)74  serialize_lit_param(SERIALIZED_LIT_PARAMS enable_exceptions False)75endif()76 77if (NOT LIBCXX_ENABLE_RTTI)78  serialize_lit_param(SERIALIZED_LIT_PARAMS enable_rtti False)79endif()80 81serialize_lit_string_param(SERIALIZED_LIT_PARAMS hardening_mode "${LIBCXX_HARDENING_MODE}")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 89if (LLVM_USE_SANITIZER)90  serialize_lit_string_param(SERIALIZED_LIT_PARAMS use_sanitizer "${LLVM_USE_SANITIZER}")91endif()92 93serialize_lit_params_list(SERIALIZED_LIT_PARAMS LIBCXX_TEST_PARAMS)94 95include(AddLLVM) # for configure_lit_site_cfg and add_lit_testsuite96 97configure_file("${CMAKE_CURRENT_SOURCE_DIR}/configs/cmake-bridge.cfg.in"98                "${CMAKE_CURRENT_BINARY_DIR}/cmake-bridge.cfg"99                @ONLY)100 101configure_lit_site_cfg(102  "${LIBCXX_TEST_CONFIG}"103  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg104  MAIN_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py")105 106add_lit_testsuite(check-cxx107  "Running libcxx tests"108  ${CMAKE_CURRENT_BINARY_DIR}109  PARAMS enable_benchmarks="${_libcxx_benchmark_mode}"110  DEPENDS cxx-test-depends)111