load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
load(
"@build_bazel_rules_apple//apple:resources.bzl",
"apple_resource_bundle",
"apple_resource_group",
)
load("//build-system/bazel-utils:plist_fragment.bzl",
"plist_fragment",
)
filegroup(
name = "LottieMeshSwiftMetalResources",
srcs = glob([
"Resources/**/*.metal",
]),
visibility = ["//visibility:public"],
)
plist_fragment(
name = "LottieMeshSwiftBundleInfoPlist",
extension = "plist",
template =
"""
CFBundleIdentifier
org.telegram.LottieMeshSwift
CFBundleDevelopmentRegion
en
CFBundleName
LottieMeshSwift
"""
)
apple_resource_bundle(
name = "LottieMeshSwiftBundle",
infoplists = [
":LottieMeshSwiftBundleInfoPlist",
],
resources = [
":LottieMeshSwiftMetalResources",
],
)
config_setting(
name = "debug_build",
values = {
"compilation_mode": "dbg",
},
)
optimization_flags = select({
":debug_build": [
"-O2",
],
"//conditions:default": [],
})
swift_optimization_flags = select({
":debug_build": [
#"-O",
],
"//conditions:default": [],
})
swift_library(
name = "LottieMeshSwift",
module_name = "LottieMeshSwift",
srcs = glob([
"Sources/**/*.swift",
]),
copts = [
"-warnings-as-errors",
] + swift_optimization_flags,
data = [
":LottieMeshSwiftBundle",
],
deps = [
":LottieMeshBinding",
"//submodules/Postbox:Postbox",
"//submodules/ManagedFile:ManagedFile",
],
visibility = [
"//visibility:public",
],
)
objc_library(
name = "LottieMeshBinding",
enable_modules = True,
module_name = "LottieMeshBinding",
srcs = glob([
"LottieMeshBinding/Sources/**/*.m",
"LottieMeshBinding/Sources/**/*.mm",
"LottieMeshBinding/Sources/**/*.h",
]),
copts = optimization_flags,
hdrs = glob([
"LottieMeshBinding/PublicHeaders/**/*.h",
]),
includes = [
"LottieMeshBinding/PublicHeaders",
],
deps = [
":LottieMesh",
],
sdk_frameworks = [
"Foundation",
],
visibility = [
"//visibility:public",
],
)
cc_library(
name = "LottieMesh",
srcs = glob([
"LottieMesh/Sources/**/*.cpp",
"LottieMesh/Sources/**/*.h",
"LottieMesh/Sources/**/*.hpp",
]),
copts = [
"-Isubmodules/LottieMeshSwift/libtess2/Include",
] + optimization_flags,
hdrs = glob([
"LottieMesh/PublicHeaders/**/*.h",
"LottieMesh/PublicHeaders/**/*.hpp",
]),
includes = [
"LottieMesh/PublicHeaders",
],
deps = [
":libtess2",
],
visibility = [
"//visibility:public",
],
)
cc_library(
name = "libtess2",
srcs = glob([
"libtess2/Sources/**/*.c",
"libtess2/Sources/**/*.h",
"libtess2/Include/**/*.h",
]),
copts = [
"-Isubmodules/LottieMeshSwift/libtess2/Include",
] + optimization_flags,
hdrs = glob([
"libtess2/Include/**/*.h",
]),
deps = [
],
visibility = [
"//visibility:public",
],
)