brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · 8c8e92f Raw
136 lines · plain
1# Test runner infrastructure for Flang. This configures the Flang test trees2# for use by Lit, and delegates to LLVM's lit test handlers.3add_subdirectory(lib)4 5llvm_canonicalize_cmake_booleans(6  FLANG_STANDALONE_BUILD7  LLVM_BUILD_EXAMPLES8  LLVM_BYE_LINK_INTO_TOOLS9  LLVM_ENABLE_PLUGINS10)11 12set(FLANG_TOOLS_DIR ${FLANG_BINARY_DIR}/bin)13 14# Check if 128-bit float computations can be done via long double15check_cxx_source_compiles(16  "#include <cfloat>17   #if LDBL_MANT_DIG != 11318   #error LDBL_MANT_DIG != 11319   #endif20   int main() { return 0; }21  "22  HAVE_LDBL_MANT_DIG_113)23 24# FIXME In out-of-tree builds, "SHLIBDIR" is undefined and passing it to25# `configure_lit_site_cfg` leads to a configuration error. This is currently26# only required by plugins/examples, which are not supported in out-of-tree27# builds.28if (FLANG_STANDALONE_BUILD)29  set(PATHS_FOR_PLUGINS "")30else ()31  set(PATHS_FOR_PLUGINS "SHLIBDIR")32endif ()33 34configure_lit_site_cfg(35  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in36  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py37  MAIN_CONFIG38  ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py39  PATHS40  ${PATHS_FOR_PLUGINS}41)42 43configure_lit_site_cfg(44  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in45  ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py46  MAIN_CONFIG47  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py48)49 50configure_lit_site_cfg(51  ${CMAKE_CURRENT_SOURCE_DIR}/NonGtestUnit/lit.site.cfg.py.in52  ${CMAKE_CURRENT_BINARY_DIR}/NonGtestUnit/lit.site.cfg.py53  MAIN_CONFIG54  ${CMAKE_CURRENT_SOURCE_DIR}/NonGtestUnit/lit.cfg.py55)56 57set(FLANG_TEST_PARAMS58  flang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py)59 60set(FLANG_TEST_DEPENDS61  flang62  module_files63  fir-opt64  tco65  bbc66  FortranDecimal67)68 69if (NOT FLANG_STANDALONE_BUILD)70  list(APPEND FLANG_TEST_DEPENDS71    llvm-config72    FileCheck73    count74    not75    llvm-bcanalyzer76    llvm-dis77    llvm-objcopy78    llvm-objdump79    llvm-profdata80    llvm-readelf81    llvm-readobj82    split-file83  )84endif ()85 86if (LLVM_BUILD_EXAMPLES AND LLVM_ENABLE_PLUGINS AND NOT (WIN32 OR CYGWIN) AND NOT FLANG_STANDALONE_BUILD)87  list(APPEND FLANG_TEST_DEPENDS Bye)88endif()89 90if (FLANG_INCLUDE_TESTS)91  if (FLANG_GTEST_AVAIL)92    list(APPEND FLANG_TEST_DEPENDS FlangUnitTests)93  endif()94endif()95 96if (LLVM_BUILD_EXAMPLES)97  list(APPEND FLANG_TEST_DEPENDS98    flangPrintFunctionNames99    flangOmpReport100    flangFeatureList101    )102endif ()103 104if ("openmp" IN_LIST LLVM_ENABLE_RUNTIMES AND NOT FLANG_STANDALONE_BUILD)105  list(APPEND FLANG_TEST_DEPENDS "libomp-mod")106endif ()107 108add_custom_target(flang-test-depends DEPENDS ${FLANG_TEST_DEPENDS})109set_target_properties(flang-test-depends PROPERTIES FOLDER "Flang/Meta")110 111add_lit_testsuite(check-flang "Running the Flang regression tests"112  ${CMAKE_CURRENT_BINARY_DIR}113  PARAMS ${FLANG_TEST_PARAMS}114  DEPENDS ${FLANG_TEST_DEPENDS}115)116set_target_properties(check-flang PROPERTIES FOLDER "Flang/Meta")117 118# In case of standalone builds.119if (FLANG_STANDALONE_BUILD)120  add_lit_testsuites(FLANG ${CMAKE_CURRENT_BINARY_DIR}121    PARAMS ${FLANG_TEST_PARAMS}122    DEPENDS ${FLANG_TEST_DEPENDS})123else()124  add_lit_testsuites(FLANG ${CMAKE_CURRENT_SOURCE_DIR}125    PARAMS ${FLANG_TEST_PARAMS}126    DEPENDS ${FLANG_TEST_DEPENDS})127endif()128 129# To modify the default target triple for flang tests.130if (DEFINED FLANG_TEST_TARGET_TRIPLE)131  if (NOT DEFINED LLVM_TARGET_TRIPLE_ENV OR LLVM_TARGET_TRIPLE_ENV STREQUAL "")132    message(FATAL_ERROR "LLVM_TARGET_TRIPLE_ENV must also be defined in order "133                        "to use FLANG_TEST_TARGET_TRIPLE.")134  endif()135endif()136