# Description:
#   Tulsi, an Xcode project generator for Bazel-bazed projects.

package(default_visibility = ["//:__subpackages__"])

licenses(["notice"])  # Apache 2.0

exports_files(["LICENSE"])

load(
    ":version.bzl",
    "fill_info_plist",
    "TULSI_VERSION_DATE",
    "TULSI_VERSION_MAJOR",
)
load("@build_bazel_rules_apple//apple:versioning.bzl", "apple_bundle_version")

fill_info_plist(
    name = "info_plist",
    out = "Info.plist",
    template = "//src/Tulsi:Info.plist",
)

apple_bundle_version(
    name = "AppVersion",
    build_label_pattern = "{project}_{date}_[A-Za-z]*{buildnum}",
    build_version = "%s.{date}.{buildnum}" % TULSI_VERSION_MAJOR,
    capture_groups = {
        "project": "[^_]*",
        "date": "\d+",
        "buildnum": "\d+",
    },
    fallback_build_label = "tulsi_%s_build88" % TULSI_VERSION_DATE,
)

genrule(
    name = "combine_strings",
    srcs = [
        "//src/Tulsi:en.lproj/Localizable.strings",
        "//src/TulsiGenerator:en.lproj/Localizable.strings",
    ],
    outs = [
        "en.lproj/Localizable.strings",
    ],
    cmd = (
        "cat $(location //src/Tulsi:en.lproj/Localizable.strings) > $(location en.lproj/Localizable.strings); " +
        "echo '\n\n' >> $(location en.lproj/Localizable.strings); " +
        "cat $(location //src/TulsiGenerator:en.lproj/Localizable.strings) >> $(location en.lproj/Localizable.strings); "
    ),
)

filegroup(
    name = "strings",
    srcs = [
        "en.lproj/Localizable.strings",
        "//src/TulsiGenerator:en.lproj/Options.strings",
    ],
)

load("@build_bazel_rules_apple//apple:macos.bzl", "macos_application")

macos_application(
    name = "tulsi",
    additional_contents = {
        "//src/tools/bazel_cache_reader": "MacOS",
    },
    app_icons = ["//src/Tulsi:Icon"],
    bundle_id = "com.google.Tulsi",
    bundle_name = "Tulsi",
    infoplists = [":Info.plist"],
    minimum_os_version = "10.13",
    strings = [":strings"],
    version = ":AppVersion",
    visibility = ["//visibility:public"],
    deps = [
        "//src/Tulsi:tulsi_lib",
    ],
)

test_suite(
    name = "tests",
    tests = [
        "//src/TulsiGeneratorIntegrationTests",
        "//src/TulsiGeneratorTests",
    ],
)

filegroup(
    name = "for_bazel_tests",
    testonly = 1,
    srcs = [
        "WORKSPACE",
        "@build_bazel_rules_apple//:for_bazel_tests",
    ],
)
