Selaa lähdekoodia

Move to use xcconfig files

Marcin Krzyżanowski 7 vuotta sitten
vanhempi
commit
f31e833623

+ 65 - 283
CryptoSwift.xcodeproj/project.pbxproj

@@ -25,6 +25,18 @@
 		757DA2531A4ED0A4002BA3EF /* PaddingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757DA2521A4ED0A4002BA3EF /* PaddingTests.swift */; };
 		757DA2551A4ED408002BA3EF /* AESTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757DA2541A4ED408002BA3EF /* AESTests.swift */; };
 		757DA2591A4ED4D7002BA3EF /* ChaCha20Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757DA2581A4ED4D7002BA3EF /* ChaCha20Tests.swift */; };
+		75843EA72072457A0050583A /* Tests-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843E9B2072457A0050583A /* Tests-Release.xcconfig */; };
+		75843EA82072457A0050583A /* Tests-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843E9C2072457A0050583A /* Tests-Debug.xcconfig */; };
+		75843EA92072457A0050583A /* Project-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843E9D2072457A0050583A /* Project-Release.xcconfig */; };
+		75843EAA2072457A0050583A /* Project-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843E9E2072457A0050583A /* Project-Shared.xcconfig */; };
+		75843EAB2072457A0050583A /* CryptoSwift-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843E9F2072457A0050583A /* CryptoSwift-Shared.xcconfig */; };
+		75843EAC2072457A0050583A /* CryptoSwift-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA02072457A0050583A /* CryptoSwift-Release.xcconfig */; };
+		75843EAD2072457A0050583A /* Tests-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA12072457A0050583A /* Tests-Shared.xcconfig */; };
+		75843EAE2072457A0050583A /* Tests-Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA22072457A0050583A /* Tests-Test.xcconfig */; };
+		75843EAF2072457A0050583A /* CryptoSwift-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA32072457A0050583A /* CryptoSwift-Debug.xcconfig */; };
+		75843EB02072457A0050583A /* Project-Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA42072457A0050583A /* Project-Test.xcconfig */; };
+		75843EB12072457A0050583A /* Project-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA52072457A0050583A /* Project-Debug.xcconfig */; };
+		75843EB22072457A0050583A /* CryptoSwift-Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA62072457A0050583A /* CryptoSwift-Test.xcconfig */; };
 		758A94281A65C59200E46135 /* HMACTests.swift in Resources */ = {isa = PBXBuildFile; fileRef = 758A94271A65C59200E46135 /* HMACTests.swift */; };
 		758A94291A65C67400E46135 /* HMACTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 758A94271A65C59200E46135 /* HMACTests.swift */; };
 		75B601EB197D6A6C0009B53D /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 754BE45519693E190098E6F3 /* CryptoSwift.framework */; };
@@ -183,6 +195,18 @@
 		757DA2521A4ED0A4002BA3EF /* PaddingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PaddingTests.swift; sourceTree = "<group>"; };
 		757DA2541A4ED408002BA3EF /* AESTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AESTests.swift; sourceTree = "<group>"; };
 		757DA2581A4ED4D7002BA3EF /* ChaCha20Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChaCha20Tests.swift; sourceTree = "<group>"; };
+		75843E9B2072457A0050583A /* Tests-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Release.xcconfig"; sourceTree = "<group>"; };
+		75843E9C2072457A0050583A /* Tests-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Debug.xcconfig"; sourceTree = "<group>"; };
+		75843E9D2072457A0050583A /* Project-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Release.xcconfig"; sourceTree = "<group>"; };
+		75843E9E2072457A0050583A /* Project-Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Shared.xcconfig"; sourceTree = "<group>"; };
+		75843E9F2072457A0050583A /* CryptoSwift-Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Shared.xcconfig"; sourceTree = "<group>"; };
+		75843EA02072457A0050583A /* CryptoSwift-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Release.xcconfig"; sourceTree = "<group>"; };
+		75843EA12072457A0050583A /* Tests-Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Shared.xcconfig"; sourceTree = "<group>"; };
+		75843EA22072457A0050583A /* Tests-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Test.xcconfig"; sourceTree = "<group>"; };
+		75843EA32072457A0050583A /* CryptoSwift-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Debug.xcconfig"; sourceTree = "<group>"; };
+		75843EA42072457A0050583A /* Project-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Test.xcconfig"; sourceTree = "<group>"; };
+		75843EA52072457A0050583A /* Project-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Debug.xcconfig"; sourceTree = "<group>"; };
+		75843EA62072457A0050583A /* CryptoSwift-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Test.xcconfig"; sourceTree = "<group>"; };
 		758A94271A65C59200E46135 /* HMACTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMACTests.swift; sourceTree = "<group>"; };
 		75C2E76C1D55F097003D2BCA /* Access.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Access.swift; sourceTree = "<group>"; };
 		75EC52381EE8B6CA0048EB3B /* AES.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AES.swift; sourceTree = "<group>"; };
@@ -290,6 +314,7 @@
 		754BE44B19693E190098E6F3 = {
 			isa = PBXGroup;
 			children = (
+				75843E9A2072457A0050583A /* config */,
 				755D27BC1D06DE6400C41692 /* CryptoSwift.playground */,
 				75EC52361EE8B6CA0048EB3B /* Sources */,
 				754BE46419693E190098E6F3 /* Tests */,
@@ -342,6 +367,25 @@
 			name = "Supporting Files";
 			sourceTree = "<group>";
 		};
