Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • B buck
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 201
    • Issues 201
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 22
    • Merge requests 22
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Meta
  • buck
  • Merge requests
  • !1582

Xcode project support modular apple_library

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Administrator requested to merge github/fork/robbertvanginkel/project_use_underlyingmodule into master Oct 13, 2017
  • Overview 10
  • Commits 3
  • Pipelines 0
  • Changes 5

Created by: robbertvanginkel

When the modular = True flag is set on apple_library, create a module.modulemap for modular imports of Objective C code into into swift. Support for both cross target imports and mixed target imports.

Cross targets the module.modulemap file will be auto detected in a header search path, which will allow modular import of a target into swift and objective-c. Currently this only works when apple.use_header_maps_in_xcode is set to false.

Mixed modular apple_libraries supported through the -import-underlying-module flag. In the case of a mixed (swift source + at least one header file) apple_library, a objc.modulemap is created that references the defined target headers excluding the generated swift header. When compiling the swift part of the target this partial modulemap then overrides the complete modulemap through the use of a vfsoverlay.

Also adds an optional config generate_missing_umbrella_headers to the [apple] section, which generates an umbrella header if no umbrella header is present.

(Note that this is stacked on PR #1561, but I can't seem to change that base so until that lands you can review this without looking at 951871c but 951871c...ea3f297)

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/robbertvanginkel/project_use_underlyingmodule