Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/line/rules_apple_line

LINE's Apple rules for Bazel
https://github.com/line/rules_apple_line

apple bazel bazel-rules ios mixed-language objc swift

Last synced: 26 days ago
JSON representation

LINE's Apple rules for Bazel

Awesome Lists containing this project

README

        

# LINE's Apple rules for Bazel ![](https://github.com/line/bazel_rules_apple/workflows/build/badge.svg)

This repository contains additional rules for Bazel that can be used to bundle
applications and frameworks for Apple platforms.

## Overview

These are open references of what are used to build the LINE iOS app, which
solve some of our specific use-cases, for instance, mixed Objective-C and Swift
modules. They can be used as drop-in replacements for the official Apple rules
when needed, with the goal of being easy to switch back to the official ones
when we longer need them.

They may not work with certain revisions of `rules_apple` or
`rules_swift` due to their breaking changes. If they don't work out-of-the-box
for you, use them as references for your custom rule's implementation.

## Build Definitions

### Library Rules

* [apple_library](docs/README.md#apple_library)
* [metal_library](docs/README.md#metal_library)
* [objc_library](docs/README.md#objc_library)
* [swift_library](docs/README.md#swift_library)

### Bundling Rules

* [mixed_static_framework](docs/README.md#mixed_static_framework)
* [objc_static_framework](docs/README.md#objc_static_framework)
* [swift_static_framework](docs/README.md#swift_static_framework)

### Other Rules

* [apple_linker_inputs](docs/README.md#apple_linker_inputs)
* [apple_preprocessed_plist](docs/README.md#apple_preprocessed_plist)
* [apple_resource_bundle](docs/README.md#apple_resource_bundle)
* [pkg_dsym](docs/README.md#pkg_dsym)
* [swiftgen](docs/README.md#swiftgen)

## Requirements

Bazel 4.0+

## Setup

- Setup [rules_apple](https://github.com/bazelbuild/rules_apple#quick-setup).

- Add the following to your `WORKSPACE` file, replacing `` with the
commit you wish to depend on and `` with the expected SHA-256 of the
zip file.

```starlark
RULES_APPLE_LINE_COMMIT = ""

http_archive(
name = "rules_apple_line",
sha256 = "",
strip_prefix = "rules_apple_line-%s" % RULES_APPLE_LINE_COMMIT,
url = "https://github.com/line/rules_apple_line/archive/%s.zip" % RULES_APPLE_LINE_COMMIT,
)

load(
"@rules_apple_line//apple:repositories.bzl",
"rules_apple_line_dependencies",
)

rules_apple_line_dependencies()
```

## Examples

See the [examples](examples) directory.

## License

```
Copyright 2020 LINE Corporation

LINE Corporation licenses this file to you under the Apache License,
version 2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at:

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
```

See [LICENSE](LICENSE) for more detail.