+		75843E9A2072457A0050583A /* config */ = {
+			isa = PBXGroup;
+			children = (
+				75843E9B2072457A0050583A /* Tests-Release.xcconfig */,
+				75843E9C2072457A0050583A /* Tests-Debug.xcconfig */,
+				75843E9D2072457A0050583A /* Project-Release.xcconfig */,
+				75843E9E2072457A0050583A /* Project-Shared.xcconfig */,
+				75843E9F2072457A0050583A /* CryptoSwift-Shared.xcconfig */,
+				75843EA02072457A0050583A /* CryptoSwift-Release.xcconfig */,
+				75843EA12072457A0050583A /* Tests-Shared.xcconfig */,
+				75843EA22072457A0050583A /* Tests-Test.xcconfig */,
+				75843EA32072457A0050583A /* CryptoSwift-Debug.xcconfig */,
+				75843EA42072457A0050583A /* Project-Test.xcconfig */,
+				75843EA52072457A0050583A /* Project-Debug.xcconfig */,
+				75843EA62072457A0050583A /* CryptoSwift-Test.xcconfig */,
+			);
+			path = config;
+			sourceTree = "<group>";
+		};
 		75EC52361EE8B6CA0048EB3B /* Sources */ = {
 			isa = PBXGroup;
 			children = (
@@ -549,6 +593,18 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				75843EB02072457A0050583A /* Project-Test.xcconfig in Resources */,
+				75843EA82072457A0050583A /* Tests-Debug.xcconfig in Resources */,
+				75843EAA2072457A0050583A /* Project-Shared.xcconfig in Resources */,
+				75843EB12072457A0050583A /* Project-Debug.xcconfig in Resources */,
+				75843EAE2072457A0050583A /* Tests-Test.xcconfig in Resources */,
+				75843EAF2072457A0050583A /* CryptoSwift-Debug.xcconfig in Resources */,
+				75843EA72072457A0050583A /* Tests-Release.xcconfig in Resources */,
+				75843EAD2072457A0050583A /* Tests-Shared.xcconfig in Resources */,
+				75843EAB2072457A0050583A /* CryptoSwift-Shared.xcconfig in Resources */,
+				75843EA92072457A0050583A /* Project-Release.xcconfig in Resources */,
+				75843EAC2072457A0050583A /* CryptoSwift-Release.xcconfig in Resources */,
+				75843EB22072457A0050583A /* CryptoSwift-Test.xcconfig in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -703,338 +759,64 @@
 /* Begin XCBuildConfiguration section */
 		754BE46919693E190098E6F3 /* Debug */ = {
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75843EA52072457A0050583A /* Project-Debug.xcconfig */;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_COMMA = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
-				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
-				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
-				CLANG_WARN_STRICT_PROTOTYPES = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				CODE_SIGNING_REQUIRED = NO;
-				COPY_PHASE_STRIP = NO;
-				CURRENT_PROJECT_VERSION = 1;
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				DEFINES_MODULE = YES;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_TESTABILITY = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
-					"$(inherited)",
-				);
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_LABEL = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				INFOPLIST_FILE = Sources/CryptoSwift/Info.plist;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				MACOSX_DEPLOYMENT_TARGET = 10.9;
-				METAL_ENABLE_DEBUG_INFO = YES;
-				ONLY_ACTIVE_ARCH = YES;
-				PRODUCT_NAME = CryptoSwift;
-				SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx appletvos watchos appletvsimulator watchsimulator";
-				SWIFT_COMPILATION_MODE = wholemodule;
-				SWIFT_VERSION = 4.0;
-				TARGETED_DEVICE_FAMILY = "1,2,3,4";
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-				VERSIONING_SYSTEM = "apple-generic";
-				VERSION_INFO_PREFIX = "";
-				WATCHOS_DEPLOYMENT_TARGET = 2.0;
 			};
 			name = Debug;
 		};
 		754BE46A19693E190098E6F3 /* Release */ = {
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75843E9D2072457A0050583A /* Project-Release.xcconfig */;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_USE_OPTIMIZATION_PROFILE = YES;
-				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_COMMA = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
-				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
-				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
-				CLANG_WARN_STRICT_PROTOTYPES = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				CODE_SIGNING_REQUIRED = NO;
-				COPY_PHASE_STRIP = YES;
-				CURRENT_PROJECT_VERSION = 1;
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				DEFINES_MODULE = YES;
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_OPTIMIZATION_LEVEL = fast;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_LABEL = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				INFOPLIST_FILE = Sources/CryptoSwift/Info.plist;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				MACOSX_DEPLOYMENT_TARGET = 10.9;
-				METAL_ENABLE_DEBUG_INFO = NO;
-				PRODUCT_NAME = CryptoSwift;
-				SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx appletvos watchos appletvsimulator watchsimulator";
-				SWIFT_COMPILATION_MODE = wholemodule;
-				SWIFT_VERSION = 4.0;
-				TARGETED_DEVICE_FAMILY = "1,2,3,4";
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-				VALIDATE_PRODUCT = YES;
-				VERSIONING_SYSTEM = "apple-generic";
-				VERSION_INFO_PREFIX = "";
-				WATCHOS_DEPLOYMENT_TARGET = 2.0;
 			};
 			name = Release;
 		};
 		754BE46C19693E190098E6F3 /* Debug */ = {
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75843EA32072457A0050583A /* CryptoSwift-Debug.xcconfig */;
 			buildSettings = {
-				APPLICATION_EXTENSION_API_ONLY = YES;
-				CLANG_ENABLE_MODULES = YES;
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				ENABLE_BITCODE = YES;
-				"ENABLE_BITCODE[sdk=macosx*]" = NO;
-				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
-				OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies";
-				PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.CryptoSwift;
-				PRODUCT_NAME = CryptoSwift;
-				SKIP_INSTALL = YES;
-				SWIFT_COMPILATION_MODE = wholemodule;
-				SWIFT_ENFORCE_EXCLUSIVE_ACCESS = none;
-				SWIFT_VERSION = 4.0;
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-				WATCHOS_DEPLOYMENT_TARGET = 2.0;
 			};
 			name = Debug;
 		};
 		754BE46D19693E190098E6F3 /* Release */ = {
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75843EA02072457A0050583A /* CryptoSwift-Release.xcconfig */;
 			buildSettings = {
-				APPLICATION_EXTENSION_API_ONLY = YES;
-				BITCODE_GENERATION_MODE = bitcode;
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_USE_OPTIMIZATION_PROFILE = NO;
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				ENABLE_BITCODE = YES;
-				"ENABLE_BITCODE[sdk=macosx*]" = NO;
-				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
-				GCC_UNROLL_LOOPS = YES;
-				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
-				LLVM_LTO = YES;
-				PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.CryptoSwift;
-				PRODUCT_NAME = CryptoSwift;
-				SKIP_INSTALL = YES;
-				SWIFT_DISABLE_SAFETY_CHECKS = YES;
-				SWIFT_ENFORCE_EXCLUSIVE_ACCESS = "compile-time";
-				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
-				SWIFT_VERSION = 4.0;
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-				WATCHOS_DEPLOYMENT_TARGET = 2.0;
 			};
 			name = Release;
 		};
 		754BE46F19693E190098E6F3 /* Debug */ = {
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75843E9C2072457A0050583A /* Tests-Debug.xcconfig */;
 			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					"includes/**",
-				);
-				INFOPLIST_FILE = Tests/CryptoSwiftTests/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks @loader_path/../Frameworks @executable_path/../Frameworks";
-				LLVM_LTO = NO;
-				METAL_ENABLE_DEBUG_INFO = YES;
-				PRODUCT_BUNDLE_IDENTIFIER = "com.hakore.${PRODUCT_NAME:rfc1034identifier}";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_OBJC_BRIDGING_HEADER = Tests/CryptoSwiftTests/Bridging.h;
 			};
 			name = Debug;
 		};
 		754BE47019693E190098E6F3 /* Release */ = {
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75843E9B2072457A0050583A /* Tests-Release.xcconfig */;
 			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
-				GCC_OPTIMIZATION_LEVEL = fast;
-				GCC_UNROLL_LOOPS = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					"includes/**",
-				);
-				INFOPLIST_FILE = Tests/CryptoSwiftTests/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks @loader_path/../Frameworks @executable_path/../Frameworks";
-				LLVM_LTO = YES;
-				METAL_ENABLE_DEBUG_INFO = NO;
-				PRODUCT_BUNDLE_IDENTIFIER = "com.hakore.${PRODUCT_NAME:rfc1034identifier}";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_DISABLE_SAFETY_CHECKS = YES;
-				SWIFT_OBJC_BRIDGING_HEADER = Tests/CryptoSwiftTests/Bridging.h;
-				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
 			};
 			name = Release;
 		};
 		756B66AA1F6AAFDB00DEC41C /* Test */ = {
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75843EA42072457A0050583A /* Project-Test.xcconfig */;
 			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_COMMA = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
-				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
-				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
-				CLANG_WARN_STRICT_PROTOTYPES = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				CODE_SIGNING_REQUIRED = NO;
-				COPY_PHASE_STRIP = NO;
-				CURRENT_PROJECT_VERSION = 1;
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				DEFINES_MODULE = YES;
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_TESTABILITY = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_OPTIMIZATION_LEVEL = fast;
-				GCC_PREPROCESSOR_DEFINITIONS = "CI=1";
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_LABEL = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				INFOPLIST_FILE = Sources/CryptoSwift/Info.plist;
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				MACOSX_DEPLOYMENT_TARGET = 10.9;
-				METAL_ENABLE_DEBUG_INFO = NO;
-				ONLY_ACTIVE_ARCH = YES;
-				PRODUCT_NAME = CryptoSwift;
-				SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx appletvos watchos appletvsimulator watchsimulator";
-				SWIFT_COMPILATION_MODE = wholemodule;
-				SWIFT_VERSION = 4.0;
-				TARGETED_DEVICE_FAMILY = "1,2,3,4";
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-				VALIDATE_PRODUCT = YES;
-				VERSIONING_SYSTEM = "apple-generic";
-				VERSION_INFO_PREFIX = "";
-				WATCHOS_DEPLOYMENT_TARGET = 2.0;
 			};
 			name = Test;
 		};
 		756B66AB1F6AAFDB00DEC41C /* Test */ = {
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75843EA62072457A0050583A /* CryptoSwift-Test.xcconfig */;
 			buildSettings = {
-				APPLICATION_EXTENSION_API_ONLY = YES;
-				BITCODE_GENERATION_MODE = bitcode;
-				CLANG_ENABLE_MODULES = YES;
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				ENABLE_BITCODE = YES;
-				"ENABLE_BITCODE[sdk=macosx*]" = NO;
-				GCC_UNROLL_LOOPS = YES;
-				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
-				LLVM_LTO = YES;
-				OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies";
-				PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.CryptoSwift;
-				PRODUCT_NAME = CryptoSwift;
-				SKIP_INSTALL = YES;
-				SWIFT_DISABLE_SAFETY_CHECKS = YES;
-				SWIFT_ENFORCE_EXCLUSIVE_ACCESS = "compile-time";
-				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
-				SWIFT_VERSION = 4.0;
-				TVOS_DEPLOYMENT_TARGET = 9.0;
-				WATCHOS_DEPLOYMENT_TARGET = 2.0;
 			};
 			name = Test;
 		};
 		756B66AC1F6AAFDB00DEC41C /* Test */ = {
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75843EA22072457A0050583A /* Tests-Test.xcconfig */;
 			buildSettings = {
-				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
-				GCC_OPTIMIZATION_LEVEL = fast;
-				GCC_UNROLL_LOOPS = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					"includes/**",
-				);
-				INFOPLIST_FILE = Tests/CryptoSwiftTests/Info.plist;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks @loader_path/../Frameworks @executable_path/../Frameworks";
-				LLVM_LTO = YES;
-				METAL_ENABLE_DEBUG_INFO = NO;
-				PRODUCT_BUNDLE_IDENTIFIER = "com.hakore.${PRODUCT_NAME:rfc1034identifier}";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SWIFT_DISABLE_SAFETY_CHECKS = YES;
-				SWIFT_OBJC_BRIDGING_HEADER = Tests/CryptoSwiftTests/Bridging.h;
-				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
 			};
 			name = Test;
 		};

