[PATCH] D27396: Install the LLVM header module.modulemaps

Eric Fiselier via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 5 02:05:19 PST 2016


EricWF added a comment.

In https://reviews.llvm.org/D27396#613150, @v.g.vassilev wrote:

> Can't we concatenate the modulemap in the source directory with the modulemap in the build directory and publish them in the install folder?


Unfortunately not. The `module.modulemap.install` file provides *different* definitions for existing modules. For example `LLVM_Config` is defined in `module.modulemap`  as

  module LLVM_Config { requires cplusplus umbrella "Config" module * { export * } }

but `module.modulemap.install` needs to take the generated headers into account, which leads to the differing definition below:,

  module LLVM_Config {
    requires cplusplus
    umbrella "Config"
    module * { export * }
   textual header "Config/AsmParsers.def"
   textual header "Config/AsmPrinters.def"
   textual header "Config/Disassemblers.def"
   textual header "Config/Targets.def"
  }

We can't easily achieve this by concatenating the maps. We also can't name these additional headers in the `module.modulemap` file since they don't exist as part of that modules "umbrella" until after installation.


https://reviews.llvm.org/D27396





More information about the llvm-commits mailing list