Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===- MachOConfig.h --------------------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
 
9
#ifndef LLVM_OBJCOPY_MACHO_MACHOCONFIG_H
10
#define LLVM_OBJCOPY_MACHO_MACHOCONFIG_H
11
 
12
#include "llvm/ADT/DenseMap.h"
13
#include "llvm/ADT/DenseSet.h"
14
#include "llvm/ADT/StringRef.h"
15
#include <optional>
16
#include <vector>
17
 
18
namespace llvm {
19
namespace objcopy {
20
 
21
// Mach-O specific configuration for copying/stripping a single file.
22
struct MachOConfig {
23
  // Repeated options
24
  std::vector<StringRef> RPathToAdd;
25
  std::vector<StringRef> RPathToPrepend;
26
  DenseMap<StringRef, StringRef> RPathsToUpdate;
27
  DenseMap<StringRef, StringRef> InstallNamesToUpdate;
28
  DenseSet<StringRef> RPathsToRemove;
29
 
30
  // install-name-tool's id option
31
  std::optional<StringRef> SharedLibId;
32
 
33
  // Segments to remove if they are empty
34
  DenseSet<StringRef> EmptySegmentsToRemove;
35
 
36
  // Boolean options
37
  bool StripSwiftSymbols = false;
38
  bool KeepUndefined = false;
39
 
40
  // install-name-tool's --delete_all_rpaths
41
  bool RemoveAllRpaths = false;
42
};
43
 
44
} // namespace objcopy
45
} // namespace llvm
46
 
47
#endif // LLVM_OBJCOPY_MACHO_MACHOCONFIG_H