
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.
74 lines
2.1 KiB
CMake
74 lines
2.1 KiB
CMake
include(LLVM-Build)
|
|
|
|
# `Demangle', `Support' and `TableGen' libraries are added on the top-level
|
|
# CMakeLists.txt
|
|
|
|
add_subdirectory(IR)
|
|
add_subdirectory(FuzzMutate)
|
|
add_subdirectory(FileCheck)
|
|
add_subdirectory(InterfaceStub)
|
|
add_subdirectory(IRPrinter)
|
|
add_subdirectory(IRReader)
|
|
add_subdirectory(CAS)
|
|
add_subdirectory(CGData)
|
|
add_subdirectory(CodeGen)
|
|
add_subdirectory(CodeGenTypes)
|
|
add_subdirectory(BinaryFormat)
|
|
add_subdirectory(Bitcode)
|
|
add_subdirectory(Bitstream)
|
|
add_subdirectory(DWARFLinker)
|
|
add_subdirectory(Extensions)
|
|
add_subdirectory(Frontend)
|
|
add_subdirectory(Transforms)
|
|
add_subdirectory(Linker)
|
|
add_subdirectory(Analysis)
|
|
add_subdirectory(LTO)
|
|
add_subdirectory(MC)
|
|
add_subdirectory(MCA)
|
|
add_subdirectory(ObjCopy)
|
|
add_subdirectory(Object)
|
|
add_subdirectory(ObjectYAML)
|
|
add_subdirectory(Option)
|
|
add_subdirectory(Remarks)
|
|
add_subdirectory(Debuginfod)
|
|
add_subdirectory(DebugInfo)
|
|
add_subdirectory(DWARFCFIChecker)
|
|
add_subdirectory(DWP)
|
|
add_subdirectory(ExecutionEngine)
|
|
add_subdirectory(Target)
|
|
add_subdirectory(SandboxIR)
|
|
add_subdirectory(AsmParser)
|
|
add_subdirectory(LineEditor)
|
|
add_subdirectory(ProfileData)
|
|
add_subdirectory(Passes)
|
|
add_subdirectory(TargetParser)
|
|
add_subdirectory(TextAPI)
|
|
add_subdirectory(Telemetry)
|
|
add_subdirectory(ToolDrivers)
|
|
add_subdirectory(XRay)
|
|
if (LLVM_INCLUDE_TESTS)
|
|
add_subdirectory(Testing)
|
|
endif()
|
|
add_subdirectory(WindowsDriver)
|
|
add_subdirectory(WindowsManifest)
|
|
|
|
set(LLVMCONFIGLIBRARYDEPENDENCIESINC "${LLVM_BINARY_DIR}/tools/llvm-config/LibraryDependencies.inc")
|
|
|
|
# Special components which don't have any source attached but aggregate other
|
|
# components
|
|
add_llvm_component_group(all-targets LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD})
|
|
add_llvm_component_group(Engine)
|
|
|
|
# The native target may not be enabled when cross compiling
|
|
if(TARGET ${LLVM_NATIVE_ARCH})
|
|
add_llvm_component_group(Native LINK_COMPONENTS ${LLVM_NATIVE_ARCH})
|
|
add_llvm_component_group(NativeCodeGen LINK_COMPONENTS ${LLVM_NATIVE_ARCH}CodeGen)
|
|
else()
|
|
add_llvm_component_group(Native)
|
|
add_llvm_component_group(NativeCodeGen)
|
|
endif()
|
|
|
|
# Component post-processing
|
|
LLVMBuildResolveComponentsLink()
|
|
LLVMBuildGenerateCFragment(OUTPUT ${LLVMCONFIGLIBRARYDEPENDENCIESINC})
|