r215617 - [modules] Factor .td-generated diagnostics stuff out into its own module; this

Richard Smith richard-llvm at metafoo.co.uk
Wed Aug 13 21:11:34 PDT 2014


Author: rsmith
Date: Wed Aug 13 23:11:33 2014
New Revision: 215617

URL: http://llvm.org/viewvc/llvm-project?rev=215617&view=rev
Log:
[modules] Factor .td-generated diagnostics stuff out into its own module; this
avoids users of AllDiagnostics.h from needing to pregenerate *all* generated
headers. Hopefully this will make my modules buildbot happier...

Modified:
    cfe/trunk/include/clang/module.modulemap

Modified: cfe/trunk/include/clang/module.modulemap
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/module.modulemap?rev=215617&r1=215616&r2=215617&view=diff
==============================================================================
--- cfe/trunk/include/clang/module.modulemap (original)
+++ cfe/trunk/include/clang/module.modulemap Wed Aug 13 23:11:33 2014
@@ -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 * }
 }
 





More information about the cfe-commits mailing list