| load("@rules_rust//rust:defs.bzl", "rust_static_library") |
| load("@rules_shell//shell:sh_test.bzl", "sh_test") |
| load(":ios_utils.bzl", "platform_transition_filegroup") |
| |
| exports_files([ |
| "Cargo.toml", |
| "Cargo.lock", |
| ]) |
| |
| rust_static_library( |
| name = "ios_build_lib", |
| srcs = glob(["**/*.rs"]), |
| edition = "2018", |
| deps = [ |
| # Still uses the legacy root form because this example's |
| # `3rdparty/crates/` directory is generated by `crates_vendor` and |
| # is committed; the subpackage form `@ios_build//zstd` will work |
| # after `bazel run //3rdparty:crates_vendor` re-renders those files |
| # under rules_rust >= the version that always emits subpackages. |
| "@ios_build//:zstd", |
| ], |
| ) |
| |
| [ |
| platform_transition_filegroup( |
| name = "ios_build_lib.{}".format(plat), |
| srcs = [":ios_build_lib"], |
| platform = plat, |
| ) |
| for plat in [ |
| "macos_x86_64", |
| "macos_arm64", |
| "ios_x86_64", |
| "ios_arm64", |
| ] |
| ] |
| |
| [ |
| sh_test( |
| name = "check_arch.{}".format(plat), |
| srcs = ["check_arch.sh"], |
| args = ["$(rootpath :ios_build_lib.{})".format(plat)], |
| data = [":ios_build_lib.{}".format(plat)], |
| ) |
| for plat in [ |
| "ios_x86_64", |
| "ios_arm64", |
| ] |
| ] |
| |
| platform( |
| name = "macos_x86_64", |
| constraint_values = [ |
| "@platforms//cpu:x86_64", |
| "@platforms//os:macos", |
| ], |
| ) |
| |
| platform( |
| name = "macos_arm64", |
| constraint_values = [ |
| "@platforms//cpu:arm64", |
| "@platforms//os:macos", |
| ], |
| ) |
| |
| platform( |
| name = "ios_x86_64", |
| constraint_values = [ |
| "@platforms//cpu:x86_64", |
| "@platforms//os:ios", |
| "@apple_support//constraints:simulator", |
| ], |
| ) |
| |
| platform( |
| name = "ios_sim_arm64", |
| constraint_values = [ |
| "@platforms//cpu:arm64", |
| "@platforms//os:ios", |
| "@apple_support//constraints:simulator", |
| ], |
| ) |
| |
| platform( |
| name = "ios_arm64", |
| constraint_values = [ |
| "@platforms//cpu:arm64", |
| "@platforms//os:ios", |
| "@apple_support//constraints:device", |
| ], |
| ) |