Home

Awesome

Bazel Apple framework relative headers

This repo provides a Bazel build rule for adding framework-style import support to Objective-C libraries. This is most useful if you prefer using objc_library to define your targets, but you also use CocoaPods to import your libraries using framework-style imports.

Note: this repo was forked from the material-foundation/material-internationalization-ios repository.

Usage

First, load the repo in your WORKSPACE:

load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")

git_repository(
    name = "bazel_apple_framework_relative_headers",
    remote = "https://github.com/material-foundation/bazel-apple-framework-relative-headers.git",
    commit = "<# SHA for a commit #>",
)

You can then add a apple_framework_relative_headers dependency to any objc_library in order to add support for framework-style imports in other Objective-C code:

load("@bazel_apple_framework_relative_headers//:apple_framework_relative_headers.bzl", "apple_framework_relative_headers")

objc_library(
    name = "Library",
    srcs = glob(["src/*.m"]),
    hdrs = glob(["src/*.h"]),
    sdk_frameworks = [
        "UIKit",
        "CoreGraphics",
    ],
    enable_modules = 1,
    module_name = "Library",
    visibility = ["//visibility:public"],
    deps = [
        ":LibraryFrameworkHeaders",
    ],
)

# Adds support for importing Library headers like so: #import <Library/Library.h>
apple_framework_relative_headers(
    name = "LibraryFrameworkHeaders",
    hdrs = glob(["src/*.h"]),
    framework_name = "Library",
)

License

Licensed under the Apache 2.0 license. See LICENSE for details.