Skip to content

Commit 85bfd07

Browse files
author
Karim Alweheshy
committed
add example
1 parent 8bec690 commit 85bfd07

File tree

11 files changed

+160
-0
lines changed

11 files changed

+160
-0
lines changed

examples/example_infos.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ _macos_single_bazel_version_test_examples = [
149149
"xcmetrics_example",
150150
"tca_example",
151151
"symlink_example",
152+
"yoga_example",
152153
]
153154

154155
_linux_single_bazel_version_test_examples = []

examples/yoga_example/BUILD.bazel

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
load("@bazel_gazelle//:def.bzl", "gazelle", "gazelle_binary")
2+
load("@cgrindel_bazel_starlib//bzltidy:defs.bzl", "tidy")
3+
4+
tidy(
5+
name = "tidy",
6+
targets = [
7+
":update_build_files",
8+
],
9+
)
10+
11+
# MARK: - Gazelle
12+
13+
# Ignore the Swift build folder
14+
# gazelle:exclude .build
15+
16+
gazelle_binary(
17+
name = "gazelle_bin",
18+
languages = [
19+
"@bazel_skylib_gazelle_plugin//bzl",
20+
"@rules_swift_package_manager//gazelle",
21+
],
22+
)
23+
24+
gazelle(
25+
name = "update_build_files",
26+
data = [
27+
"@swift_deps_info//:swift_deps_index",
28+
],
29+
extra_args = [
30+
"-swift_dependency_index=$(location @swift_deps_info//:swift_deps_index)",
31+
],
32+
gazelle = ":gazelle_bin",
33+
)

examples/yoga_example/MODULE.bazel

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
bazel_dep(
2+
name = "rules_swift_package_manager",
3+
version = "0.0.0",
4+
)
5+
local_path_override(
6+
module_name = "rules_swift_package_manager",
7+
path = "../..",
8+
)
9+
10+
bazel_dep(name = "cgrindel_bazel_starlib", version = "0.23.0")
11+
bazel_dep(name = "bazel_skylib", version = "1.7.1")
12+
13+
# The apple_support bazel_dep must come before the rules_cc.
14+
# https://github.com/bazelbuild/apple_support#incompatible-toolchain-resolution
15+
bazel_dep(name = "apple_support", version = "1.17.1")
16+
bazel_dep(
17+
name = "rules_swift",
18+
version = "2.3.1",
19+
repo_name = "build_bazel_rules_swift",
20+
)
21+
bazel_dep(
22+
name = "rules_apple",
23+
version = "3.16.1",
24+
repo_name = "build_bazel_rules_apple",
25+
)
26+
27+
bazel_dep(
28+
name = "bazel_skylib_gazelle_plugin",
29+
version = "1.7.1",
30+
dev_dependency = True,
31+
)
32+
bazel_dep(
33+
name = "gazelle",
34+
version = "0.41.0",
35+
dev_dependency = True,
36+
repo_name = "bazel_gazelle",
37+
)
38+
39+
apple_cc_configure = use_extension(
40+
"@apple_support//crosstool:setup.bzl",
41+
"apple_cc_configure_extension",
42+
)
43+
use_repo(apple_cc_configure, "local_config_apple_cc")
44+
45+
swift_deps = use_extension(
46+
"@rules_swift_package_manager//:extensions.bzl",
47+
"swift_deps",
48+
)
49+
swift_deps.from_package(
50+
declare_swift_deps_info = True,
51+
resolved = "//:Package.resolved",
52+
swift = "//:Package.swift",
53+
)
54+
use_repo(
55+
swift_deps,
56+
"swift_deps_info",
57+
"swift_package",
58+
"swiftpkg_yoga",
59+
)

examples/yoga_example/Package.resolved

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/yoga_example/Package.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// swift-tools-version: 6.0
2+
3+
import PackageDescription
4+
5+
let package = Package(
6+
name: "YogaKitExample",
7+
dependencies: [
8+
.package(url: "https://github.com/facebook/yoga.git", from: "3.1.0"),
9+
]
10+
)

examples/yoga_example/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Yoga Example
2+
3+
This example demonstrates support for clang, with a root public headers search paths. For example, the file
4+
`external/swiftpkg_yoga/yoga/module.modulemap` will be duplicated when we have both `sources: ["yoga"],` and `publicHeadersPath: ".",` in `Package.swift`. Removing duplicate from the srcs read is useful in this case.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
load("@build_bazel_rules_swift//swift:swift.bzl", "swift_test")
2+
3+
swift_test(
4+
name = "YogaTests",
5+
srcs = [
6+
"YogaTests.swift",
7+
],
8+
module_name = "YogaTests",
9+
deps = [
10+
"@swiftpkg_yoga//:yoga",
11+
],
12+
)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@testable import Yoga
2+
import XCTest
3+
4+
class YogaTests: XCTestCase {
5+
func testSomething() {
6+
let view = UIView()
7+
view.flex.isEnabled = true
8+
}
9+
}

examples/yoga_example/WORKSPACE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Intentionally blank: Using bzlmod
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Intentionally blank
2+
# This exists to force Bazel in bzlmod mode to be strict.

0 commit comments

Comments
 (0)