1include(AddLLVM) # for add_lit_testsuite 2include(HandleLitArguments) 3macro(pythonize_bool var) 4 if (${var}) 5 set(${var} True) 6 else() 7 set(${var} False) 8 endif() 9endmacro() 10 11set(LIBUNWIND_TESTING_INSTALL_PREFIX "${LIBUNWIND_BINARY_DIR}/test-suite-install") 12add_custom_target(libunwind-install-unwind-for-testing 13 DEPENDS unwind-headers 14 unwind 15 COMMAND ${CMAKE_COMMAND} -E make_directory "${LIBUNWIND_TESTING_INSTALL_PREFIX}" 16 COMMAND "${CMAKE_COMMAND}" 17 -DCMAKE_INSTALL_COMPONENT=unwind-headers 18 -DCMAKE_INSTALL_PREFIX="${LIBUNWIND_TESTING_INSTALL_PREFIX}" 19 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake" 20 COMMAND "${CMAKE_COMMAND}" 21 -DCMAKE_INSTALL_COMPONENT=unwind 22 -DCMAKE_INSTALL_PREFIX="${LIBUNWIND_TESTING_INSTALL_PREFIX}" 23 -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") 24 25pythonize_bool(LIBUNWIND_ENABLE_CET) 26pythonize_bool(LIBUNWIND_ENABLE_GCS) 27pythonize_bool(LIBUNWIND_ENABLE_THREADS) 28pythonize_bool(LIBUNWIND_USES_ARM_EHABI) 29 30set(AUTO_GEN_COMMENT "## Autogenerated by libunwind configuration.\n# Do not edit!") 31set(SERIALIZED_LIT_PARAMS "# Lit parameters serialized here for llvm-lit to pick them up\n") 32 33serialize_lit_string_param(SERIALIZED_LIT_PARAMS compiler "${CMAKE_CXX_COMPILER}") 34 35if (LIBUNWIND_EXECUTOR) 36 message(DEPRECATION "LIBUNWIND_EXECUTOR is deprecated, please add executor=... to LIBUNWIND_TEST_PARAMS") 37 serialize_lit_string_param(SERIALIZED_LIT_PARAMS executor "${LIBUNWIND_EXECUTOR}") 38endif() 39 40serialize_lit_param(SERIALIZED_LIT_PARAMS enable_experimental False) 41 42if (LLVM_USE_SANITIZER) 43 serialize_lit_string_param(SERIALIZED_LIT_PARAMS use_sanitizer "${LLVM_USE_SANITIZER}") 44endif() 45 46if (CMAKE_CXX_COMPILER_TARGET) 47 serialize_lit_string_param(SERIALIZED_LIT_PARAMS target_triple "${CMAKE_CXX_COMPILER_TARGET}") 48else() 49 serialize_lit_string_param(SERIALIZED_LIT_PARAMS target_triple "${LLVM_DEFAULT_TARGET_TRIPLE}") 50endif() 51 52serialize_lit_params_list(SERIALIZED_LIT_PARAMS LIBUNWIND_TEST_PARAMS) 53 54configure_file("${CMAKE_CURRENT_SOURCE_DIR}/configs/cmake-bridge.cfg.in" 55 "${CMAKE_CURRENT_BINARY_DIR}/cmake-bridge.cfg" 56 @ONLY) 57 58configure_lit_site_cfg( 59 "${LIBUNWIND_TEST_CONFIG}" 60 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg 61 MAIN_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py") 62 63add_lit_testsuite(check-unwind "Running libunwind tests" 64 ${CMAKE_CURRENT_BINARY_DIR} 65 DEPENDS libunwind-install-unwind-for-testing) 66