[RISCV] Add MIPS P8700 processor (#119882)
[llvm-project.git] / flang / test / CMakeLists.txt
blobcab214c2ef4c8c1322eb1131f03819284a07dad1
1 # Test runner infrastructure for Flang. This configures the Flang test trees
2 # for use by Lit, and delegates to LLVM's lit test handlers.
3 add_subdirectory(lib)
5 llvm_canonicalize_cmake_booleans(
6   FLANG_STANDALONE_BUILD
7   LLVM_BUILD_EXAMPLES
8   LLVM_BYE_LINK_INTO_TOOLS
9   LLVM_ENABLE_PLUGINS
12 set(FLANG_TOOLS_DIR ${FLANG_BINARY_DIR}/bin)
14 # Check if 128-bit float computations can be done via long double
15 check_cxx_source_compiles(
16   "#include <cfloat>
17    #if LDBL_MANT_DIG != 113
18    #error LDBL_MANT_DIG != 113
19    #endif
20    int main() { return 0; }
21   "
22   HAVE_LDBL_MANT_DIG_113)
24 # FIXME In out-of-tree builds, "SHLIBDIR" is undefined and passing it to
25 # `configure_lit_site_cfg` leads to a configuration error. This is currently
26 # only required by plugins/examples, which are not supported in out-of-tree
27 # builds.
28 if (FLANG_STANDALONE_BUILD)
29   set(PATHS_FOR_PLUGINS "")
30 else ()
31   set(PATHS_FOR_PLUGINS "SHLIBDIR")
32 endif ()
34 configure_lit_site_cfg(
35   ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
36   ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
37   MAIN_CONFIG
38   ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
39   PATHS
40   ${PATHS_FOR_PLUGINS}
43 configure_lit_site_cfg(
44   ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
45   ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py
46   MAIN_CONFIG
47   ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py
50 configure_lit_site_cfg(
51   ${CMAKE_CURRENT_SOURCE_DIR}/NonGtestUnit/lit.site.cfg.py.in
52   ${CMAKE_CURRENT_BINARY_DIR}/NonGtestUnit/lit.site.cfg.py
53   MAIN_CONFIG
54   ${CMAKE_CURRENT_SOURCE_DIR}/NonGtestUnit/lit.cfg.py
57 set(FLANG_TEST_PARAMS
58   flang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py)
60 set(FLANG_TEST_DEPENDS
61   flang
62   llvm-config
63   FileCheck
64   count
65   not
66   module_files
67   fir-opt
68   tco
69   bbc
70   llvm-dis
71   llvm-objdump
72   llvm-readobj
73   split-file
74   FortranRuntime
75   FortranDecimal
77 if (LLVM_ENABLE_PLUGINS AND NOT WIN32)
78   list(APPEND FLANG_TEST_DEPENDS Bye)
79 endif()
81 if (FLANG_INCLUDE_TESTS)
82   if (FLANG_GTEST_AVAIL)
83     list(APPEND FLANG_TEST_DEPENDS FlangUnitTests)
84   endif()
85 endif()
87 if (LLVM_BUILD_EXAMPLES)
88   list(APPEND FLANG_TEST_DEPENDS
89     flangPrintFunctionNames
90     flangOmpReport
91     flangFeatureList
92     )
93 endif ()
95 add_custom_target(flang-test-depends DEPENDS ${FLANG_TEST_DEPENDS})
96 set_target_properties(flang-test-depends PROPERTIES FOLDER "Flang/Meta")
98 add_lit_testsuite(check-flang "Running the Flang regression tests"
99   ${CMAKE_CURRENT_BINARY_DIR}
100   PARAMS ${FLANG_TEST_PARAMS}
101   DEPENDS ${FLANG_TEST_DEPENDS}
103 set_target_properties(check-flang PROPERTIES FOLDER "Flang/Meta")
105 # In case of standalone builds.
106 if (FLANG_STANDALONE_BUILD)
107   add_lit_testsuites(FLANG ${CMAKE_CURRENT_BINARY_DIR}
108     PARAMS ${FLANG_TEST_PARAMS}
109     DEPENDS ${FLANG_TEST_DEPENDS})
110 else()
111   add_lit_testsuites(FLANG ${CMAKE_CURRENT_SOURCE_DIR}
112     PARAMS ${FLANG_TEST_PARAMS}
113     DEPENDS ${FLANG_TEST_DEPENDS})
114 endif()
116 # To modify the default target triple for flang tests.
117 if (DEFINED FLANG_TEST_TARGET_TRIPLE)
118   if (NOT DEFINED LLVM_TARGET_TRIPLE_ENV OR LLVM_TARGET_TRIPLE_ENV STREQUAL "")
119     message(FATAL_ERROR "LLVM_TARGET_TRIPLE_ENV must also be defined in order "
120                         "to use FLANG_TEST_TARGET_TRIPLE.")
121   endif()
122 endif()