Files
MapLibreParticleLab/platform/ios/BUILD.bazel
Bart Louwers e4a4b9ec67 macOS Metal + AppKit app (#2205)
Co-authored-by: mwilsnd <mwilsnd@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-04-02 01:52:19 +02:00

347 lines
8.7 KiB
Python

load("@aspect_rules_js//js:defs.bzl", "js_library")
load("@build_bazel_rules_apple//apple:apple.bzl", "apple_static_xcframework", "apple_xcframework")
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application", "ios_framework")
load("@build_bazel_rules_apple//apple:resources.bzl", "apple_resource_bundle")
load("@build_bazel_rules_apple//apple:versioning.bzl", "apple_bundle_version")
load("@darwin_config//:config.bzl", "BUNDLE_ID_PREFIX")
load(
"@rules_xcodeproj//xcodeproj:defs.bzl",
"top_level_target",
"xcodeproj",
)
load(
"//platform/ios/bazel:files.bzl",
"MLN_IOS_PRIVATE_HEADERS",
"MLN_IOS_PUBLIC_HEADERS",
"MLN_IOS_PUBLIC_OBJCPP_METAL_SOURCE",
"MLN_IOS_PUBLIC_OBJCPP_OPENGL_SOURCE",
"MLN_IOS_PUBLIC_OBJCPP_SOURCE",
"MLN_IOS_PUBLIC_OBJC_SOURCE",
"MLN_IOS_SDK_HEADERS",
"MLN_PUBLIC_IOS_APP_SOPURCE",
)
load("//platform/ios/bazel:macros.bzl", "info_plist")
load("//platform/ios/bazel:provisioning.bzl", "configure_device_profiles")
configure_device_profiles()
filegroup(
name = "ios_sdk_hdrs",
srcs = MLN_IOS_SDK_HEADERS,
visibility = ["//visibility:public"],
)
filegroup(
name = "ios_public_hdrs",
srcs = MLN_IOS_PUBLIC_HEADERS,
visibility = ["//visibility:public"],
)
filegroup(
name = "ios_private_hdrs",
srcs = MLN_IOS_PRIVATE_HEADERS,
visibility = ["//visibility:public"],
)
filegroup(
name = "ios_objcpp_srcs",
srcs = MLN_IOS_PUBLIC_OBJCPP_SOURCE + select({
"//:metal_renderer": MLN_IOS_PUBLIC_OBJCPP_METAL_SOURCE,
"//conditions:default": MLN_IOS_PUBLIC_OBJCPP_OPENGL_SOURCE,
}),
visibility = ["//visibility:public"],
)
filegroup(
name = "ios_objc_srcs",
srcs = MLN_IOS_PUBLIC_OBJC_SOURCE,
visibility = ["//visibility:public"],
)
filegroup(
name = "ios_app_srcs",
srcs = MLN_PUBLIC_IOS_APP_SOPURCE,
visibility = ["//visibility:public"],
)
info_plist(
name = "info_plist",
out = "Info.plist",
base_info_plist = "framework/Info.plist",
)
info_plist(
name = "info_static_plist",
out = "Info-static.plist",
base_info_plist = "framework/Info-static.plist",
)
info_plist(
name = "info_app_plist",
out = "Info-app.plist",
base_info_plist = "app/Info.plist",
)
public_hdrs = [
":ios_public_hdrs",
":ios_sdk_hdrs",
"//platform/darwin:darwin_objc_hdrs",
"//platform/darwin:generated_style_public_hdrs",
]
apple_static_xcframework(
name = "MapLibre.static",
bundle_name = "MapLibre",
ios = {
"simulator": [
"x86_64",
"arm64",
],
"device": ["arm64"],
},
minimum_os_versions = {"ios": "12.0"},
public_hdrs = public_hdrs,
visibility = ["//visibility:public"],
deps = ["//platform:ios-sdk"],
)
apple_bundle_version(
name = "maplibre_ios_version",
build_label_pattern = "maplibre_ios_{version}",
build_version = "{version}",
capture_groups = {
"version": "[0-9]+.[0-9]+.[0-9]+",
},
fallback_build_label = "maplibre_ios_1.2.3456789",
short_version_string = "{version}",
)
apple_xcframework(
name = "MapLibre.dynamic",
bundle_id = "com.maplibre.mapbox",
bundle_name = "MapLibre",
data = glob([
"resources/*.lproj/**",
"resources/*.xcassets/**",
]),
infoplists = ["info_plist"],
ios = {
"simulator": [
"x86_64",
"arm64",
],
"device": ["arm64"],
},
minimum_os_versions = {"ios": "12.0"},
public_hdrs = public_hdrs,
version = ":maplibre_ios_version",
visibility = ["//visibility:public"],
deps = ["//platform:ios-sdk-dynamic"],
)
ios_framework(
name = "MapLibre.link",
testonly = True,
bundle_id = "com.maplibre.link",
families = ["iphone"],
infoplists = ["info_plist"],
linkopts = [""],
minimum_os_version = "12.0",
visibility = ["//visibility:public"],
deps = ["//platform:ios-sdk"],
)
apple_resource_bundle(
name = "resources",
bundle_id = "com.maplibre.mapbox",
bundle_name = "Mapbox",
infoplists = ["info_static_plist"],
resources = glob([
"resources/*.lproj/**",
"resources/*.xcassets/**",
]),
visibility = ["//visibility:public"],
)
_IOS_APPLICATION_RESOURCES = [
"app/numeric_filter_style.json",
"app/missing_icon.json",
"app/points.geojson",
"app/polyline.geojson",
"app/Settings.bundle",
"app/Main.storyboard",
"app/threestates.geojson",
"app/LaunchScreen.storyboard",
"app/simple_route.json",
"app/fill_filter_style.json",
"//platform/darwin:test/amsterdam.geojson",
] + glob([
"app/*.lproj/**",
"app/Assets.xcassets/**",
])
ios_application(
name = "App",
bundle_id = "{}.maplibre.app".format(BUNDLE_ID_PREFIX),
families = [
"iphone",
"ipad",
],
infoplists = ["info_app_plist"],
minimum_os_version = "12.0",
provisioning_profile = "xcode_profile",
resources = _IOS_APPLICATION_RESOURCES,
visibility = ["//visibility:public"],
deps = [
"//platform:iosapp",
],
)
ios_application(
name = "AppDynamicLib",
bundle_id = "org.maplibre.app",
families = [
"iphone",
"ipad",
],
frameworks = [
"MapLibre.link",
],
infoplists = ["app/Info.plist"],
minimum_os_version = "12.0",
provisioning_profile = ":xcode_profile",
resources = _IOS_APPLICATION_RESOURCES,
visibility = ["//visibility:public"],
deps = [
"//platform:iosapp",
],
)
ios_application(
name = "BenchmarkApp",
bundle_id = "{}.benchmark.app".format(BUNDLE_ID_PREFIX),
families = [
"iphone",
"ipad",
],
infoplists = ["//platform/ios/benchmark:info_benchmark_plist"],
minimum_os_version = "12.0",
provisioning_profile = "xcode_profile",
resources = ["//platform/ios/benchmark:bundle_resources"],
visibility = ["//visibility:public"],
deps = [
"//platform:ios-benchapp",
"//platform:ios-sdk",
],
)
filegroup(
name = "extra_files",
srcs = [
"BAZEL.md",
"MapLibre.podspec",
"README.md",
"RELEASE.md",
"VERSION",
],
visibility = ["@rules_xcodeproj//xcodeproj:generated"],
)
xcodeproj(
name = "xcodeproj",
bazel_env = {"PATH": "/bin:/usr/bin:/usr/local/bin:/opt/homebrew/bin"},
default_xcode_configuration = "Debug",
extra_files = [
":extra_files",
],
minimum_xcode_version = "14",
project_name = "MapLibre",
tags = ["manual"],
top_level_targets = [
top_level_target(
"App",
target_environments = [
"simulator",
"device",
],
),
top_level_target(
"BenchmarkApp",
target_environments = [
"simulator",
"device",
],
),
top_level_target(
"//render-test/ios:RenderTest",
target_environments = [
"simulator",
"device",
],
),
top_level_target(
"//platform/ios/iosapp-UITests:uitest",
target_environments = [
"simulator",
"device",
],
),
top_level_target(
"//platform/ios/test:ios_test",
target_environments = [
"simulator",
"device",
],
),
top_level_target(
"//platform/ios/test/core:CppUnitTests",
target_environments = [
"simulator",
"device",
],
),
],
xcode_configurations = {
"Debug": {"//command_line_option:compilation_mode": "dbg"},
"Release": {"//command_line_option:compilation_mode": "opt"},
},
)
sh_binary(
name = "lint-plists",
srcs = ["//platform/ios:scripts/lint-plists.sh"],
data = [
"Integration_Test_Harness/Info.plist",
"Integration_Tests/Info.plist",
"app/Info.plist",
"bench_UITests/Info.plist",
"framework/Info.plist",
"framework/Info-static.plist",
"//platform/ios/benchmark:Info.plist",
"//platform/ios/iosapp-UITests:Info.plist",
"//platform/ios/test:Info.plist",
],
)
exports_files(
MLN_IOS_PUBLIC_HEADERS +
MLN_IOS_PRIVATE_HEADERS +
MLN_IOS_PUBLIC_OBJCPP_SOURCE +
MLN_IOS_PUBLIC_OBJCPP_METAL_SOURCE +
MLN_IOS_PUBLIC_OBJCPP_OPENGL_SOURCE +
MLN_IOS_PUBLIC_OBJC_SOURCE +
MLN_PUBLIC_IOS_APP_SOPURCE,
)
js_library(
name = "symbols-to-check",
srcs = [
":ios_objc_srcs",
":ios_objcpp_srcs",
":ios_private_hdrs",
":ios_public_hdrs",
":ios_sdk_hdrs",
],
visibility = ["//platform:__pkg__"],
)