
Add llvm::cas::ObjectStore abstraction and InMemoryCAS as a in-memory CAS object store implementation. The ObjectStore models its objects as: * Content: An array of bytes for the data to be stored. * Refs: An array of references to other objects in the ObjectStore. And each CAS Object can be idenfied with an unqine ID/Hash. ObjectStore supports following general action: * Expected<ID> store(Content, ArrayRef<Ref>) * Expected<Ref> get(ID) It also introduces following types to interact with a CAS ObjectStore: * CASID: Hash representation for an CAS Objects with its context to help print/compare CASIDs. * ObjectRef: A light-weight ref for an object in the ObjectStore. It is implementation defined so it can be optimized for read/store/references depending on the implementation. * ObjectProxy: A proxy for the users of CAS to interact with the data inside CAS Object. It bundles a ObjectHandle and an ObjectStore instance.
73 lines
2.2 KiB
CMake
73 lines
2.2 KiB
CMake
add_custom_target(UnitTests)
|
|
set_target_properties(UnitTests PROPERTIES FOLDER "LLVM/Tests")
|
|
|
|
function(add_llvm_unittest test_dirname)
|
|
add_unittest(UnitTests ${test_dirname} ${ARGN})
|
|
endfunction()
|
|
function(add_llvm_unittest_with_input_files test_dirname)
|
|
add_unittest_with_input_files(UnitTests ${test_dirname} ${ARGN})
|
|
endfunction()
|
|
|
|
# The target unittests may test APIs that aren't exported in libLLVM.so, so
|
|
# we need to always link against the static libraries.
|
|
function(add_llvm_target_unittest test_dir_name)
|
|
add_llvm_unittest(${test_dir_name} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN})
|
|
endfunction()
|
|
|
|
# gtest macros like EXPECT_TRUE are expanded to a single line
|
|
# multi-statement code with if/else. eg:
|
|
# if (...)
|
|
# EXPECT_TURE(...)
|
|
# will be expanded into something like:
|
|
# if(...)
|
|
# switch (0) case 0: default: if (...) ; else return;;
|
|
# GCC may emit false positive dangling-else warnings for such code.
|
|
# However, such warnings are actually against LLVM's style guide.
|
|
# disable the warning for GCC so that one can enbable Werror.
|
|
if (CMAKE_COMPILER_IS_GNUCXX)
|
|
list(APPEND LLVM_COMPILE_FLAGS "-Wno-dangling-else")
|
|
endif ()
|
|
|
|
add_subdirectory(ADT)
|
|
add_subdirectory(Analysis)
|
|
add_subdirectory(AsmParser)
|
|
add_subdirectory(BinaryFormat)
|
|
add_subdirectory(Bitcode)
|
|
add_subdirectory(Bitstream)
|
|
add_subdirectory(CAS)
|
|
add_subdirectory(CGData)
|
|
add_subdirectory(CodeGen)
|
|
add_subdirectory(DebugInfo)
|
|
add_subdirectory(Debuginfod)
|
|
add_subdirectory(Demangle)
|
|
add_subdirectory(DWARFLinkerParallel)
|
|
add_subdirectory(ExecutionEngine)
|
|
add_subdirectory(FileCheck)
|
|
add_subdirectory(Frontend)
|
|
add_subdirectory(FuzzMutate)
|
|
add_subdirectory(InterfaceStub)
|
|
add_subdirectory(IR)
|
|
add_subdirectory(LineEditor)
|
|
add_subdirectory(Linker)
|
|
add_subdirectory(MC)
|
|
add_subdirectory(MI)
|
|
add_subdirectory(MIR)
|
|
add_subdirectory(ObjCopy)
|
|
add_subdirectory(Object)
|
|
add_subdirectory(ObjectYAML)
|
|
add_subdirectory(Option)
|
|
add_subdirectory(Remarks)
|
|
add_subdirectory(Passes)
|
|
add_subdirectory(ProfileData)
|
|
add_subdirectory(SandboxIR)
|
|
add_subdirectory(Support)
|
|
add_subdirectory(TableGen)
|
|
add_subdirectory(Target)
|
|
add_subdirectory(TargetParser)
|
|
add_subdirectory(Telemetry)
|
|
add_subdirectory(Testing)
|
|
add_subdirectory(TextAPI)
|
|
add_subdirectory(Transforms)
|
|
add_subdirectory(XRay)
|
|
add_subdirectory(tools)
|