+ 27 - 0
config/CryptoSwift-Debug.xcconfig

@@ -0,0 +1,27 @@
+//
+// CryptoSwift-Debug.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "CryptoSwift-Shared.xcconfig"
+
+
+// Other Swift Flags
+// 
+// A list of additional flags to pass to the Swift compiler.
+
+OTHER_SWIFT_FLAGS = -Xfrontend -debug-time-function-bodies
+
+
+
+SWIFT_COMPILATION_MODE = wholemodule
+
+
+
+// Exclusive Access to Memory
+// 
+// Enforce exclusive access to memory
+
+SWIFT_ENFORCE_EXCLUSIVE_ACCESS = none

+ 82 - 0
config/CryptoSwift-Release.xcconfig

@@ -0,0 +1,82 @@
+//
+// CryptoSwift-Release.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "CryptoSwift-Shared.xcconfig"
+
+
+BITCODE_GENERATION_MODE = bitcode
+
+
+
+// Use Optimization Profile
+// 
+// When this setting is enabled, `clang` will use the optimization profile collected for
+// a target when building it.
+
+CLANG_USE_OPTIMIZATION_PROFILE = NO
+
+
+
+// Generate Debug Symbols
+// 
+// Enables or disables generation of debug symbols. When debug symbols are enabled, the
+// level of detail can be controlled by the `DEBUG_INFORMATION_FORMAT` setting.
+
+GCC_GENERATE_DEBUGGING_SYMBOLS = NO
+
+
+
+// Unroll Loops
+// 
+// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
+// number of branches executed.
+
+GCC_UNROLL_LOOPS = YES
+
+
+
+// Link-Time Optimization
+// 
+// Enabling this setting allows optimization across file boundaries during linking.
+// 
+// * *No:* Disabled. Do not use link-time optimization.
+// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
+// optimization of binaries, combining all executable code into a single unit and running
+// aggressive compiler optimizations.
+// * *Incremental Link-Time Optimization:* This mode performs partitioned link-time
+// optimization of binaries, inlining between compilation units and running aggressive
+// compiler optimizations on each unit in parallel. This enables fast incremental builds
+// and uses less memory than Monolithic LTO.
+
+LLVM_LTO = YES
+
+
+
+// Disable Safety Checks
+// 
+// Disable runtime safety checks when optimizing.
+
+SWIFT_DISABLE_SAFETY_CHECKS = YES
+
+
+
+// Exclusive Access to Memory
+// 
+// Enforce exclusive access to memory
+
+SWIFT_ENFORCE_EXCLUSIVE_ACCESS = compile-time
+
+
+
+// Swift Optimization Level
+// 
+// * *None:* Compile without any optimization. [-Onone]
+// * *Optimize for Speed:* [-O]
+// * *Optimize for Size:* [-Osize]
+// * *Whole Module Optimization:* [-O -whole-module-optimization]
+
+SWIFT_OPTIMIZATION_LEVEL = -Owholemodule

+ 155 - 0
config/CryptoSwift-Shared.xcconfig

