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