Skip to content

Commit b3e448b

Browse files
committed
Add support for bundling resources
1 parent 1a97152 commit b3e448b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1557
-186
lines changed

.bazelrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# To update these lines, execute
22
# `bazel run @cgrindel_rules_bazel_integration_test//tools:update_deleted_packages`
3-
build --deleted_packages=examples/cc/external,examples/command_line/external,examples/ios_app,examples/ios_app/CoreUtilsObjC,examples/ios_app/Example,examples/ios_app/ExampleObjcTests,examples/ios_app/ExampleTests,examples/ios_app/ExampleUITests,examples/ios_app/TestingUtils,examples/ios_app/Utils,examples/ios_app/external,examples/ios_app/test/fixtures,examples/ios_app/third_party
4-
query --deleted_packages=examples/cc/external,examples/command_line/external,examples/ios_app,examples/ios_app/CoreUtilsObjC,examples/ios_app/Example,examples/ios_app/ExampleObjcTests,examples/ios_app/ExampleTests,examples/ios_app/ExampleUITests,examples/ios_app/TestingUtils,examples/ios_app/Utils,examples/ios_app/external,examples/ios_app/test/fixtures,examples/ios_app/third_party
3+
build --deleted_packages=examples/cc/external,examples/command_line/external,examples/ios_app,examples/ios_app/CoreUtilsObjC,examples/ios_app/Example,examples/ios_app/ExampleObjcTests,examples/ios_app/ExampleResources,examples/ios_app/ExampleTests,examples/ios_app/ExampleUITests,examples/ios_app/TestingUtils,examples/ios_app/Utils,examples/ios_app/external,examples/ios_app/test/fixtures,examples/ios_app/third_party
4+
query --deleted_packages=examples/cc/external,examples/command_line/external,examples/ios_app,examples/ios_app/CoreUtilsObjC,examples/ios_app/Example,examples/ios_app/ExampleObjcTests,examples/ios_app/ExampleResources,examples/ios_app/ExampleTests,examples/ios_app/ExampleUITests,examples/ios_app/TestingUtils,examples/ios_app/Utils,examples/ios_app/external,examples/ios_app/test/fixtures,examples/ios_app/third_party
55

66
# Import Shared settings
77
import %workspace%/shared.bazelrc

examples/ios_app/Example/BUILD

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application")
2+
load("@build_bazel_rules_apple//apple:resources.bzl", "apple_resource_group")
23
load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
34

45
config_setting(
@@ -10,19 +11,30 @@ config_setting(
1011

1112
ios_application(
1213
name = "Example",
14+
app_icons = glob(["Assets.xcassets/AppIcon.appiconset/**"]),
1315
bundle_id = "io.buildbuddy.example",
1416
bundle_name = "Example",
1517
families = ["iphone"],
1618
infoplists = [":Info.plist"],
1719
minimum_os_version = "15.0",
20+
resources = [":ExampleResourceGroup"],
1821
visibility = ["//visibility:public"],
1922
deps = [":Example.library"],
2023
)
2124

25+
apple_resource_group(
26+
name = "ExampleResourceGroup",
27+
resources = glob(
28+
["Assets.xcassets/**"],
29+
exclude = ["Assets.xcassets/AppIcon.appiconset/**"],
30+
),
31+
structured_resources = ["nested/answer.txt"],
32+
)
33+
2234
swift_library(
2335
name = "Example.library",
2436
srcs = glob(["**/*.swift"]),
25-
data = glob(["Assets.xcassets/**"]) + select({
37+
data = ["//ExampleResources"] + select({
2638
":release_build": [],
2739
"//conditions:default": [":PreviewContent"],
2840
}),

examples/ios_app/Example/ContentView.swift

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,21 @@ import SwiftUI
44
import Utils
55

66
struct ContentView: View {
7+
static let exampleResourcesBundle = Bundle(
8+
path: Bundle.main.path(
9+
forResource: "ExampleResources",
10+
ofType: "bundle"
11+
)!
12+
)!
13+
714
var body: some View {
8-
Text("\(Foo().greeting())\n\(Bar.baz)\n\(Baz.bar)")
9-
.padding()
15+
VStack {
16+
Text("\(Foo().greeting())\n\(Bar.baz)\n\(Baz.bar)")
17+
.padding()
18+
Image("rules_xcodeproj", bundle: Self.exampleResourcesBundle)
19+
.resizable()
20+
.frame(width: 100, height: 100)
21+
}
1022
}
1123
}
1224

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
42

examples/ios_app/ExampleObjcTests/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ objc_library(
1313
name = "ExampleObjcTests.library",
1414
testonly = True,
1515
srcs = glob(["**/*.m"]),
16+
data = ["@examples_ios_app_external//:ExternalImportedBundle"],
1617
enable_modules = True,
1718
module_name = "ExampleObjcTests",
1819
tags = ["manual"],

examples/ios_app/Example/Assets.xcassets/AccentColor.colorset/Contents.json renamed to examples/ios_app/ExampleResources/Assets.xcassets/Contents.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
{
2-
"colors" : [
3-
{
4-
"idiom" : "universal"
5-
}
6-
],
72
"info" : {
83
"author" : "xcode",
94
"version" : 1
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "universal",
5+
"scale" : "1x"
6+
},
7+
{
8+
"idiom" : "universal",
9+
"scale" : "2x"
10+
},
11+
{
12+
"filename" : "rules_xcodeproj.png",
13+
"idiom" : "universal",
14+
"scale" : "3x"
15+
}
16+
],
17+
"info" : {
18+
"author" : "xcode",
19+
"version" : 1
20+
}
21+
}
688 KB
Loading
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
load("@build_bazel_rules_apple//apple:resources.bzl", "apple_resource_bundle")
2+
3+
apple_resource_bundle(
4+
name = "ExampleResources",
5+
bundle_id = "com.example.resources",
6+
infoplists = ["Info.plist"],
7+
resources = glob(["Assets.xcassets/**"]),
8+
structured_resources = ["nested/hello.txt"],
9+
visibility = ["//visibility:public"],
10+
)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>CFBundleName</key>
6+
<string>$(PRODUCT_NAME)</string>
7+
<key>CFBundleVersion</key>
8+
<string>1.0</string>
9+
<key>CFBundleShortVersionString</key>
10+
<string>1.0</string>
11+
<key>CFBundleIdentifier</key>
12+
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13+
<key>CFBundlePackageType</key>
14+
<string>BNDL</string>
15+
</dict>
16+
</plist>

0 commit comments

Comments
 (0)