Skip to content

material-foundation/bazel-apple-framework-relative-headers

Repository files navigation

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.

About

Bazel support for framework header imports

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages