# Copyright 2016 The Tulsi Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# MacOS mock BUILD file for testing.

load(
    "@build_bazel_rules_apple//apple:macos.bzl",
    "macos_application",
    "macos_command_line_application",
    "macos_extension",
    "macos_unit_test",
    "macos_ui_test",
    "macos_bundle",
)
load("@build_bazel_rules_apple//apple:versioning.bzl", "apple_bundle_version")

macos_application(
    name = "MyMacOSApp",
    additional_contents = dict({
        "MyPlugin": "PlugIns",
    }.items()),
    app_icons = [":MacAppIcon.xcassets"],
    bundle_id = "com.example.mac-app",
    extensions = [
        ":MyTodayExtension",
    ],
    infoplists = [":Info.plist"],
    minimum_os_version = "10.13",
    version = ":MyAppVersion",
    deps = [":MyMacAppSources"],
)

apple_bundle_version(
    name = "MyAppVersion",
    build_version = "1.0",
)

filegroup(
    name = "MacAppIcon.xcassets",
    srcs = [
        "MacAppIcon.xcassets/MacAppIcon.appiconset/Contents.json",
        "MacAppIcon.xcassets/MacAppIcon.appiconset/MacAppIcon-16.png",
        "MacAppIcon.xcassets/MacAppIcon.appiconset/MacAppIcon-16@2x.png",
    ],
)

objc_library(
    name = "MyMacAppSources",
    srcs = [
        "src/AppDelegate.h",
        "src/AppDelegate.m",
        "src/main.m",
    ],
    resources = [
        "Resources/Main.storyboard",
    ],
)

macos_extension(
    name = "MyTodayExtension",
    bundle_id = "com.example.mac-app.today-extension",
    entitlements = ":MyTodayExtension-Entitlements.entitlements",
    infoplists = [":MyTodayExtension-Info.plist"],
    minimum_os_version = "10.13",
    version = ":MyTodayExtensionVersion",
    deps = [":MyTodayExtensionSources"],
)

macos_bundle(
    name = "MyPlugin",
    bundle_extension = "bundle",
    bundle_id = "com.example.mac-app.plugin",
    bundle_name = "MyPlugin",
    infoplists = [":MyPlugin_Info.plist"],
    minimum_os_version = "10.13",
    version = ":MyPlugInVersion",
    deps = [
        ":MyPluginSources",
    ],
)

apple_bundle_version(
    name = "MyTodayExtensionVersion",
    build_version = "1.0",
)

apple_bundle_version(
    name = "MyPlugInVersion",
    build_version = "1.0",
)

objc_library(
    name = "MyTodayExtensionSources",
    srcs = [
        "src/extensions/today/ExtSources/TodayViewController.m",
        "src/extensions/today/TodayViewController.h",
    ],
    resources = [
        "Resources/extensions/today/TodayViewController.xib",
    ],
    sdk_frameworks = [
        "NotificationCenter",
    ],
)

objc_library(
    name = "MyPluginSources",
    srcs = [
        "src/plugin/PluginViewController.h",
        "src/plugin/PluginViewController.m",
    ],
    resources = [
        "Resources/plugin/PluginViewController.xib",
    ],
    sdk_frameworks = [
        "NotificationCenter",
    ],
)

macos_command_line_application(
    name = "MyCommandLineApp",
    bundle_id = "com.example.command-line",
    infoplists = [":MyCommandLineApp-Info.plist"],
    minimum_os_version = "10.13",
    version = ":CommandLineVersion",
    deps = [":MyCommandLineAppSource"],
)

objc_library(
    name = "MyCommandLineAppSource",
    srcs = ["src/main.m"],
)

apple_bundle_version(
    name = "CommandLineVersion",
    build_version = "1.0",
)

# Test targets

objc_library(
    name = "UnitTestsLib",
    srcs = ["test/UnitTests.m"],
)

objc_library(
    name = "UnitTestsNoHostLib",
    srcs = ["test/UnitTestsNoHost.m"],
)

objc_library(
    name = "UITestsLib",
    srcs = ["test/UITests.m"],
)

macos_unit_test(
    name = "UnitTests",
    minimum_os_version = "10.13",
    test_host = ":MyMacOSApp",
    deps = [":UnitTestsLib"],
)

macos_unit_test(
    name = "UnitTestsNoHost",
    bundle_id = "com.tulsi.tests",
    minimum_os_version = "10.13",
    deps = [":UnitTestsNoHostLib"],
)

macos_ui_test(
    name = "UITests",
    minimum_os_version = "10.13",
    test_host = ":MyMacOSApp",
    deps = [":UITestsLib"],
)
