]> granicus.if.org Git - clang/commitdiff
[modules] Factor .td-generated diagnostics stuff out into its own module; this
authorRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 14 Aug 2014 04:11:33 +0000 (04:11 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 14 Aug 2014 04:11:33 +0000 (04:11 +0000)
avoids users of AllDiagnostics.h from needing to pregenerate *all* generated
headers. Hopefully this will make my modules buildbot happier...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215617 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/module.modulemap

index 03806016cc48471c609d8c639a545863c10d14c9..1b7132e12753954efe07aaa9112f9bd2c0b0a694 100644 (file)
@@ -47,9 +47,6 @@ module Clang_Basic {
   exclude header "Basic/Sanitizers.def"
   exclude header "Basic/TokenKinds.def"
 
-  // This file is one big layering violation.
-  exclude header "Basic/AllDiagnostics.h"
-
   // This file includes a header from Lex.
   exclude header "Basic/PlistSupport.h"
 
@@ -62,6 +59,24 @@ module Clang_Basic {
 module Clang_CodeGen { requires cplusplus umbrella "CodeGen" module * { export * } }
 module Clang_Config { requires cplusplus umbrella "Config" module * { export * } }
 
+// Files for diagnostic groups are spread all over the include/clang/ tree, but
+// logically form a single module.
+module Clang_Diagnostics {
+  requires cplusplus
+
+  module All { header "Basic/AllDiagnostics.h" export * }
+  module Analysis { header "Analysis/AnalysisDiagnostic.h" export * }
+  module AST { header "AST/ASTDiagnostic.h" export * }
+  module Comment { header "AST/CommentDiagnostic.h" export * }
+  module Driver { header "Driver/DriverDiagnostic.h" export * }
+  module Frontend { header "Frontend/FrontendDiagnostic.h" export * }
+  module Lex { header "Lex/LexDiagnostic.h" export * }
+  module Parse { header "Parse/ParseDiagnostic.h" export * }
+  // FIXME: This breaks the build of Clang_Sema, for unknown reasons.
+  //module Sema { header "Sema/SemaDiagnostic.h" export * }
+  module Serialization { header "Serialization/SerializationDiagnostic.h" export * }
+}
+
 module Clang_Driver {
   requires cplusplus
   umbrella "Driver"
@@ -101,9 +116,6 @@ module Clang_StaticAnalyzer {
   // This file is intended for repeated textual inclusion.
   exclude header "StaticAnalyzer/Core/Analyses.def"
 
-  // FIXME: This is logically a part of Basic, but has been put in the wrong place.
-  exclude header "StaticAnalyzer/Core/AnalyzerOptions.h"
-
   module * { export * }
 }