Files
MapLibreParticleLab/platform/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

329 lines
8.4 KiB
Python

load("@aspect_rules_js//js:defs.bzl", "js_binary")
load("//bazel:flags.bzl", "CPP_FLAGS", "MAPLIBRE_FLAGS", "WARNING_FLAGS")
objc_library(
name = "macos-objcpp",
srcs = [
"//platform/darwin:darwin_objcpp_custom_drawable_srcs",
"//platform/darwin:darwin_objcpp_srcs",
"//platform/darwin:darwin_private_hdrs",
"//platform/darwin:generated_style_srcs",
"//platform/macos:macos_objcpp_srcs",
"//platform/macos:macos_private_hdrs",
"//platform/macos:macos_public_hdrs",
],
hdrs = [
"//platform/darwin:include/mbgl/util/image+MLNAdditions.hpp",
],
copts = CPP_FLAGS + MAPLIBRE_FLAGS + [
"-fcxx-modules",
"-fmodules",
"-Wno-vla-extension",
"-Wno-gnu-conditional-omitted-operand",
"-Wno-deprecated-declarations",
],
includes = [
"darwin/include",
"darwin/src",
"macos/src",
],
module_name = "MapLibre",
sdk_frameworks = [
"Metal",
"MetalKit",
"QuartzCore",
"CoreGraphics",
"CoreLocation",
"AppKit",
"SystemConfiguration",
],
visibility = ["//visibility:public"],
deps = [
"macos-objc",
"//:mbgl-core",
"//platform/darwin:darwin-generated-style-artifacts",
"//platform/darwin:darwin-objcpp",
"//platform/default:mbgl-default",
],
)
objc_library(
name = "macos-objc",
srcs = [
"//platform/darwin:darwin_objc_hdrs",
"//platform/darwin:darwin_objc_srcs",
"//platform/darwin:darwin_private_hdrs",
"//platform/macos:macos_objc_srcs",
"//platform/macos:macos_private_hdrs",
"//platform/macos:macos_public_hdrs",
],
copts = select({
"@platforms//os:ios": WARNING_FLAGS["ios"],
"@platforms//os:macos": WARNING_FLAGS["macos"],
}) + MAPLIBRE_FLAGS + [
"-fmodules",
"-Wno-deprecated-declarations",
],
includes = [
"darwin/include",
"darwin/src",
],
visibility = ["//visibility:public"],
deps = [
"//:mbgl-core",
"//platform/darwin:darwin-generated-style-artifacts",
"//platform/darwin:darwin-objc",
"//platform/default:mbgl-default",
],
)
# Objcpp files for the iOS source
objc_library(
name = "objcpp-sdk",
srcs = [
"//platform/darwin:darwin_objcpp_srcs",
"//platform/darwin:generated_style_srcs",
"//platform/ios:ios_objcpp_srcs",
"//platform/ios:ios_private_hdrs",
"//platform/ios:ios_public_hdrs",
"//platform/ios:ios_sdk_hdrs",
] + select({
"//:legacy_renderer": [],
"//conditions:default": [
"//platform/darwin:darwin_objcpp_custom_drawable_srcs",
],
}),
copts = CPP_FLAGS + MAPLIBRE_FLAGS + [
"-fcxx-modules",
"-fmodules",
"-Wno-c99-extensions",
"-Wno-gnu-zero-variadic-macro-arguments",
"-Wno-gnu-conditional-omitted-operand",
"-Wno-gnu-statement-expression",
"-Wno-deprecated-declarations",
],
defines = ["GLES_SILENCE_DEPRECATION=1"],
includes = [
"darwin/include",
],
sdk_frameworks = [
"CoreImage",
"CoreGraphics",
"CoreLocation",
"QuartzCore",
] + select({
"//:metal_renderer": [
"MetalKit",
],
"//conditions:default": [
"OpenGLES",
"GLKit",
],
}),
deps = [
":objc-headers",
"//:mbgl-core",
"//platform/darwin:darwin-generated-style-artifacts",
"//platform/darwin:darwin-objcpp",
"//platform/default:mbgl-default",
"//platform/ios/vendor:SMCalloutView",
],
)
# platform/ios/sdk-files.json
# Objc files for the iOS source
objc_library(
name = "objc-sdk",
srcs = [
"//platform/darwin:darwin_objc_srcs",
"//platform/ios:ios_objc_srcs",
"//platform/ios:ios_private_hdrs",
"//platform/ios:ios_public_hdrs",
"//platform/ios:ios_sdk_hdrs",
],
hdrs = [
"//platform/darwin:include/mbgl/util/image+MLNAdditions.hpp",
],
copts = select({
"@platforms//os:ios": WARNING_FLAGS["ios"],
"@platforms//os:macos": WARNING_FLAGS["macos"],
}) + MAPLIBRE_FLAGS + [
"-fmodules",
"-Wno-gnu-zero-variadic-macro-arguments",
"-Wno-variadic-macros",
"-Wno-gnu-conditional-omitted-operand",
"-Wno-deprecated-declarations",
],
includes = [
"darwin/include",
],
sdk_frameworks = [
"CoreGraphics",
"CoreLocation",
"QuartzCore",
],
deps = [
":objc-headers",
"//:mbgl-core",
"//platform/darwin:darwin-generated-style-artifacts",
"//platform/darwin:darwin-objc",
"//platform/default:mbgl-default",
"//platform/ios/vendor:SMCalloutView",
],
)
# Common headers between objc and objcpp libraries.
objc_library(
name = "objc-headers",
includes = [
"darwin/src",
"ios/src",
],
sdk_frameworks = [
"CoreGraphics",
"CoreLocation",
"QuartzCore",
],
deps = [
"//platform/darwin:darwin-objc",
"//platform/darwin:darwin-objcpp",
],
)
# sdk for the static target which includes the resources.
objc_library(
name = "ios-sdk",
hdrs = [
"//platform/darwin:darwin_objc_hdrs",
"//platform/darwin:generated_style_public_hdrs",
"//platform/ios:ios_sdk_hdrs",
] + select({
"//:metal_renderer": [],
"//conditions:default": [],
}),
data = ["//platform/ios:resources"],
module_name = "MapLibre",
sdk_dylibs = [
"libz",
"libsqlite3",
"libc++",
],
sdk_frameworks = [
"MobileCoreServices",
"Security",
"WebKit",
],
visibility = ["//visibility:public"],
deps = [
":objc-sdk",
":objcpp-sdk",
],
)
# sdk for the dynamic target. Lacking the resources bundle since for dynamic
# they are in the main package.
objc_library(
name = "ios-sdk-dynamic",
sdk_dylibs = [
"libz",
"libsqlite3",
"libc++",
],
sdk_frameworks = [
"MobileCoreServices",
"Security",
"WebKit",
],
visibility = ["//visibility:public"],
deps = [
":objc-sdk",
":objcpp-sdk",
],
)
objc_library(
name = "app_custom_drawable_layer_objcpp_srcs",
srcs = [
"//platform/darwin:app/ExampleCustomDrawableStyleLayer.h",
"//platform/darwin:app/ExampleCustomDrawableStyleLayer.mm",
],
copts = CPP_FLAGS + MAPLIBRE_FLAGS + WARNING_FLAGS["ios"] + [
"-fcxx-modules",
"-fmodules",
"-Wno-c99-extensions",
"-Wno-gnu-zero-variadic-macro-arguments",
"-Wno-gnu-conditional-omitted-operand",
"-Wno-gnu-statement-expression",
"-Wno-deprecated-declarations",
],
visibility = ["//visibility:public"],
deps = [
":ios-sdk",
"//:mbgl-core",
],
)
objc_library(
name = "iosapp",
srcs = [
"//platform/darwin:app/CustomStyleLayerExample.h",
"//platform/darwin:app/CustomStyleLayerExample.m",
"//platform/ios:ios_app_srcs",
],
defines = ["GLES_SILENCE_DEPRECATION"],
includes = [
"darwin/app",
"darwin/src",
],
sdk_frameworks = [
] + select({
"//:metal_renderer": [
"MetalKit",
],
"//conditions:default": [
"GLKit", # needed for CustomStyleLayerExample
],
}),
visibility = ["//visibility:public"],
deps = [
":ios-sdk",
] + select({
"//:legacy_renderer": [],
"//conditions:default": [
":app_custom_drawable_layer_objcpp_srcs",
],
}),
)
objc_library(
name = "ios-benchapp",
srcs = ["//platform/ios/benchmark:ios_benchmark_srcs"],
hdrs = ["//platform/ios/benchmark:ios_benchmark_hdrs"],
copts = CPP_FLAGS + MAPLIBRE_FLAGS,
includes = [
"darwin/app",
"darwin/src",
"ios/src",
],
visibility = ["//platform/ios:__pkg__"],
deps = [
":objc-headers",
"//:mbgl-core",
],
)
js_binary(
name = "check-public-symbols",
args = [
"macOS",
"iOS",
],
data = [
"//:node_modules/lodash",
"//platform/darwin:symbols-to-check",
"//platform/ios:symbols-to-check",
"//platform/macos:symbols-to-check",
],
entry_point = "scripts/check-public-symbols.js",
)