@@ -0,0 +1,155 @@
+//
+// CryptoSwift-Shared.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+
+// Require Only App-Extension-Safe API
+// 
+// When enabled, this causes the compiler and linker to disallow use of APIs that are not
+// available to app extensions and to disallow linking to frameworks that have not been
+// built with this setting enabled.
+
+APPLICATION_EXTENSION_API_ONLY = YES
+
+
+
+// Enable Modules (C and Objective-C)
+// 
+// Enables the use of modules for system APIs. System headers are imported as semantic
+// modules instead of raw headers. This can result in faster builds and project indexing.
+
+CLANG_ENABLE_MODULES = YES
+
+
+
+// Compatibility Version
+// 
+// Determines the compatibility version of the resulting library, bundle, or framework
+// binary. See [Dynamic Library Design
+// Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19)
+// in [Dynamic Library Programming
+// Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html)
+// for details on assigning version numbers of dynamic libraries.
+
+DYLIB_COMPATIBILITY_VERSION = 1
+
+
+
+// Current Library Version
+// 
+// This setting defines the current version of any framework built by the project. As
+// with `CURRENT_PROJECT_VERSION`, the value must be an integer or floating point number,
+// such as `57` or `365.8`. By default, it is set to `$(CURRENT_PROJECT_VERSION)`. See
+// [Dynamic Library Design
+// Guidelines](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW19)
+// in [Dynamic Library Programming
+// Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html)
+// for details on assigning version numbers of dynamic libraries.
+
+DYLIB_CURRENT_VERSION = 1
+
+
+
+// Dynamic Library Install Name Base
+// 
+// Sets the base value for the internal `install path` (`LC_ID_DYLIB`) in a dynamic
+// library. This will be combined with the `EXECUTABLE_PATH` to form the full install
+// path. Setting `LD_DYLIB_INSTALL_NAME` directly will override this setting. This
+// setting defaults to the target's `INSTALL_PATH`. It is ignored when building any
+// product other than a dynamic library.
+
+DYLIB_INSTALL_NAME_BASE = @rpath
+
+
+
+// Enable Bitcode
+// 
+// Activating this setting indicates that the target or project should generate bitcode
+// during compilation for platforms and architectures that support it. For Archive
+// builds, bitcode will be generated in the linked binary for submission to the App
+// Store. For other builds, the compiler and linker will check whether the code complies
+// with the requirements for bitcode generation, but will not generate actual bitcode.
+
+ENABLE_BITCODE = YES
+
+
+
+// Enable Bitcode
+// 
+// Activating this setting indicates that the target or project should generate bitcode
+// during compilation for platforms and architectures that support it. For Archive
+// builds, bitcode will be generated in the linked binary for submission to the App
+// Store. For other builds, the compiler and linker will check whether the code complies
+// with the requirements for bitcode generation, but will not generate actual bitcode.
+
+ENABLE_BITCODE[sdk=macosx*] = NO
+
+
+
+// Installation Directory
+// 
+// The directory in which to install the build products. This path is prepended by the
+// `DSTROOT`.
+
+INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks
+
+
+
+IPHONEOS_DEPLOYMENT_TARGET = 8.0
+
+
+
+// Runpath Search Paths
+// 
+// This is a list of paths to be added to the `runpath` search path list for the image
+// being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose
+// load path begins with `@rpath/`. See [Dynamic Library Programming
+// Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).
+
+LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks
+
+
+
+// Product Bundle Identifier
+// 
+// A string that uniquely identifies the bundle. The string should be in reverse DNS
+// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and
+// the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
+// of the built bundle.
+
+PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.CryptoSwift
+
+
+
+// Product Name
+// 
+// This is the basename of the product generated by the target.
+
+PRODUCT_NAME = CryptoSwift
+
+
+
+// Skip Install
+// 
+// If enabled, don't install built products even if deployment locations are active.
+
+SKIP_INSTALL = YES
+
+
+
+// Swift Language Version
+// 
+// 
+
+SWIFT_VERSION = 4.0
+
+
+
+TVOS_DEPLOYMENT_TARGET = 9.0
+
+
+
+WATCHOS_DEPLOYMENT_TARGET = 2.0

+ 72 - 0
config/CryptoSwift-Test.xcconfig

@@ -0,0 +1,72 @@
+//
+// CryptoSwift-Test.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "CryptoSwift-Shared.xcconfig"
+
+
+BITCODE_GENERATION_MODE = bitcode
+
+
+
+// Unroll Loops
+// 
+// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
+// number of branches executed.
+
+GCC_UNROLL_LOOPS = YES
+
+
+
+// Link-Time Optimization
+// 
+// Enabling this setting allows optimization across file boundaries during linking.
+// 
+// * *No:* Disabled. Do not use link-time optimization.
+// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
+// optimization of binaries, combining all executable code into a single unit and running
+// aggressive compiler optimizations.
+// * *Incremental Link-Time Optimization:* This mode performs partitioned link-time
+// optimization of binaries, inlining between compilation units and running aggressive
+// compiler optimizations on each unit in parallel. This enables fast incremental builds
+// and uses less memory than Monolithic LTO.
+
+LLVM_LTO = YES
+
+
+
+// Other Swift Flags
+// 
+// A list of additional flags to pass to the Swift compiler.
+
+OTHER_SWIFT_FLAGS = -Xfrontend -debug-time-function-bodies
+
+
+
+// Disable Safety Checks
+// 
+// Disable runtime safety checks when optimizing.
+
+SWIFT_DISABLE_SAFETY_CHECKS = YES
+
+
+
+// Exclusive Access to Memory
+// 
+// Enforce exclusive access to memory
+
+SWIFT_ENFORCE_EXCLUSIVE_ACCESS = compile-time
+
+
+
+// Swift Optimization Level
+// 
+// * *None:* Compile without any optimization. [-Onone]
+// * *Optimize for Speed:* [-O]
+// * *Optimize for Size:* [-Osize]
+// * *Whole Module Optimization:* [-O -whole-module-optimization]
+
+SWIFT_OPTIMIZATION_LEVEL = -Owholemodule

+ 57 - 0
config/Project-Debug.xcconfig

@@ -0,0 +1,57 @@
+//
+// Project-Debug.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "Project-Shared.xcconfig"
+
+
+// Strip Debug Symbols During Copy
+// 
+// Specifies whether binary files that are copied during the build, such as in a Copy
+// Bundle Resources or Copy Files build phase, should be stripped of debugging symbols.
+// It does not cause the linked product of a target to be stripped—use
+// `STRIP_INSTALLED_PRODUCT` for that.
+
+COPY_PHASE_STRIP = NO
+
+
+
+// Enable Testability
+// 
+// When this setting is activated, the product will be built with options appropriate for
+// running automated tests, such as making private interfaces accessible to the tests.
+// This may result in tests running slower than they would without testability enabled.
+
+ENABLE_TESTABILITY = YES
+
+
+
+// Generate Position-Dependent Code
+// 
+// Faster function calls for applications. Not appropriate for shared libraries, which
+// need to be position-independent.
+
+GCC_DYNAMIC_NO_PIC = NO
+
+
+
+// Preprocessor Macros
+// 
+// Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.
+
+GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 $(inherited)
+
+
+
+METAL_ENABLE_DEBUG_INFO = YES
+
+
+
+// Build Active Architecture Only
+// 
+// If enabled, only the active architecture is built.
+
+ONLY_ACTIVE_ARCH = YES

+ 85 - 0
config/Project-Release.xcconfig

