| # 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. |
| |
| # Complex mock BUILD file for aspect testing. |
| |
| load(":ComplexSingle.bzl", "test_macro") |
| |
| config_setting( |
| name = "config_test_enabled", |
| values = {"define": "TEST=1"}, |
| ) |
| |
| load( |
| "@build_bazel_rules_apple//apple:ios.bzl", |
| "apple_product_type", |
| "ios_application", |
| "ios_extension", |
| "ios_unit_test", |
| "ios_ui_test", |
| ) |
| load( |
| "@build_bazel_rules_apple//apple:tvos.bzl", |
| "tvos_application", |
| "tvos_extension", |
| ) |
| |
| ios_application( |
| name = "Application", |
| bundle_id = "example.iosapp", |
| entitlements = "Application/entitlements.entitlements", |
| extensions = [ |
| ":TodayExtension", |
| ], |
| families = [ |
| "iphone", |
| "ipad", |
| ], |
| infoplists = ["Application/Info.plist"], |
| minimum_os_version = "8.0", |
| deps = [ |
| ":ApplicationLibrary", |
| ":ApplicationResources", |
| ], |
| ) |
| |
| objc_library( |
| name = "ApplicationResources", |
| structured_resources = [ |
| "Application/structured_resources.file1", |
| "Application/structured_resources.file2", |
| ], |
| ) |
| |
| objc_library( |
| name = "ApplicationLibrary", |
| srcs = [ |
| "Application/srcs/main.m", |
| ":SrcGenerator", |
| ], |
| asset_catalogs = [ |
| "Application/AssetsOne.xcassets/test_file.ico", |
| "Application/AssetsOne.xcassets/another_file.ico", |
| "Application/AssetsTwo.xcassets/png_file.png", |
| ], |
| bundles = [":ObjCBundle"], |
| defines = [ |
| "A=BINARY_DEFINE", |
| ], |
| includes = [ |
| "Application/includes/first/include", |
| "Application/includes/second/include", |
| ], |
| non_arc_srcs = [ |
| "Application/non_arc_srcs/NonARCFile.mm", |
| ], |
| storyboards = [ |
| "Application/Base.lproj/One.storyboard", |
| ":StoryboardGenerator", |
| ], |
| strings = [ |
| "Application/Base.lproj/Localizable.strings", |
| "Application/Base.lproj/Localized.strings", |
| "Application/en.lproj/Localized.strings", |
| "Application/en.lproj/EN.strings", |
| "Application/es.lproj/Localized.strings", |
| "Application/NonLocalized.strings", |
| ], |
| deps = [ |
| ":CoreDataResources", |
| ":Library", |
| ":ObjCFramework", |
| ], |
| ) |
| |
| objc_bundle( |
| name = "ObjCBundle", |
| bundle_imports = [ |
| "ObjCBundle.bundle/FileOne.txt", |
| "ObjCBundle.bundle/FileTwo", |
| ], |
| ) |
| |
| objc_library( |
| name = "CoreDataResources", |
| datamodels = glob(["Test.xcdatamodeld/**"]), |
| ) |
| |
| objc_library( |
| name = "Library", |
| srcs = [ |
| "Library/srcs/SrcsHeader.h", |
| "Library/srcs/src5.mm", |
| ":LibrarySources", |
| ], |
| hdrs = [ |
| "Library/hdrs/HdrsHeader.h", |
| ], |
| copts = ["-DLIBRARY_COPT_DEFINE"], |
| defines = [ |
| "LIBRARY_DEFINES_DEFINE=1", |
| "'LIBRARY SECOND DEFINE'=2", |
| "LIBRARY_VALUE_WITH_SPACES=\"Value with spaces\"", |
| ], |
| pch = ":PCHGenerator", |
| xibs = ["Library/xib.xib"], |
| deps = [ |
| ":SubLibrary", |
| ":SubLibraryWithDefines", |
| ":SubLibraryWithDifferentDefines", |
| ], |
| ) |
| |
| objc_library( |
| name = "SubLibrary", |
| srcs = [ |
| "SubLibrary/srcs/src.mm", |
| ], |
| enable_modules = 1, |
| pch = "SubLibrary/pch/AnotherPCHFile.pch", |
| ) |
| |
| objc_library( |
| name = "SubLibraryWithDefines", |
| srcs = [ |
| "SubLibraryWithDefines/srcs/src.mm", |
| ], |
| copts = [ |
| "-menable-no-nans", |
| "-menable-no-infs", |
| "-I/SubLibraryWithDefines/local/includes", |
| "-Irelative/SubLibraryWithDefines/local/includes", |
| ], |
| defines = [ |
| "SubLibraryWithDefines=1", |
| "SubLibraryWithDefines_DEFINE=SubLibraryWithDefines", |
| ], |
| deps = ["SubLibraryWithIdenticalDefines"], |
| ) |
| |
| objc_library( |
| name = "SubLibraryWithIdenticalDefines", |
| srcs = [ |
| "SubLibraryWithIdenticalDefines/srcs/sub_library_with_identical_defines.m", |
| ], |
| copts = [ |
| "-menable-no-nans", |
| "-menable-no-infs", |
| "-I/SubLibraryWithDefines/local/includes", |
| "-Irelative/SubLibraryWithDefines/local/includes", |
| ], |
| defines = [ |
| "SubLibraryWithDefines=1", |
| "SubLibraryWithDefines_DEFINE=SubLibraryWithDefines", |
| ], |
| ) |
| |
| objc_library( |
| name = "SubLibraryWithDifferentDefines", |
| srcs = [ |
| "SubLibraryWithDifferentDefines/srcs/src.mm", |
| ], |
| copts = [ |
| "-DSubLibraryWithDifferentDefines_LocalDefine", |
| "-DSubLibraryWithDifferentDefines_INTEGER_DEFINE=1", |
| "-DSubLibraryWithDifferentDefines_STRING_DEFINE=Test", |
| "-DSubLibraryWithDifferentDefines_STRING_WITH_SPACES='String with spaces'", |
| "-D'SubLibraryWithDifferentDefines Define with spaces'", |
| "-D'SubLibraryWithDifferentDefines Define with spaces and value'=1", |
| ], |
| defines = [ |
| "SubLibraryWithDifferentDefines=1", |
| ], |
| includes = ["SubLibraryWithDifferentDefines/includes"], |
| ) |
| |
| objc_library( |
| name = "TestLibrary", |
| srcs = select({ |
| ":config_test_enabled": ["XCTest/srcs/configTestSource.m"], |
| "//conditions:default": ["XCTest/srcs/defaultTestSource.m"], |
| }), |
| ) |
| |
| ios_unit_test( |
| name = "XCTest", |
| minimum_os_version = "8.0", |
| test_host = ":Application", |
| deps = [ |
| ":Library", |
| ":TestLibrary", |
| ], |
| ) |
| |
| objc_framework( |
| name = "ObjCFramework", |
| framework_imports = [ |
| "ObjCFramework/test.framework/file1", |
| "ObjCFramework/test.framework/file2.txt", |
| "ObjCFramework/test.framework/file3.m", |
| "ObjCFramework/test.framework/file4.h", |
| ], |
| ) |
| |
| ios_extension( |
| name = "TodayExtension", |
| bundle_id = "example.iosapp.todayextension", |
| families = [ |
| "iphone", |
| "ipad", |
| ], |
| infoplists = [ |
| "TodayExtension/Plist1.plist", |
| ], |
| minimum_os_version = "8.0", |
| deps = [ |
| ":TodayExtensionLibrary", |
| ":TodayExtensionResources", |
| ], |
| ) |
| |
| objc_library( |
| name = "TodayExtensionLibrary", |
| srcs = [ |
| "TodayExtension/srcs/today_extension_library.m", |
| ], |
| ) |
| |
| objc_library( |
| name = "TodayExtensionResources", |
| resources = [ |
| "TodayExtension/resources/file1", |
| "TodayExtension/resources/file2.file", |
| ], |
| ) |
| |
| filegroup( |
| name = "LibrarySources", |
| srcs = [ |
| "LibrarySources/srcs/src1.m", |
| "LibrarySources/srcs/src2.m", |
| "LibrarySources/srcs/src3.m", |
| "LibrarySources/srcs/src4.m", |
| ], |
| ) |
| |
| genrule( |
| name = "PCHGenerator", |
| srcs = ["PCHGenerator/srcs/pch.h"], |
| outs = ["PCHGenerator/outs/PCHFile.pch"], |
| cmd = "cp $< $@", |
| ) |
| |
| genrule( |
| name = "SrcGenerator", |
| srcs = ["SrcGenerator/srcs/input.m"], |
| outs = ["SrcGenerator/outs/output.m"], |
| cmd = "cp $< $@", |
| ) |
| |
| genrule( |
| name = "StoryboardGenerator", |
| srcs = ["StoryboardGenerator/srcs/storyboard_input.file"], |
| outs = ["StoryboardGenerator/outs/Two.storyboard"], |
| cmd = "cp $< $@", |
| ) |
| |
| tvos_application( |
| name = "tvOSApplication", |
| bundle_id = "c.test.tvOSApplication", |
| extensions = [":tvOSExtension"], |
| infoplists = [ |
| "tvOSApplication/Info.plist", |
| ], |
| minimum_os_version = "10.0", |
| deps = [":tvOSLibrary"], |
| ) |
| |
| tvos_extension( |
| name = "tvOSExtension", |
| bundle_id = "c.test.tvOSExtension", |
| infoplists = [ |
| "tvOSExtension/Info.plist", |
| ], |
| minimum_os_version = "10.0", |
| deps = [":tvOSLibrary"], |
| ) |
| |
| objc_library( |
| name = "tvOSLibrary", |
| srcs = ["tvOSLibrary/srcs/src.m"], |
| enable_modules = 1, |
| ) |