//===- llvm/TextAPI/InterfaceFile.h - TAPI Interface File -------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // A generic and abstract interface representation for linkable objects. This // could be an MachO executable, bundle, dylib, or text-based stub file. // //===----------------------------------------------------------------------===// #ifndef LLVM_TEXTAPI_INTERFACEFILE_H #define LLVM_TEXTAPI_INTERFACEFILE_H #include "llvm/ADT/Hashing.h" #include "llvm/ADT/StringRef.h" #include "llvm/ADT/iterator.h" #include "llvm/Support/Allocator.h" #include "llvm/TextAPI/ArchitectureSet.h" #include "llvm/TextAPI/FileTypes.h" #include "llvm/TextAPI/PackedVersion.h" #include "llvm/TextAPI/Platform.h" #include "llvm/TextAPI/RecordsSlice.h" #include "llvm/TextAPI/Symbol.h" #include "llvm/TextAPI/SymbolSet.h" #include "llvm/TextAPI/Target.h" namespace llvm { namespace MachO { /// Defines a list of Objective-C constraints. enum class ObjCConstraintType : unsigned { … }; /// Reference to an interface file. class InterfaceFileRef { … }; } // end namespace MachO. namespace MachO { /// Defines the interface file. class InterfaceFile { … }; // Keep containers that hold InterfaceFileRefs in sorted order and uniqued. template <typename C> typename C::iterator addEntry(C &Container, StringRef InstallName) { … } } // end namespace MachO. } // end namespace llvm. #endif // LLVM_TEXTAPI_INTERFACEFILE_H