xref: /llvm-project/llvm/unittests/CMakeLists.txt (revision dbae7176a6ecf558dc5e92016cdda387c9d74d66)
1add_custom_target(UnitTests)
2set_target_properties(UnitTests PROPERTIES FOLDER "LLVM/Tests")
3
4function(add_llvm_unittest test_dirname)
5  add_unittest(UnitTests ${test_dirname} ${ARGN})
6endfunction()
7function(add_llvm_unittest_with_input_files test_dirname)
8  add_unittest_with_input_files(UnitTests ${test_dirname} ${ARGN})
9endfunction()
10
11# The target unittests may test APIs that aren't exported in libLLVM.so, so
12# we need to always link against the static libraries.
13function(add_llvm_target_unittest test_dir_name)
14  add_llvm_unittest(${test_dir_name} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN})
15endfunction()
16
17# gtest macros like EXPECT_TRUE are expanded to a single line
18# multi-statement code with if/else. eg:
19#   if (...)
20#     EXPECT_TURE(...)
21# will be expanded into something like:
22#   if(...)
23#     switch (0) case 0: default: if (...) ; else return;;
24# GCC may emit false positive dangling-else warnings for such code.
25# However, such warnings are actually against LLVM's style guide.
26# disable the warning for GCC so that one can enbable Werror.
27if (CMAKE_COMPILER_IS_GNUCXX)
28  list(APPEND LLVM_COMPILE_FLAGS "-Wno-dangling-else")
29endif ()
30
31add_subdirectory(ADT)
32add_subdirectory(Analysis)
33add_subdirectory(AsmParser)
34add_subdirectory(BinaryFormat)
35add_subdirectory(Bitcode)
36add_subdirectory(Bitstream)
37add_subdirectory(CGData)
38add_subdirectory(CodeGen)
39add_subdirectory(DebugInfo)
40add_subdirectory(Debuginfod)
41add_subdirectory(Demangle)
42add_subdirectory(DWARFLinkerParallel)
43add_subdirectory(ExecutionEngine)
44add_subdirectory(FileCheck)
45add_subdirectory(Frontend)
46add_subdirectory(FuzzMutate)
47add_subdirectory(InterfaceStub)
48add_subdirectory(IR)
49add_subdirectory(LineEditor)
50add_subdirectory(Linker)
51add_subdirectory(MC)
52add_subdirectory(MI)
53add_subdirectory(MIR)
54add_subdirectory(ObjCopy)
55add_subdirectory(Object)
56add_subdirectory(ObjectYAML)
57add_subdirectory(Option)
58add_subdirectory(Remarks)
59add_subdirectory(Passes)
60add_subdirectory(ProfileData)
61add_subdirectory(SandboxIR)
62add_subdirectory(Support)
63add_subdirectory(TableGen)
64add_subdirectory(Target)
65add_subdirectory(TargetParser)
66add_subdirectory(Telemetry)
67add_subdirectory(Testing)
68add_subdirectory(TextAPI)
69add_subdirectory(Transforms)
70add_subdirectory(XRay)
71add_subdirectory(tools)
72