@@ -0,0 +1,85 @@
+//
+// Project-Release.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "Project-Shared.xcconfig"
+
+
+// Use Optimization Profile
+// 
+// When this setting is enabled, `clang` will use the optimization profile collected for
+// a target when building it.
+
+CLANG_USE_OPTIMIZATION_PROFILE = YES
+
+
+
+// Strip Debug Symbols During Copy
+// 
+// Specifies whether binary files that are copied during the build, such as in a Copy
+// Bundle Resources or Copy Files build phase, should be stripped of debugging symbols.
+// It does not cause the linked product of a target to be stripped—use
+// `STRIP_INSTALLED_PRODUCT` for that.
+
+COPY_PHASE_STRIP = YES
+
+
+
+// Enable Foundation Assertions
+// 
+// Controls whether assertion logic provided by `NSAssert` is included in the
+// preprocessed source code or is elided during preprocessing. Disabling assertions can
+// improve code performance.
+
+ENABLE_NS_ASSERTIONS = NO
+
+
+
+// Optimization Level
+// 
+// Specifies the degree to which the generated code is optimized for speed and binary
+// size.
+// 
+// * *None:* Do not optimize. [-O0]
+// With this setting, the compiler's goal is to reduce the cost of compilation and to
+// make debugging produce the expected results. Statements are independent—if you stop
+// the program with a breakpoint between statements, you can then assign a new value to
+// any variable or change the program counter to any other statement in the function and
+// get exactly the results you would expect from the source code.
+// * *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a
+// large function. [-O1]
+// With this setting, the compiler tries to reduce code size and execution time,
+// without performing any optimizations that take a great deal of compilation time. In
+// Apple's compiler, strict aliasing, block reordering, and inter-block scheduling are
+// disabled by default when optimizing.
+// * *Faster:* The compiler performs nearly all supported optimizations that do not
+// involve a space-speed tradeoff. [-O2]
+// With this setting, the compiler does not perform loop unrolling or function
+// inlining, or register renaming. As compared to the `Fast` setting, this setting
+// increases both compilation time and the performance of the generated code.
+// * *Fastest:* Turns on all optimizations specified by the `Faster` setting and also
+// turns on function inlining and register renaming options. This setting may result in a
+// larger binary. [-O3]
+// * *Fastest, Smallest:* Optimize for size. This setting enables all `Faster`
+// optimizations that do not typically increase code size. It also performs further
+// optimizations designed to reduce code size. [-Os]
+// * *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables
+// aggressive optimizations that may break strict standards compliance but should work
+// well on well-behaved code. [-Ofast]
+
+GCC_OPTIMIZATION_LEVEL = fast
+
+
+
+METAL_ENABLE_DEBUG_INFO = NO
+
+
+
+// Validate Built Product
+// 
+// If enabled, perform validation checks on the product as part of the build process.
+
+VALIDATE_PRODUCT = YES

+ 500 - 0
config/Project-Shared.xcconfig

