r210726 - [modules] Add first-draft module maps for Clang. These don't cover everything
Alp Toker
alp at nuanti.com
Wed Jun 11 18:06:11 PDT 2014
On 12/06/2014 03:32, Richard Smith wrote:
> Author: rsmith
> Date: Wed Jun 11 19:32:32 2014
> New Revision: 210726
>
> URL: http://llvm.org/viewvc/llvm-project?rev=210726&view=rev
> Log:
> [modules] Add first-draft module maps for Clang. These don't cover everything
> yet, but they're enough for a clean bootstrap (with a few local patches that
> are yet to be committed).
Surely it would have made more sense to commit the local patches first?
>
> Added:
> cfe/trunk/include/clang-c/module.modulemap
> cfe/trunk/include/clang/module.modulemap
>
> Added: cfe/trunk/include/clang-c/module.modulemap
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/module.modulemap?rev=210726&view=auto
> ==============================================================================
> --- cfe/trunk/include/clang-c/module.modulemap (added)
> +++ cfe/trunk/include/clang-c/module.modulemap Wed Jun 11 19:32:32 2014
> @@ -0,0 +1,5 @@
> +module Clang_C {
> + requires cplusplus
> + umbrella "."
> + module * { export * }
> +}
>
> Added: cfe/trunk/include/clang/module.modulemap
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/module.modulemap?rev=210726&view=auto
> ==============================================================================
> --- cfe/trunk/include/clang/module.modulemap (added)
> +++ cfe/trunk/include/clang/module.modulemap Wed Jun 11 19:32:32 2014
> @@ -0,0 +1,109 @@
> +module Clang_Analysis {
> + requires cplusplus
> + umbrella "Analysis"
> +
> + // This file is intended for repeated textual inclusion.
> + exclude header "Analysis/Analyses/ThreadSafetyOps.def"
> +
> + module * { export * }
> +}
> +
> +module Clang_AST {
> + requires cplusplus
> + umbrella "AST"
> +
> + // These files are intended for repeated textual inclusion.
> + exclude header "AST/BuiltinTypes.def"
> + exclude header "AST/TypeLocNodes.def"
> + exclude header "AST/TypeNodes.def"
> +
> + module * { export * }
> +}
> +
> +module Clang_ASTMatchers { requires cplusplus umbrella "ASTMatchers" module * { export * } }
> +
> +module Clang_Basic {
> + requires cplusplus
> + umbrella "Basic"
> +
> + // These files are intended for repeated textual inclusion.
> + exclude header "Basic/BuiltinsAArch64.def"
> + exclude header "Basic/BuiltinsARM64.def"
> + exclude header "Basic/BuiltinsARM.def"
> + exclude header "Basic/Builtins.def"
> + exclude header "Basic/BuiltinsHexagon.def"
> + exclude header "Basic/BuiltinsMips.def"
> + exclude header "Basic/BuiltinsNEON.def"
> + exclude header "Basic/BuiltinsNVPTX.def"
> + exclude header "Basic/BuiltinsPPC.def"
> + exclude header "Basic/BuiltinsX86.def"
> + exclude header "Basic/BuiltinsXCore.def"
> + exclude header "Basic/DiagnosticOptions.def"
> + exclude header "Basic/LangOptions.def"
> + exclude header "Basic/OpenCLExtensions.def"
> + exclude header "Basic/OpenMPKinds.def"
> + exclude header "Basic/OperatorKinds.def"
> + exclude header "Basic/Sanitizers.def"
> + exclude header "Basic/TokenKinds.def"
Isn't there a regex syntax for exclude?
It doesn't seem reasonable to expect everyone to maintain this list by
hand when we already provide a pattern by which they can be trivially
detected (the .def suffix).
> +
> + // This file is one big layering violation.
> + exclude header "Basic/AllDiagnostics.h"
> +
> + // This file includes a header from Lex.
> + exclude header "Basic/PlistSupport.h"
> +
> + // FIXME: This is logically a part of Basic, but has been put in the wrong place.
> + header "StaticAnalyzer/Core/AnalyzerOptions.h"
I'll give a hand and look into these three cases if you take care of my
post-commit ;-)
> +
> + module * { export * }
> +}
> +
> +module Clang_CodeGen { requires cplusplus umbrella "CodeGen" module * { export * } }
> +module Clang_Config { requires cplusplus umbrella "Config" module * { export * } }
Why are you exporting the internal, non-installed config.h header files?
Ditto for the module.modulemap in LLVM
Please see http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/073707.html
Alp.
> +
> +module Clang_Driver {
> + requires cplusplus
> + umbrella "Driver"
> +
> + // This file is intended for repeated textual inclusion.
> + exclude header "Driver/Types.def"
> +
> + module * { export * }
> +}
> +
> +module Clang_Edit { requires cplusplus umbrella "Edit" module * { export * } }
> +module Clang_Format { requires cplusplus umbrella "Format" module * { export * } }
> +
> +module Clang_Frontend {
> + requires cplusplus
> + umbrella "Frontend"
> +
> + // These files are intended for repeated textual inclusion.
> + exclude header "Frontend/CodeGenOptions.def"
> + exclude header "Frontend/LangStandards.def"
> +
> + module * { export * }
> +}
> +
> +module Clang_FrontendTool { requires cplusplus umbrella "FrontendTool" module * { export * } }
> +module Clang_Index { requires cplusplus umbrella "Index" module * { export * } }
> +module Clang_Lex { requires cplusplus umbrella "Lex" module * { export * } }
> +module Clang_Parse { requires cplusplus umbrella "Parse" module * { export * } }
> +module Clang_Rewrite { requires cplusplus umbrella "Rewrite" module * { export * } }
> +module Clang_Sema { requires cplusplus umbrella "Sema" module * { export * } }
> +module Clang_Serialization { requires cplusplus umbrella "Serialization" module * { export * } }
> +
> +module Clang_StaticAnalyzer {
> + requires cplusplus
> + umbrella "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 * }
> +}
> +
> +module Clang_Tooling { requires cplusplus umbrella "Tooling" module * { export * } }
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
--
http://www.nuanti.com
the browser experts
More information about the cfe-commits
mailing list