module.modulemap 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. module LLVM_Analysis {
  2. requires cplusplus
  3. umbrella "Analysis"
  4. module * { export * }
  5. // FIXME: Why is this excluded?
  6. exclude header "Analysis/BlockFrequencyInfoImpl.h"
  7. // This is intended for (repeated) textual inclusion.
  8. textual header "Analysis/TargetLibraryInfo.def"
  9. }
  10. module LLVM_AsmParser { requires cplusplus umbrella "AsmParser" module * { export * } }
  11. // A module covering CodeGen/ and Target/. These are intertwined
  12. // and codependent, and thus notionally form a single module.
  13. module LLVM_Backend {
  14. requires cplusplus
  15. module CodeGen {
  16. umbrella "CodeGen"
  17. module * { export * }
  18. // FIXME: Why is this excluded?
  19. exclude header "CodeGen/MachineValueType.h"
  20. // Exclude these; they're intended to be included into only a single
  21. // translation unit (or none) and aren't part of this module.
  22. exclude header "CodeGen/CommandFlags.h"
  23. exclude header "CodeGen/LinkAllAsmWriterComponents.h"
  24. exclude header "CodeGen/LinkAllCodegenComponents.h"
  25. // These are intended for (repeated) textual inclusion.
  26. textual header "CodeGen/DIEValue.def"
  27. }
  28. module Target {
  29. umbrella "Target"
  30. module * { export * }
  31. }
  32. // FIXME: Where should this go?
  33. module Analysis_BlockFrequencyInfoImpl {
  34. header "Analysis/BlockFrequencyInfoImpl.h"
  35. export *
  36. }
  37. }
  38. module LLVM_Bitcode { requires cplusplus umbrella "Bitcode" module * { export * } }
  39. module LLVM_Config { requires cplusplus umbrella "Config" module * { export * } }
  40. module LLVM_DebugInfo {
  41. requires cplusplus
  42. module DIContext { header "DebugInfo/DIContext.h" export * }
  43. }
  44. module LLVM_DebugInfo_DWARF {
  45. requires cplusplus
  46. umbrella "DebugInfo/DWARF"
  47. module * { export * }
  48. }
  49. module LLVM_DebugInfo_PDB {
  50. requires cplusplus
  51. umbrella "DebugInfo/PDB"
  52. module * { export * }
  53. // Separate out this subdirectory; it's an optional component that depends on
  54. // a separate library which might not be available.
  55. //
  56. // FIXME: There should be a better way to specify this.
  57. exclude header "DebugInfo/PDB/DIA/DIADataStream.h"
  58. exclude header "DebugInfo/PDB/DIA/DIAEnumDebugStreams.h"
  59. exclude header "DebugInfo/PDB/DIA/DIAEnumLineNumbers.h"
  60. exclude header "DebugInfo/PDB/DIA/DIAEnumSourceFiles.h"
  61. exclude header "DebugInfo/PDB/DIA/DIAEnumSymbols.h"
  62. exclude header "DebugInfo/PDB/DIA/DIALineNumber.h"
  63. exclude header "DebugInfo/PDB/DIA/DIARawSymbol.h"
  64. exclude header "DebugInfo/PDB/DIA/DIASession.h"
  65. exclude header "DebugInfo/PDB/DIA/DIASourceFile.h"
  66. exclude header "DebugInfo/PDB/DIA/DIASupport.h"
  67. }
  68. module LLVM_DebugInfo_PDB_DIA {
  69. requires cplusplus
  70. umbrella "DebugInfo/PDB/DIA"
  71. module * { export * }
  72. }
  73. module LLVM_ExecutionEngine {
  74. requires cplusplus
  75. umbrella "ExecutionEngine"
  76. module * { export * }
  77. // Exclude this; it's an optional component of the ExecutionEngine.
  78. exclude header "ExecutionEngine/OProfileWrapper.h"
  79. // Exclude these; they're intended to be included into only a single
  80. // translation unit (or none) and aren't part of this module.
  81. exclude header "ExecutionEngine/JIT.h"
  82. exclude header "ExecutionEngine/MCJIT.h"
  83. exclude header "ExecutionEngine/Interpreter.h"
  84. exclude header "ExecutionEngine/OrcMCJITReplacement.h"
  85. }
  86. module LLVM_IR {
  87. requires cplusplus
  88. // FIXME: Is this the right place for these?
  89. module Pass { header "Pass.h" export * }
  90. module PassSupport { header "PassSupport.h" export * }
  91. module PassAnalysisSupport { header "PassAnalysisSupport.h" export * }
  92. module PassRegistry { header "PassRegistry.h" export * }
  93. module InitializePasses { header "InitializePasses.h" export * }
  94. umbrella "IR"
  95. module * { export * }
  96. // These are intended for (repeated) textual inclusion.
  97. textual header "IR/DebugInfoFlags.def"
  98. textual header "IR/Instruction.def"
  99. textual header "IR/Metadata.def"
  100. textual header "IR/Value.def"
  101. }
  102. module LLVM_IRReader { requires cplusplus umbrella "IRReader" module * { export * } }
  103. module LLVM_LineEditor { requires cplusplus umbrella "LineEditor" module * { export * } }
  104. module LLVM_LTO { requires cplusplus umbrella "LTO" module * { export * } }
  105. module LLVM_MC {
  106. requires cplusplus
  107. // FIXME: Mislayered?
  108. module Support_TargetRegistry {
  109. header "Support/TargetRegistry.h"
  110. export *
  111. }
  112. umbrella "MC"
  113. module * { export * }
  114. // Exclude this; it's fundamentally non-modular.
  115. exclude header "MC/MCTargetOptionsCommandFlags.h"
  116. }
  117. module LLVM_Object {
  118. requires cplusplus
  119. umbrella "Object"
  120. module * { export * }
  121. }
  122. module LLVM_Option { requires cplusplus umbrella "Option" module * { export * } }
  123. module LLVM_TableGen { requires cplusplus umbrella "TableGen" module * { export * } }
  124. module LLVM_Transforms {
  125. requires cplusplus
  126. umbrella "Transforms"
  127. module * { export * }
  128. // FIXME: Excluded because it does bad things with the legacy pass manager.
  129. exclude header "Transforms/IPO/PassManagerBuilder.h"
  130. }
  131. // A module covering ADT/ and Support/. These are intertwined and
  132. // codependent, and notionally form a single module.
  133. module LLVM_Utils {
  134. module ADT {
  135. requires cplusplus
  136. umbrella "ADT"
  137. module * { export * }
  138. }
  139. module Support {
  140. requires cplusplus
  141. umbrella "Support"
  142. module * { export * }
  143. // Exclude this; it's only included on Solaris.
  144. exclude header "Support/Solaris.h"
  145. // Exclude this; it's only included on AIX and fundamentally non-modular.
  146. exclude header "Support/AIXDataTypesFix.h"
  147. // Exclude this; it's fundamentally non-modular.
  148. exclude header "Support/PluginLoader.h"
  149. // Exclude this; it's a weirdly-factored part of llvm-gcov and conflicts
  150. // with the Analysis module (which also defines an llvm::GCOVOptions).
  151. exclude header "Support/GCOV.h"
  152. // FIXME: Mislayered?
  153. exclude header "Support/TargetRegistry.h"
  154. // These are intended for textual inclusion.
  155. textual header "Support/Dwarf.def"
  156. textual header "Support/ELFRelocs/AArch64.def"
  157. textual header "Support/ELFRelocs/ARM.def"
  158. textual header "Support/ELFRelocs/Hexagon.def"
  159. textual header "Support/ELFRelocs/i386.def"
  160. textual header "Support/ELFRelocs/Mips.def"
  161. textual header "Support/ELFRelocs/PowerPC64.def"
  162. textual header "Support/ELFRelocs/PowerPC.def"
  163. textual header "Support/ELFRelocs/Sparc.def"
  164. textual header "Support/ELFRelocs/SystemZ.def"
  165. textual header "Support/ELFRelocs/x86_64.def"
  166. }
  167. }
  168. module LLVM_CodeGen_MachineValueType {
  169. requires cplusplus
  170. header "CodeGen/MachineValueType.h"
  171. export *
  172. }
  173. // This is used for a $src == $build compilation. Otherwise we use
  174. // LLVM_Support_DataTypes_Build, defined in a module map that is
  175. // copied into the build area.
  176. module LLVM_Support_DataTypes_Src {
  177. header "llvm/Support/DataTypes.h"
  178. export *
  179. }