@@ -0,0 +1,500 @@
+//
+// Project-Shared.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+
+// Always Search User Paths (Deprecated)
+// 
+// This setting is deprecated as of Xcode 8.3 and may not be supported in future
+// versions. It is recommended that you disable the setting.
+// 
+// If enabled, both `#include <header.h>`-style and `#include "header.h"`-style
+// directives search the paths in `USER_HEADER_SEARCH_PATHS` before
+// `HEADER_SEARCH_PATHS`. As a consequence, user headers, such as your own `String.h`
+// header, have precedence over system headers when using `#include <header.h>`. This is
+// done using the `-iquote` flag for the paths provided in `USER_HEADER_SEARCH_PATHS`. If
+// disabled and your compiler fully supports separate user paths, user headers are only
+// accessible with `#include "header.h"`-style preprocessor directives.
+// 
+// For backwards compatibility reasons, this setting is enabled by default. Disabling it
+// is strongly recommended.
+
+ALWAYS_SEARCH_USER_PATHS = NO
+
+
+
+// C++ Language Dialect
+// 
+// Choose a standard or non-standard C++ language dialect. Options include:
+// 
+// * *C++98:* Accept ISO C++ 1998 with amendments, but not GNU extensions. [-std=c++98]
+// * *GNU++98:* Accept ISO C++ 1998 with amendments and GNU extensions. [-std=gnu++98]
+// * *C++11:* Accept the ISO C++ 2011 standard with amendments, but not GNU extensions.
+// [-std=c++11]
+// * *GNU++11:* Accept the ISO C++ 2011 standard with amendments and GNU extensions.
+// [-std=gnu++11]
+// * *C++14:* Accept the ISO C++ 2014 standard with amendments, but not GNU extensions.
+// [-std=c++14]
+// * *GNU++14:* Accept the ISO C++ 2014 standard with amendments and GNU extensions.
+// [-std=gnu++14]
+// * *C++17:* Accept the ISO C++ 2017 standard with amendments, but not GNU extensions.
+// [-std=c++17]
+// * *GNU++17:* Accept the ISO C++ 2017 standard with amendments and GNU extensions.
+// [-std=gnu++17]
+// * *Compiler Default:* Tells the compiler to use its default C++ language dialect. This
+// is normally the best choice unless you have specific needs. (Currently equivalent to
+// GNU++98.)
+
+CLANG_CXX_LANGUAGE_STANDARD = gnu++0x
+
+
+
+// C++ Standard Library
+// 
+// Choose a version of the C++ standard library to use.
+// 
+// * *libstdc++:* A traditional C++ standard library that works with GCC and the LLVM
+// Compiler (default).
+// * *libc++:* A highly optimized C++ standard library that works only with the LLVM
+// Compiler, and is designed to support new C++11 features.
+
+CLANG_CXX_LIBRARY = libc++
+
+
+
+// Enable Modules (C and Objective-C)
+// 
+// Enables the use of modules for system APIs. System headers are imported as semantic
+// modules instead of raw headers. This can result in faster builds and project indexing.
+
+CLANG_ENABLE_MODULES = YES
+
+
+
+// Objective-C Automatic Reference Counting
+// 
+// Compiles reference-counted Objective-C code (when garbage collection is not enabled)
+// to use Automatic Reference Counting. Code compiled using automated reference counting
+// is compatible with other code (such as frameworks) compiled using either manual
+// reference counting (for example, traditional `retain` and `release` messages) or
+// automated reference counting. Using this mode is currently incompatible with compiling
+// code to use Objective-C Garbage Collection.
+
+CLANG_ENABLE_OBJC_ARC = YES
+
+
+
+// Duplicate Method Definitions
+// 
+// Warn about declaring the same method more than once within the same `@interface`.
+
+CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
+
+
+
+// Block Capture of Autoreleasing
+// 
+// Warn about block captures of implicitly autoreleasing parameters.
+
+CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
+
+
+
+// Implicit Boolean Conversions
+// 
+// Warn about implicit conversions to boolean values that are suspicious. For example,
+// writing `if (foo)` where `foo` is the name a function will trigger a warning.
+
+CLANG_WARN_BOOL_CONVERSION = YES
+
+
+
+// Suspicious Commas
+// 
+// Warn about suspicious uses of the comma operator.
+
+CLANG_WARN_COMMA = YES
+
+
+
+// Implicit Constant Conversions
+// 
+// Warn about implicit conversions of constant values that cause the constant value to
+// change, either through a loss of precision, or entirely in its meaning.
+
+CLANG_WARN_CONSTANT_CONVERSION = YES
+
+
+
+// Overriding Deprecated Objective-C Methods
+// 
+// Warn if an Objective-C class either subclasses a deprecated class or overrides a
+// method that has been marked deprecated or unavailable.
+
+CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
+
+
+
+// Direct usage of 'isa'
+// 
+// Warn about direct accesses to the Objective-C `isa` pointer instead of using a runtime
+// API.
+
+CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
+
+
+
+// Empty Loop Bodies
+// 
+// Warn about loop bodies that are suspiciously empty.
+
+CLANG_WARN_EMPTY_BODY = YES
+
+
+
+// Implicit Enum Conversions
+// 
+// Warn about implicit conversions between different kinds of enum values. For example,
+// this can catch issues when using the wrong enum flag as an argument to a function or
+// method.
+
+CLANG_WARN_ENUM_CONVERSION = YES
+
+
+
+// Infinite Recursion
+// 
+// Warn if all paths through a function call itself.
+
+CLANG_WARN_INFINITE_RECURSION = YES
+
+
+
+// Implicit Integer to Pointer Conversions
+// 
+// Warn about implicit conversions between pointers and integers. For example, this can
+// catch issues when one incorrectly intermixes using `NSNumber*`'s and raw integers.
+
+CLANG_WARN_INT_CONVERSION = YES
+
+
+
+// Implicit Non-Literal Null Conversions
+// 
+// Warn about non-literal expressions that evaluate to zero being treated as a null
+// pointer.
+
+CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES
+
+
+
+// Implicit retain of 'self' within blocks
+// 
+// Warn about implicit retains of `self` within blocks, which can create a retain-cycle.
+
+CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
+
+
+
+// Implicit Objective-C Literal Conversions
+// 
+// Warn about implicit conversions from Objective-C literals to values of incompatible
+// type.
+
+CLANG_WARN_OBJC_LITERAL_CONVERSION = YES
+
+
+
+// Unintentional Root Class
+// 
+// Warn about classes that unintentionally do not subclass a root class, such as
+// `NSObject`.
+
+CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
+
+
+
+// Range-based For Loops
+// 
+// Warn about ranged-based for loops.
+
+CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
+
+
+
+// Strict Prototypes
+// 
+// Warn about non-prototype declarations.
+
+CLANG_WARN_STRICT_PROTOTYPES = YES
+
+
+
+// Suspicious Moves
+// 
+// Warn about suspicious uses of `std::move`.
+
+CLANG_WARN_SUSPICIOUS_MOVE = YES
+
+
+
+// Unreachable Code
+// 
+// Warns about potentially unreachable code.
+
+CLANG_WARN_UNREACHABLE_CODE = YES
+
+
+
+CODE_SIGNING_REQUIRED = NO
+
+
+
+// Current Project Version
+// 
+// This setting defines the current version of the project. The value must be a integer
+// or floating point number, such as `57` or `365.8`.
+
+CURRENT_PROJECT_VERSION = 1
+
+
+
+// Debug Information Format
+// 
+// The type of debug information to produce.
+// 
+// * *DWARF:* Object files and linked products will use DWARF as the debug information
+// format. [dwarf]
+// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
+// information format, and Xcode will also produce a dSYM file containing the debug
+// information from the individual object files (except that a dSYM file is not needed
+// and will not be created for static library or object file products). [dwarf-with-dsym]
+
+DEBUG_INFORMATION_FORMAT = dwarf
+
+
+
+// Defines Module
+// 
+// If enabled, the product will be treated as defining its own module. This enables
+// automatic production of LLVM module map files when appropriate, and allows the product
+// to be imported as a module.
+
+DEFINES_MODULE = YES
+
+
+
+// Enable Strict Checking of objc_msgSend Calls
+// 
+// Controls whether `objc_msgSend` calls must be cast to the appropriate function pointer
+// type before being called.
+
+ENABLE_STRICT_OBJC_MSGSEND = YES
+
+
+
+// C Language Dialect
+// 
+// Choose a standard or non-standard C language dialect.
+// 
+// * *ANSI C:* Accept ISO C90 and ISO C++, turning off GNU extensions that are
+// incompatible. [-ansi]
+// Incompatible GNU extensions include the `asm`, `inline`, and `typeof` keywords (but
+// not the equivalent `\_\_asm\_\_`, `\_\_inline\_\_`, and `\_\_typeof\_\_` forms), and
+// the `//` syntax for comments.
+// This setting also enables trigraphs.
+// * *C89:* Accept ISO C90 (1990), but not GNU extensions. [-std=c89]
+// * *GNU89:* Accept ISO C90 and GNU extensions. [-std=gnu89]
+// * *C99:* Accept ISO C99 (1999), but not GNU extensions. [-std=c99]
+// * *GNU99:* Accept ISO C99 and GNU extensions. [-std=gnu99]
+// * *C11:* Accept ISO C11 (2011), but not GNU extensions. [-std=c11]
+// * *GNU11:* Accept ISO C11 and GNU extensions. [-std=gnu11]
+// * *Compiler Default:* Tells the compiler to use its default C language dialect. This
+// is normally the best choice unless you have specific needs. (Currently equivalent to
+// GNU99.)
+
+GCC_C_LANGUAGE_STANDARD = gnu99
+
+
+
+// No Common Blocks
+// 
+// In C, allocate even uninitialized global variables in the data section of the object
+// file, rather than generating them as common blocks. This has the effect that if the
+// same variable is declared (without `extern`) in two different compilations, you will
+// get an error when you link them.
+
+GCC_NO_COMMON_BLOCKS = YES
+
+
+
+// Implicit Conversion to 32 Bit Type
+// 
+// Warn if a value is implicitly converted from a 64-bit type to a 32-bit type. This is a
+// subset of the warnings provided by -Wconversion.
+
+GCC_WARN_64_TO_32_BIT_CONVERSION = YES
+
+
+
+// Mismatched Return Type
+// 
+// Causes warnings to be emitted when a function with a defined return type (not `void`)
+// contains a return statement without a return-value. Also emits a warning when a
+// function is defined without specifying a return type.
+
+GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
+
+
+
+// Undeclared Selector
+// 
+// Warn if a `@selector(...)` expression referring to an undeclared selector is found. A
+// selector is considered undeclared if no method with that name has been declared before
+// the `@selector(...)` expression, either explicitly in an `@interface` or `@protocol`
+// declaration, or implicitly in an `@implementation` section. This option always
+// performs its checks as soon as a `@selector(...)` expression is found, while
+// `-Wselector` only performs its checks in the final stage of compilation. This also
+// enforces the coding style convention that methods and selectors must be declared
+// before being used.
+
+GCC_WARN_UNDECLARED_SELECTOR = YES
+
+
+
+// Uninitialized Variables
+// 
+// Warn if a variable might be clobbered by a `setjmp` call or if an automatic variable
+// is used without prior initialization.
+// 
+// The compiler may not detect all cases where an automatic variable is initialized or
+// all usage patterns that may lead to use prior to initialization. You can toggle
+// between the normal uninitialized value checking or the more aggressive (conservative)
+// checking, which finds more issues but the checking is much stricter.
+
+GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
+
+
+
+// Unused Functions
+// 
+// Warn whenever a static function is declared but not defined or a noninline static
+// function is unused.
+
+GCC_WARN_UNUSED_FUNCTION = YES
+
+
+
+// Unused Labels
+// 
+// Warn whenever a label is declared but not used.
+
+GCC_WARN_UNUSED_LABEL = YES
+
+
+
+// Unused Variables
+// 
+// Warn whenever a local variable or nonconstant static variable is unused aside from its
+// declaration.
+
+GCC_WARN_UNUSED_VARIABLE = YES
+
+
+
+// Info.plist File
+// 
+// The project-relative path to the property list file that contains the `Info.plist`
+// information used by bundles. For details on information property list files, see
+// [Information Property List
+// Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH)
+// in [Runtime Configuration
+// Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).
+
+INFOPLIST_FILE = Sources/CryptoSwift/Info.plist
+
+
+
+IPHONEOS_DEPLOYMENT_TARGET = 8.0
+
+
+
+// macOS Deployment Target
+// 
+// Code will load on this and later versions of macOS. Framework APIs that are
+// unavailable in earlier versions will be weak-linked; your code should check for `null`
+// function pointers or specific system versions before calling newer APIs.
+
+MACOSX_DEPLOYMENT_TARGET = 10.9
+
+
+
+// Product Name
+// 
+// This is the basename of the product generated by the target.
+
+PRODUCT_NAME = CryptoSwift
+
+
+
+// Supported Platforms
+// 
+// The list of supported platforms from which a base SDK can be used. This setting is
+// used if the product can be built for multiple platforms using different SDKs.
+
+SUPPORTED_PLATFORMS = iphonesimulator iphoneos macosx appletvos watchos appletvsimulator watchsimulator
+
+
+
+SWIFT_COMPILATION_MODE = wholemodule
+
+
+
+// Swift Language Version
+// 
+// 
+
+SWIFT_VERSION = 4.0
+
+
+
+// Targeted Device Family
+// 
+// The build system uses the selected device to set the correct value for the
+// `UIDeviceFamily` key it adds to the target's `Info.plist` file. This also drives the
+// --target-device flag to actool, which determines the idioms selected during catalog
+// compilation for iOS platforms.
+
+TARGETED_DEVICE_FAMILY = 1,2,3,4
+
+
+
+TVOS_DEPLOYMENT_TARGET = 9.0
+
+
+
+// Versioning Name Prefix
+// 
+// Used as a prefix for the name of the version info symbol in the generated versioning
+// source file. If you prefix your exported symbols you will probably want to set this to
+// the same prefix.
+
+VERSION_INFO_PREFIX = 
+
+
+
+// Versioning System
+// 
+// Selects the process used for version-stamping generated files.
+// 
+// * *None:* Use no versioning system.
+// * *Apple Generic:* Use the current project version setting. [apple-generic]
+
+VERSIONING_SYSTEM = apple-generic
+
+
+
+WATCHOS_DEPLOYMENT_TARGET = 2.0

