Skip to content

Commit 2e6451a

Browse files
committed
protobuf: Add remaining apple targets
1 parent 16d12f9 commit 2e6451a

File tree

8 files changed

+38
-18
lines changed

8 files changed

+38
-18
lines changed

cinterop-c/.bazelrc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,20 @@ build:release --compilation_mode=opt --strip=always
44

55
build:macos_arm64 --platforms=@build_bazel_apple_support//platforms:macos_arm64 --apple_platform_type=macos
66
build:macos_x64 --platforms=@build_bazel_apple_support//platforms:macos_x86_64 --apple_platform_type=macos
7+
78
build:ios_arm64 --platforms=@build_bazel_apple_support//platforms:ios_arm64 --apple_platform_type=ios
89
build:ios_simulator_arm64 --platforms=@build_bazel_apple_support//platforms:ios_sim_arm64 --apple_platform_type=ios
910
build:ios_x64 --platforms=@build_bazel_apple_support//platforms:ios_x86_64 --apple_platform_type=ios
1011

12+
build:watchos_arm64 --platforms=@build_bazel_apple_support//platforms:watchos_arm64_32 --apple_platform_type=watchos
13+
build:watchos_device_arm64 --platforms=@build_bazel_apple_support//platforms:watchos_device_arm64 --apple_platform_type=watchos
14+
build:watchos_simulator_arm64 --platforms=@build_bazel_apple_support//platforms:watchos_arm64 --apple_platform_type=watchos
15+
build:watchos_arm32 --platforms=@build_bazel_apple_support//platforms:watchos_armv7k --apple_platform_type=watchos
16+
build:watchos_x64 --platforms=@build_bazel_apple_support//platforms:watchos_x86_64 --apple_platform_type=watchos
17+
18+
build:tvos_arm64 --platforms=@build_bazel_apple_support//platforms:tvos_arm64 --apple_platform_type=watchos
19+
build:tvos_simulator_arm64 --platforms=@build_bazel_apple_support//platforms:tvos_sim_arm64 --apple_platform_type=watchos
20+
build:tvos_x64 --platforms=@build_bazel_apple_support//platforms:tvos_x86_64 --apple_platform_type=watchos
21+
1122
build:linux_arm64 --platforms=//platforms:linux_arm64
1223
build:linux_x64 --platforms=//platforms:linux_x86_64

cinterop-c/MODULE.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module(
77
bazel_dep(name = "rules_cc", version = "0.2.0")
88

99
# required to build for apple targets (like iOS)
10-
bazel_dep(name = "apple_support", version = "1.22.1", repo_name = "build_bazel_apple_support")
10+
bazel_dep(name = "apple_support", version = "1.24.5", repo_name = "build_bazel_apple_support")
1111
bazel_dep(name = "platforms", version = "1.0.0")
1212

1313
# Protobuf

cinterop-c/MODULE.bazel.lock

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

cinterop-c/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ The binary can be updated by running
2424
./gradlew :grpc:grpc-core:buildDependencyCLibGrpc_fat_iosArm64
2525
```
2626

27+
### Compiling for Apple targets
28+
29+
All Konan Apple targets have a corresponding build config in `.bazelrc`.
30+
To tell Bazel the apple target constraints, we use the `apple_support` rules.
31+
All apple target rules are defined in https://github.com/bazelbuild/apple_support/blob/master/configs/platforms.bzl.
32+
For Konan Target to Apple triplet mapping, see https://kotlinlang.org/docs/native-target-support.html.
33+
2734
### Compiling for Linux
2835

2936
To produce K/N compatible static libraries, we use the Konan toolchain for compilation.

cinterop-c/build_target.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ CONFIG=release
2626
mkdir -p "$(dirname "$DST")"
2727

2828
echo "==> Building $LABEL to $DST" >&2
29+
echo "==> KONAN_HOME: $KONAN_HOME" >&2
30+
echo "==> KONAN_TARGET: $KONAN_TARGET" >&2
2931
KONAN_DEP="--define=KONAN_DEPS=$HOME/.konan/dependencies"
3032
bazel build "$LABEL" --config="$KONAN_TARGET" --config="$CONFIG" "$KONAN_DEP" "--define=KONAN_HOME=$KONAN_HOME"
3133

docs/proxy-repositories.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ However, all dependency changes MUST be reviewed before running CI.
99
For JetBrains developers, there is a possibility to use proxy repositories locally.
1010
It is actually encouraged to do so.
1111

12-
For it to work, add the following properties to your `$HOME/gradle/gradle.properties` file
12+
For it to work, add the following properties to your `$HOME/.gradle/gradle.properties` file
1313
(or `local.properties` in the repository root):
1414
```properties
1515
kotlinx.rpc.team.space.username=<username>

protobuf/protobuf-core/gradle.properties

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,3 @@ kotlinx.rpc.exclude.wasmWasi=true
55
kotlinx.rpc.exclude.js=true
66
kotlinx.rpc.exclude.wasmJs=true
77
kotlinx.rpc.exclude.mingwX64=true
8-
kotlinx.rpc.exclude.tvosArm64=true
9-
kotlinx.rpc.exclude.tvosSimulatorArm64=true
10-
kotlinx.rpc.exclude.tvosX64=true
11-
kotlinx.rpc.exclude.watchosArm32=true
12-
kotlinx.rpc.exclude.watchosDeviceArm64=true
13-
kotlinx.rpc.exclude.watchosX64=true
14-
# TODO: Remove once we ant to activate WatchOS (these two targets are already prepared for activation)
15-
kotlinx.rpc.exclude.watchosArm64=true
16-
kotlinx.rpc.exclude.watchosSimulatorArm64=true

protobuf/protobuf-core/src/nativeInterop/cinterop/libprotowire.def

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,22 @@ headerFilter = protowire.h
33

44
noStringConversion = pw_encoder_write_string
55

6-
76
staticLibraries.macos_arm64 = libprotowire_fat.macos_arm64.a
87
staticLibraries.macos_x64 = libprotowire_fat.macos_x64.a
8+
99
staticLibraries.ios_arm64 = libprotowire_fat.ios_arm64.a
1010
staticLibraries.ios_simulator_arm64 = libprotowire_fat.ios_simulator_arm64.a
1111
staticLibraries.ios_x64 = libprotowire_fat.ios_x64.a
12+
13+
staticLibraries.watchos_arm64 = libprotowire_fat.watchos_arm64.a
14+
staticLibraries.watchos_device_arm64 = libprotowire_fat.watchos_device_arm64.a
15+
staticLibraries.watchos_simulator_arm64 = libprotowire_fat.watchos_simulator_arm64.a
16+
staticLibraries.watchos_arm32 = libprotowire_fat.watchos_arm32.a
17+
staticLibraries.watchos_x64 = libprotowire_fat.watchos_x64.a
18+
19+
staticLibraries.tvos_arm64 = libprotowire_fat.tvos_arm64.a
20+
staticLibraries.tvos_simulator_arm64 = libprotowire_fat.tvos_simulator_arm64.a
21+
staticLibraries.tvos_x64 = libprotowire_fat.tvos_x64.a
22+
1223
staticLibraries.linux_arm64 = libprotowire_fat.linux_arm64.a
1324
staticLibraries.linux_x64 = libprotowire_fat.linux_x64.a
14-
# TODO: Uncomment when activating WatchOS
15-
# staticLibraries.watchos_arm64 = libprotowire_fat.watchos_arm64_32.a
16-
# staticLibraries.watchos_simulator_arm64 = libprotowire_fat.watchos_sim_arm64.a

0 commit comments

Comments
 (0)