Index: ios/third_party/ochamcrest/BUILD.gn |
diff --git a/ios/third_party/ochamcrest/BUILD.gn b/ios/third_party/ochamcrest/BUILD.gn |
index 47f613594b040c2969f3280b041421c18abac4b2..402942789aa5e2ad7edc9d6b8fa6d814fc85059a 100644 |
--- a/ios/third_party/ochamcrest/BUILD.gn |
+++ b/ios/third_party/ochamcrest/BUILD.gn |
@@ -2,20 +2,11 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
-# OCHamcrest sources contains import rules using relative file names |
-# ("HCAssertThat.h") and other using paths in an installed framework |
-# (<OCHamcrest/HCMatcher.h>). In order to build, copy all the sources |
-# to <(SHARED_INTERMEDIATE_DIR)/ios/third_party/ochmacrest/OCHamcrest |
-# so that both type of import work (another option considered was to |
-# build forwarding headers but this required duplicating the list of |
-# files in GN build and was ruled out). |
-# |
-# To avoid ODR violation, direct import of ios/third_party/ochamcrest |
-# is forbidden in ios/DEPS and code should instead use import as if |
-# OCHamcrest was in a framework (i.e. #import <OCHamcrest/OCHamcrest.h>). |
-copy("ochamcrest_copy_files") { |
+import("//build/config/ios/rules.gni") |
+ |
+ios_framework_bundle("ochamcrest") { |
testonly = true |
- visibility = [ ":ochamcrest" ] |
+ output_name = "OCHamcrest" |
sources = [ |
"src/Source/Core/HCAssertThat.h", |
"src/Source/Core/HCAssertThat.m", |
@@ -170,27 +161,72 @@ copy("ochamcrest_copy_files") { |
"src/Source/Library/Text/HCSubstringMatcher.m", |
"src/Source/OCHamcrest.h", |
] |
- outputs = [ |
- "$root_gen_dir/ios/third_party/ochamcrest/OCHamcrest/{{source_file_part}}", |
+ public_headers = [ |
+ "src/Source/Core/HCAssertThat.h", |
+ "src/Source/Core/HCBaseDescription.h", |
+ "src/Source/Core/HCBaseMatcher.h", |
+ "src/Source/Core/HCDescription.h", |
+ "src/Source/Core/HCDiagnosingMatcher.h", |
+ "src/Source/Core/HCMatcher.h", |
+ "src/Source/Core/HCSelfDescribing.h", |
+ "src/Source/Core/HCStringDescription.h", |
+ "src/Source/Core/Helpers/HCCollect.h", |
+ "src/Source/Core/Helpers/HCInvocationMatcher.h", |
+ "src/Source/Core/Helpers/HCRequireNonNilObject.h", |
+ "src/Source/Core/Helpers/HCWrapInMatcher.h", |
+ "src/Source/Core/Helpers/TestFailureReporters/HCTestFailure.h", |
+ "src/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporter.h", |
+ "src/Source/Core/Helpers/TestFailureReporters/HCTestFailureReporterChain.h", |
+ "src/Source/Library/Collection/HCEvery.h", |
+ "src/Source/Library/Collection/HCHasCount.h", |
+ "src/Source/Library/Collection/HCIsCollectionContaining.h", |
+ "src/Source/Library/Collection/HCIsCollectionContainingInAnyOrder.h", |
+ "src/Source/Library/Collection/HCIsCollectionContainingInOrder.h", |
+ "src/Source/Library/Collection/HCIsCollectionContainingInRelativeOrder.h", |
+ "src/Source/Library/Collection/HCIsCollectionOnlyContaining.h", |
+ "src/Source/Library/Collection/HCIsDictionaryContaining.h", |
+ "src/Source/Library/Collection/HCIsDictionaryContainingEntries.h", |
+ "src/Source/Library/Collection/HCIsDictionaryContainingKey.h", |
+ "src/Source/Library/Collection/HCIsDictionaryContainingValue.h", |
+ "src/Source/Library/Collection/HCIsEmptyCollection.h", |
+ "src/Source/Library/Collection/HCIsIn.h", |
+ "src/Source/Library/Decorator/HCDescribedAs.h", |
+ "src/Source/Library/Decorator/HCIs.h", |
+ "src/Source/Library/Logical/HCAllOf.h", |
+ "src/Source/Library/Logical/HCAnyOf.h", |
+ "src/Source/Library/Logical/HCIsAnything.h", |
+ "src/Source/Library/Logical/HCIsNot.h", |
+ "src/Source/Library/Number/HCIsCloseTo.h", |
+ "src/Source/Library/Number/HCIsEqualToNumber.h", |
+ "src/Source/Library/Number/HCIsTrueFalse.h", |
+ "src/Source/Library/Number/HCNumberAssert.h", |
+ "src/Source/Library/Number/HCOrderingComparison.h", |
+ "src/Source/Library/Object/HCArgumentCaptor.h", |
+ "src/Source/Library/Object/HCClassMatcher.h", |
+ "src/Source/Library/Object/HCConformsToProtocol.h", |
+ "src/Source/Library/Object/HCHasDescription.h", |
+ "src/Source/Library/Object/HCHasProperty.h", |
+ "src/Source/Library/Object/HCIsEqual.h", |
+ "src/Source/Library/Object/HCIsInstanceOf.h", |
+ "src/Source/Library/Object/HCIsNil.h", |
+ "src/Source/Library/Object/HCIsSame.h", |
+ "src/Source/Library/Object/HCIsTypeOf.h", |
+ "src/Source/Library/Object/HCThrowsException.h", |
+ "src/Source/Library/Text/HCIsEqualIgnoringCase.h", |
+ "src/Source/Library/Text/HCIsEqualIgnoringWhiteSpace.h", |
+ "src/Source/Library/Text/HCStringContains.h", |
+ "src/Source/Library/Text/HCStringContainsInOrder.h", |
+ "src/Source/Library/Text/HCStringEndsWith.h", |
+ "src/Source/Library/Text/HCStringStartsWith.h", |
+ "src/Source/Library/Text/HCSubstringMatcher.h", |
+ "src/Source/OCHamcrest.h", |
] |
-} |
- |
-config("config") { |
- visibility = [ ":ochamcrest" ] |
- libs = [ "XCTest.framework" ] |
- include_dirs = [ "$root_gen_dir/ios/third_party/ochamcrest" ] |
-} |
-source_set("ochamcrest") { |
- testonly = true |
- configs += [ |
- ":config", |
- "//build/config/compiler:enable_arc", |
- "//build/config/compiler:no_chromium_code", |
+ libs = [ |
+ "Foundation.framework", |
+ "UIKit.framework", |
] |
- public_configs = [ ":config" ] |
- public_deps = [ |
- ":ochamcrest_copy_files", |
- ] |
- sources = get_target_outputs(":ochamcrest_copy_files") |
+ |
+ configs += [ "//build/config/compiler:enable_arc" ] |
+ configs -= [ "//build/config/gcc:symbol_visibility_hidden" ] |
} |