+ 102 - 0
config/Project-Test.xcconfig

@@ -0,0 +1,102 @@
+//
+// Project-Test.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "Project-Shared.xcconfig"
+
+
+// Strip Debug Symbols During Copy
+// 
+// Specifies whether binary files that are copied during the build, such as in a Copy
+// Bundle Resources or Copy Files build phase, should be stripped of debugging symbols.
+// It does not cause the linked product of a target to be stripped—use
+// `STRIP_INSTALLED_PRODUCT` for that.
+
+COPY_PHASE_STRIP = NO
+
+
+
+// Enable Foundation Assertions
+// 
+// Controls whether assertion logic provided by `NSAssert` is included in the
+// preprocessed source code or is elided during preprocessing. Disabling assertions can
+// improve code performance.
+
+ENABLE_NS_ASSERTIONS = NO
+
+
+
+// Enable Testability
+// 
+// When this setting is activated, the product will be built with options appropriate for
+// running automated tests, such as making private interfaces accessible to the tests.
+// This may result in tests running slower than they would without testability enabled.
+
+ENABLE_TESTABILITY = YES
+
+
+
+// Optimization Level
+// 
+// Specifies the degree to which the generated code is optimized for speed and binary
+// size.
+// 
+// * *None:* Do not optimize. [-O0]
+// With this setting, the compiler's goal is to reduce the cost of compilation and to
+// make debugging produce the expected results. Statements are independent—if you stop
+// the program with a breakpoint between statements, you can then assign a new value to
+// any variable or change the program counter to any other statement in the function and
+// get exactly the results you would expect from the source code.
+// * *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a
+// large function. [-O1]
+// With this setting, the compiler tries to reduce code size and execution time,
+// without performing any optimizations that take a great deal of compilation time. In
+// Apple's compiler, strict aliasing, block reordering, and inter-block scheduling are
+// disabled by default when optimizing.
+// * *Faster:* The compiler performs nearly all supported optimizations that do not
+// involve a space-speed tradeoff. [-O2]
+// With this setting, the compiler does not perform loop unrolling or function
+// inlining, or register renaming. As compared to the `Fast` setting, this setting
+// increases both compilation time and the performance of the generated code.
+// * *Fastest:* Turns on all optimizations specified by the `Faster` setting and also
+// turns on function inlining and register renaming options. This setting may result in a
+// larger binary. [-O3]
+// * *Fastest, Smallest:* Optimize for size. This setting enables all `Faster`
+// optimizations that do not typically increase code size. It also performs further
+// optimizations designed to reduce code size. [-Os]
+// * *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables
+// aggressive optimizations that may break strict standards compliance but should work
+// well on well-behaved code. [-Ofast]
+
+GCC_OPTIMIZATION_LEVEL = fast
+
+
+
+// Preprocessor Macros
+// 
+// Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.
+
+GCC_PREPROCESSOR_DEFINITIONS = CI=1
+
+
+
+METAL_ENABLE_DEBUG_INFO = NO
+
+
+
+// Build Active Architecture Only
+// 
+// If enabled, only the active architecture is built.
+
+ONLY_ACTIVE_ARCH = YES
+
+
+
+// Validate Built Product
+// 
+// If enabled, perform validation checks on the product as part of the build process.
+
+VALIDATE_PRODUCT = YES

+ 28 - 0
config/Tests-Debug.xcconfig

@@ -0,0 +1,28 @@
+//
+// Tests-Debug.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "Tests-Shared.xcconfig"
+
+
+// Link-Time Optimization
+// 
+// Enabling this setting allows optimization across file boundaries during linking.
+// 
+// * *No:* Disabled. Do not use link-time optimization.
+// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
+// optimization of binaries, combining all executable code into a single unit and running
+// aggressive compiler optimizations.
+// * *Incremental Link-Time Optimization:* This mode performs partitioned link-time
+// optimization of binaries, inlining between compilation units and running aggressive
+// compiler optimizations on each unit in parallel. This enables fast incremental builds
+// and uses less memory than Monolithic LTO.
+
+LLVM_LTO = NO
+
+
+
+METAL_ENABLE_DEBUG_INFO = YES

+ 92 - 0
config/Tests-Release.xcconfig

@@ -0,0 +1,92 @@
+//
+// Tests-Release.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "Tests-Shared.xcconfig"
+
+
+// Optimization Level
+// 
+// Specifies the degree to which the generated code is optimized for speed and binary
+// size.
+// 
+// * *None:* Do not optimize. [-O0]
+// With this setting, the compiler's goal is to reduce the cost of compilation and to
+// make debugging produce the expected results. Statements are independent—if you stop
+// the program with a breakpoint between statements, you can then assign a new value to
+// any variable or change the program counter to any other statement in the function and
+// get exactly the results you would expect from the source code.
+// * *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a
+// large function. [-O1]
+// With this setting, the compiler tries to reduce code size and execution time,
+// without performing any optimizations that take a great deal of compilation time. In
+// Apple's compiler, strict aliasing, block reordering, and inter-block scheduling are
+// disabled by default when optimizing.
+// * *Faster:* The compiler performs nearly all supported optimizations that do not
+// involve a space-speed tradeoff. [-O2]
+// With this setting, the compiler does not perform loop unrolling or function
+// inlining, or register renaming. As compared to the `Fast` setting, this setting
+// increases both compilation time and the performance of the generated code.
+// * *Fastest:* Turns on all optimizations specified by the `Faster` setting and also
+// turns on function inlining and register renaming options. This setting may result in a
+// larger binary. [-O3]
+// * *Fastest, Smallest:* Optimize for size. This setting enables all `Faster`
+// optimizations that do not typically increase code size. It also performs further
+// optimizations designed to reduce code size. [-Os]
+// * *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables
+// aggressive optimizations that may break strict standards compliance but should work
+// well on well-behaved code. [-Ofast]
+
+GCC_OPTIMIZATION_LEVEL = fast
+
+
+
+// Unroll Loops
+// 
+// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
+// number of branches executed.
+
+GCC_UNROLL_LOOPS = YES
+
+
+
+// Link-Time Optimization
+// 
+// Enabling this setting allows optimization across file boundaries during linking.
+// 
+// * *No:* Disabled. Do not use link-time optimization.
+// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
+// optimization of binaries, combining all executable code into a single unit and running
+// aggressive compiler optimizations.
+// * *Incremental Link-Time Optimization:* This mode performs partitioned link-time
+// optimization of binaries, inlining between compilation units and running aggressive
+// compiler optimizations on each unit in parallel. This enables fast incremental builds
+// and uses less memory than Monolithic LTO.
+
+LLVM_LTO = YES
+
+
+
+METAL_ENABLE_DEBUG_INFO = NO
+
+
+
+// Disable Safety Checks
+// 
+// Disable runtime safety checks when optimizing.
+
+SWIFT_DISABLE_SAFETY_CHECKS = YES
+
+
+
+// Swift Optimization Level
+// 
+// * *None:* Compile without any optimization. [-Onone]
+// * *Optimize for Speed:* [-O]
+// * *Optimize for Size:* [-Osize]
+// * *Whole Module Optimization:* [-O -whole-module-optimization]
+
+SWIFT_OPTIMIZATION_LEVEL = -Owholemodule

+ 78 - 0
config/Tests-Shared.xcconfig

@@ -0,0 +1,78 @@
+//
+// Tests-Shared.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+
+// Always Embed Swift Standard Libraries
+// 
+// Always embed the Swift standard libraries in the target's products, even if the target
+// does not contain any Swift code.  For example, this should be enabled if the target is
+// embedding other products which contain Swift, or if it is a test target which does not
+// contain Swift but which is testing a product which does.  This setting only applies to
+// wrapped products, not to standalone binary products.
+
+ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
+
+
+
+// Header Search Paths
+// 
+// This is a list of paths to folders to be searched by the compiler for included or
+// imported header files when compiling C, Objective-C, C++, or Objective-C++. Paths are
+// delimited by whitespace, so any paths with spaces in them need to be properly quoted.
+
+HEADER_SEARCH_PATHS = $(inherited) includes/**
+
+
+
+// Info.plist File
+// 
+// The project-relative path to the property list file that contains the `Info.plist`
+// information used by bundles. For details on information property list files, see
+// [Information Property List
+// Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH)
+// in [Runtime Configuration
+// Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).
+
+INFOPLIST_FILE = Tests/CryptoSwiftTests/Info.plist
+
+
+
+// Runpath Search Paths
+// 
+// This is a list of paths to be added to the `runpath` search path list for the image
+// being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose
+// load path begins with `@rpath/`. See [Dynamic Library Programming
+// Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).
+
+LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks @loader_path/../Frameworks @executable_path/../Frameworks
+
+
+
+// Product Bundle Identifier
+// 
+// A string that uniquely identifies the bundle. The string should be in reverse DNS
+// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and
+// the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
+// of the built bundle.
+
+PRODUCT_BUNDLE_IDENTIFIER = com.hakore.${PRODUCT_NAME:rfc1034identifier}
+
+
+
+// Product Name
+// 
+// This is the basename of the product generated by the target.
+
+PRODUCT_NAME = $(TARGET_NAME)
+
+
+
+// Objective-C Bridging Header
+// 
+// Path to the header defining the Objective-C interfaces to be exposed in Swift.
+
+SWIFT_OBJC_BRIDGING_HEADER = Tests/CryptoSwiftTests/Bridging.h

+ 92 - 0
config/Tests-Test.xcconfig

@@ -0,0 +1,92 @@
+//
+// Tests-Test.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "Tests-Shared.xcconfig"
+
+
+// Optimization Level
+// 
+// Specifies the degree to which the generated code is optimized for speed and binary
+// size.
+// 
+// * *None:* Do not optimize. [-O0]
+// With this setting, the compiler's goal is to reduce the cost of compilation and to
+// make debugging produce the expected results. Statements are independent—if you stop
+// the program with a breakpoint between statements, you can then assign a new value to
+// any variable or change the program counter to any other statement in the function and
+// get exactly the results you would expect from the source code.
+// * *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a
+// large function. [-O1]
+// With this setting, the compiler tries to reduce code size and execution time,
+// without performing any optimizations that take a great deal of compilation time. In
+// Apple's compiler, strict aliasing, block reordering, and inter-block scheduling are
+// disabled by default when optimizing.
+// * *Faster:* The compiler performs nearly all supported optimizations that do not
+// involve a space-speed tradeoff. [-O2]
+// With this setting, the compiler does not perform loop unrolling or function
+// inlining, or register renaming. As compared to the `Fast` setting, this setting
+// increases both compilation time and the performance of the generated code.
+// * *Fastest:* Turns on all optimizations specified by the `Faster` setting and also
+// turns on function inlining and register renaming options. This setting may result in a
+// larger binary. [-O3]
+// * *Fastest, Smallest:* Optimize for size. This setting enables all `Faster`
+// optimizations that do not typically increase code size. It also performs further
+// optimizations designed to reduce code size. [-Os]
+// * *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables
+// aggressive optimizations that may break strict standards compliance but should work
+// well on well-behaved code. [-Ofast]
+
+GCC_OPTIMIZATION_LEVEL = fast
+
+
+
+// Unroll Loops
+// 
+// Unrolls loops. Unrolling makes the code larger, but may make it faster by reducing the
+// number of branches executed.
+
+GCC_UNROLL_LOOPS = YES
+
+
+
+// Link-Time Optimization
+// 
+// Enabling this setting allows optimization across file boundaries during linking.
+// 
+// * *No:* Disabled. Do not use link-time optimization.
+// * *Monolithic Link-Time Optimization:* This mode performs monolithic link-time
+// optimization of binaries, combining all executable code into a single unit and running
+// aggressive compiler optimizations.
+// * *Incremental Link-Time Optimization:* This mode performs partitioned link-time
+// optimization of binaries, inlining between compilation units and running aggressive
+// compiler optimizations on each unit in parallel. This enables fast incremental builds
+// and uses less memory than Monolithic LTO.
+
+LLVM_LTO = YES
+
+
+
+METAL_ENABLE_DEBUG_INFO = NO
+
+
+
+// Disable Safety Checks
+// 
+// Disable runtime safety checks when optimizing.
+
+SWIFT_DISABLE_SAFETY_CHECKS = YES
+
+
+
+// Swift Optimization Level
+// 
+// * *None:* Compile without any optimization. [-Onone]
+// * *Optimize for Speed:* [-O]
+// * *Optimize for Size:* [-Osize]
+// * *Whole Module Optimization:* [-O -whole-module-optimization]
+
+SWIFT_OPTIMIZATION_LEVEL = -Owholemodule