Skip to content

Commit d7ff968

Browse files
committed
Parse-iOS-Dynamic builds a dynamic framework 🎉
- Adds bolts build script as the bolts dynamic support is not referenced yet - Uses external target to reuse the Parse Framework configuration
1 parent 2600a02 commit d7ff968

9 files changed

+416
-75
lines changed

Configurations/Bolts-iOS-module.xcconfig renamed to Configurations/Bolts-iOS-dynamic.xcconfig

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
//
2-
// Put this file alongside to the other both, as it contains what
3-
// both have in common. Don't rename this file.
2+
// Copyright (c) 2015-present, Parse, LLC.
3+
// All rights reserved.
44
//
5-
// Copyright (c) 2014-2015 Marius Rackwitz. All rights reserved.
5+
// This source code is licensed under the BSD-style license found in the
6+
// LICENSE file in the root directory of this source tree. An additional grant
7+
// of patent rights can be found in the PATENTS file in the same directory.
68
//
79

8-
// Make it universal
910
SUPPORTED_PLATFORMS = iphonesimulator iphoneos
1011
VALID_ARCHS[sdk=iphoneos*] = arm64 armv7 armv7s
1112
VALID_ARCHS[sdk=iphonesimulator*] = i386 x86_64
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
//
2+
// Copyright (c) 2015-present, Parse, LLC.
3+
// All rights reserved.
4+
//
5+
// This source code is licensed under the BSD-style license found in the
6+
// LICENSE file in the root directory of this source tree. An additional grant
7+
// of patent rights can be found in the PATENTS file in the same directory.
8+
//
9+
10+
PRODUCT_NAME = Parse
11+
IPHONEOS_DEPLOYMENT_TARGET = 8.0
12+
// This silence a warning
13+
//MACOS_DEPLOYMENT_TARGET = 8.0
14+
SDKROOT[sdk=macos*] = iphoneos
15+
SDKROOT[sdk=iphoneos*] = iphoneos
16+
SDKROOT[sdk=iphonesimulator*] = iphonesimulator
17+
MACH_O_TYPE = mh_dylib
18+
19+
ENABLE_BITCODE = NO
20+
DEFINES_MODULE = YES
21+
22+
SUPPORTED_PLATFORMS = iphonesimulator iphoneos
23+
24+
VALID_ARCHS[sdk=iphoneos*] = arm64 armv7 armv7s
25+
VALID_ARCHS[sdk=iphonesimulator*] = i386 x86_64
26+
27+
ARCHS[sdk=iphoneos*] = arm64 armv7 armv7s
28+
ARCHS[sdk=iphonesimulator*] = i386 x86_64
29+
30+
FRAMEWORK_SEARCH_PATHS = $(PARSE_DIR)/build/
31+
32+
// Dynamic linking uses different default copy paths
33+
LD_RUNPATH_SEARCH_PATHS[sdk=iphoneos*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
34+
LD_RUNPATH_SEARCH_PATHS[sdk=iphonesimulator*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
35+
36+
DYLIB_INSTALL_NAME_BASE = @rpath
37+
38+
OTHER_LDFLAGS = $(inherited) '-dynamiclib' '-lsqlite3'
39+
CLANG_MODULES_AUTOLINK = YES
40+
41+
ONLY_ACTIVE_ARCH = NO
42+
43+
INFOPLIST_FILE = $(PROJECT_DIR)/$(PRODUCT_NAME)/Resources/Parse-iOS.Info.plist

Configurations/Parse-iOS-module.xcconfig

Lines changed: 0 additions & 22 deletions
This file was deleted.

Gemfile.lock

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,3 @@ DEPENDENCIES
6969
rake
7070
xcodeproj
7171
xcpretty
72-
73-
BUNDLED WITH
74-
1.10.6

Parse.xcodeproj/project.pbxproj

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1574,6 +1574,13 @@
15741574
/* End PBXBuildFile section */
15751575

15761576
/* Begin PBXContainerItemProxy section */
1577+
4A8E7F261C0627D300E8AF28 /* PBXContainerItemProxy */ = {
1578+
isa = PBXContainerItemProxy;
1579+
containerPortal = 09D33641139C54930098E916 /* Project object */;
1580+
proxyType = 1;
1581+
remoteGlobalIDString = 4A8E7F1E1C0627AF00E8AF28;
1582+
remoteInfo = "Bolts-iOS-dynamic";
1583+
};
15771584
811167461B8402DA003CB026 /* PBXContainerItemProxy */ = {
15781585
isa = PBXContainerItemProxy;
15791586
containerPortal = 09D33641139C54930098E916 /* Project object */;
@@ -1719,6 +1726,8 @@
17191726
499E425615B6409000A2C28E /* PFProduct.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PFProduct.m; sourceTree = "<group>"; };
17201727
49FDE2EC158C138F00126F64 /* PFPurchase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PFPurchase.h; sourceTree = "<group>"; };
17211728
49FDE2ED158C138F00126F64 /* PFPurchase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PFPurchase.m; sourceTree = "<group>"; };
1729+
4A26C3B61C053AEE00E5F505 /* Parse-iOS-Dynamic.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Parse-iOS-Dynamic.xcconfig"; sourceTree = "<group>"; };
1730+
4A8E7F291C06458F00E8AF28 /* Bolts-iOS-dynamic.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Bolts-iOS-dynamic.xcconfig"; sourceTree = "<group>"; };
17221731
63723F6D1565A085007A1A73 /* PFRole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PFRole.h; sourceTree = "<group>"; };
17231732
63723F6E1565A085007A1A73 /* PFRole.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PFRole.m; sourceTree = "<group>"; };
17241733
638CBBB415191435004F54E4 /* PFAnonymousUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PFAnonymousUtils.h; sourceTree = "<group>"; };
@@ -3724,12 +3733,14 @@
37243733
isa = PBXGroup;
37253734
children = (
37263735
F55ABB531B4F39DA00A0ECD5 /* Parse-iOS.xcconfig */,
3736+
4A26C3B61C053AEE00E5F505 /* Parse-iOS-Dynamic.xcconfig */,
37273737
F55ABB541B4F39DA00A0ECD5 /* Parse-OSX.xcconfig */,
37283738
815F24171BD04D310054659F /* Parse-tvOS.xcconfig */,
37293739
810154FE1BB382F800D7C7BD /* Parse-watchOS.xcconfig */,
37303740
F55ABB591B4F39DA00A0ECD5 /* ParseUnitTests-iOS.xcconfig */,
37313741
F55ABB5A1B4F39DA00A0ECD5 /* ParseUnitTests-OSX.xcconfig */,
37323742
812F31FB1BCF40DC00FCBCD4 /* Bolts-iOS.xcconfig */,
3743+
4A8E7F291C06458F00E8AF28 /* Bolts-iOS-dynamic.xcconfig */,
37333744
812F31FC1BCF40DC00FCBCD4 /* Bolts-OSX.xcconfig */,
37343745
815F24191BD04DB70054659F /* Bolts-tvOS.xcconfig */,
37353746
812F31FD1BCF40DC00FCBCD4 /* Bolts-watchOS.xcconfig */,
@@ -4622,6 +4633,35 @@
46224633
/* End PBXHeadersBuildPhase section */
46234634

46244635
/* Begin PBXLegacyTarget section */
4636+
4A26C3BB1C053C2C00E5F505 /* Parse-iOS-Dynamic */ = {
4637+
isa = PBXLegacyTarget;
4638+
buildArgumentsString = "-xcconfig Configurations/Parse-iOS-Dynamic.xcconfig -workspace Parse.xcworkspace -scheme Parse-iOS -configuration $(CONFIGURATION) -sdk $SDKROOT CONFIGURATION_BUILD_DIR=$(CONFIGURATION_BUILD_DIR) $(ACTION)";
4639+
buildConfigurationList = 4A26C3BC1C053C2D00E5F505 /* Build configuration list for PBXLegacyTarget "Parse-iOS-Dynamic" */;
4640+
buildPhases = (
4641+
);
4642+
buildToolPath = xcodebuild;
4643+
buildWorkingDirectory = "$(SRCROOT)";
4644+
dependencies = (
4645+
4A8E7F271C0627D300E8AF28 /* PBXTargetDependency */,
4646+
);
4647+
name = "Parse-iOS-Dynamic";
4648+
passBuildSettingsInEnvironment = 1;
4649+
productName = Parse;
4650+
};
4651+
4A8E7F1E1C0627AF00E8AF28 /* Bolts-iOS-dynamic */ = {
4652+
isa = PBXLegacyTarget;
4653+
buildArgumentsString = "Scripts/build_bolts_dynamic.sh $(ACTION)";
4654+
buildConfigurationList = 4A8E7F251C0627AF00E8AF28 /* Build configuration list for PBXLegacyTarget "Bolts-iOS-dynamic" */;
4655+
buildPhases = (
4656+
);
4657+
buildToolPath = sh;
4658+
buildWorkingDirectory = "$(SRCROOT)";
4659+
dependencies = (
4660+
);
4661+
name = "Bolts-iOS-dynamic";
4662+
passBuildSettingsInEnvironment = 1;
4663+
productName = "Bolts-iOS-dynamic";
4664+
};
46254665
812F31F71BCF40AA00FCBCD4 /* Bolts-watchOS */ = {
46264666
isa = PBXLegacyTarget;
46274667
buildArgumentsString = "$(SRCROOT)/Vendor/Bolts-ObjC/ \\\n\"Vendor/Bolts-ObjC/scripts/build_framework.sh -n -c Release --with-watchos --with-tvos\"";
@@ -4810,6 +4850,12 @@
48104850
LastUpgradeCheck = 0710;
48114851
ORGANIZATIONNAME = "Parse Inc.";
48124852
TargetAttributes = {
4853+
4A26C3BB1C053C2C00E5F505 = {
4854+
CreatedOnToolsVersion = 7.1.1;
4855+
};
4856+
4A8E7F1E1C0627AF00E8AF28 = {
4857+
CreatedOnToolsVersion = 7.1.1;
4858+
};
48134859
81493A931A0D3492008D5504 = {
48144860
CreatedOnToolsVersion = 6.1;
48154861
};
@@ -4838,6 +4884,7 @@
48384884
projectRoot = "";
48394885
targets = (
48404886
81C3821B19CCA89E0066284A /* Parse-iOS */,
4887+
4A26C3BB1C053C2C00E5F505 /* Parse-iOS-Dynamic */,
48414888
816F441B1A8E8933009CDB32 /* ParseUnitTests-iOS */,
48424889
97010FAB1630B18F00AB761E /* Parse-OSX */,
48434890
81C09F501AF97A490043B49C /* ParseUnitTests-OSX */,
@@ -4847,6 +4894,7 @@
48474894
81493A931A0D3492008D5504 /* Bolts-OSX */,
48484895
815F241A1BD04DBB0054659F /* Bolts-tvOS */,
48494896
812F31F71BCF40AA00FCBCD4 /* Bolts-watchOS */,
4897+
4A8E7F1E1C0627AF00E8AF28 /* Bolts-iOS-dynamic */,
48504898
);
48514899
};
48524900
/* End PBXProject section */
@@ -5831,6 +5879,11 @@
58315879
/* End PBXSourcesBuildPhase section */
58325880

58335881
/* Begin PBXTargetDependency section */
5882+
4A8E7F271C0627D300E8AF28 /* PBXTargetDependency */ = {
5883+
isa = PBXTargetDependency;
5884+
target = 4A8E7F1E1C0627AF00E8AF28 /* Bolts-iOS-dynamic */;
5885+
targetProxy = 4A8E7F261C0627D300E8AF28 /* PBXContainerItemProxy */;
5886+
};
58345887
811167471B8402DA003CB026 /* PBXTargetDependency */ = {
58355888
isa = PBXTargetDependency;
58365889
target = 97010FAB1630B18F00AB761E /* Parse-OSX */;
@@ -5894,6 +5947,110 @@
58945947
};
58955948
name = Release;
58965949
};
5950+
4A26C3BD1C053C2D00E5F505 /* Debug */ = {
5951+
isa = XCBuildConfiguration;
5952+
baseConfigurationReference = 4A26C3B61C053AEE00E5F505 /* Parse-iOS-Dynamic.xcconfig */;
5953+
buildSettings = {
5954+
ALWAYS_SEARCH_USER_PATHS = NO;
5955+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
5956+
CLANG_CXX_LIBRARY = "libc++";
5957+
CLANG_ENABLE_MODULES = YES;
5958+
CLANG_ENABLE_OBJC_ARC = YES;
5959+
CLANG_WARN_BOOL_CONVERSION = YES;
5960+
CLANG_WARN_CONSTANT_CONVERSION = YES;
5961+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
5962+
CLANG_WARN_EMPTY_BODY = YES;
5963+
CLANG_WARN_ENUM_CONVERSION = YES;
5964+
CLANG_WARN_INT_CONVERSION = YES;
5965+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
5966+
CLANG_WARN_UNREACHABLE_CODE = YES;
5967+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
5968+
COPY_PHASE_STRIP = NO;
5969+
DEBUGGING_SYMBOLS = YES;
5970+
DEBUG_INFORMATION_FORMAT = dwarf;
5971+
ENABLE_STRICT_OBJC_MSGSEND = YES;
5972+
ENABLE_TESTABILITY = YES;
5973+
GCC_C_LANGUAGE_STANDARD = gnu99;
5974+
GCC_DYNAMIC_NO_PIC = NO;
5975+
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
5976+
GCC_NO_COMMON_BLOCKS = YES;
5977+
GCC_OPTIMIZATION_LEVEL = 0;
5978+
GCC_PREPROCESSOR_DEFINITIONS = (
5979+
"DEBUG=1",
5980+
"$(inherited)",
5981+
);
5982+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
5983+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
5984+
GCC_WARN_UNDECLARED_SELECTOR = YES;
5985+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
5986+
GCC_WARN_UNUSED_FUNCTION = YES;
5987+
GCC_WARN_UNUSED_VARIABLE = YES;
5988+
MTL_ENABLE_DEBUG_INFO = YES;
5989+
ONLY_ACTIVE_ARCH = YES;
5990+
OTHER_CFLAGS = "";
5991+
OTHER_LDFLAGS = "";
5992+
PRODUCT_NAME = "$(TARGET_NAME)";
5993+
SUPPORTED_PLATFORMS = ios;
5994+
};
5995+
name = Debug;
5996+
};
5997+
4A26C3BE1C053C2D00E5F505 /* Release */ = {
5998+
isa = XCBuildConfiguration;
5999+
baseConfigurationReference = 4A26C3B61C053AEE00E5F505 /* Parse-iOS-Dynamic.xcconfig */;
6000+
buildSettings = {
6001+
ALWAYS_SEARCH_USER_PATHS = NO;
6002+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
6003+
CLANG_CXX_LIBRARY = "libc++";
6004+
CLANG_ENABLE_MODULES = YES;
6005+
CLANG_ENABLE_OBJC_ARC = YES;
6006+
CLANG_WARN_BOOL_CONVERSION = YES;
6007+
CLANG_WARN_CONSTANT_CONVERSION = YES;
6008+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
6009+
CLANG_WARN_EMPTY_BODY = YES;
6010+
CLANG_WARN_ENUM_CONVERSION = YES;
6011+
CLANG_WARN_INT_CONVERSION = YES;
6012+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
6013+
CLANG_WARN_UNREACHABLE_CODE = YES;
6014+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
6015+
COPY_PHASE_STRIP = NO;
6016+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
6017+
ENABLE_NS_ASSERTIONS = NO;
6018+
ENABLE_STRICT_OBJC_MSGSEND = YES;
6019+
GCC_C_LANGUAGE_STANDARD = gnu99;
6020+
GCC_NO_COMMON_BLOCKS = YES;
6021+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
6022+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
6023+
GCC_WARN_UNDECLARED_SELECTOR = YES;
6024+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
6025+
GCC_WARN_UNUSED_FUNCTION = YES;
6026+
GCC_WARN_UNUSED_VARIABLE = YES;
6027+
MTL_ENABLE_DEBUG_INFO = NO;
6028+
OTHER_CFLAGS = "";
6029+
OTHER_LDFLAGS = "";
6030+
PRODUCT_NAME = "$(TARGET_NAME)";
6031+
SUPPORTED_PLATFORMS = ios;
6032+
};
6033+
name = Release;
6034+
};
6035+
4A8E7F2A1C06458F00E8AF28 /* Debug */ = {
6036+
isa = XCBuildConfiguration;
6037+
buildSettings = {
6038+
COPY_PHASE_STRIP = NO;
6039+
GCC_DYNAMIC_NO_PIC = NO;
6040+
GCC_OPTIMIZATION_LEVEL = 0;
6041+
PRODUCT_NAME = "Bolts-iOS-dynamic";
6042+
};
6043+
name = Debug;
6044+
};
6045+
4A8E7F2B1C06458F00E8AF28 /* Release */ = {
6046+
isa = XCBuildConfiguration;
6047+
buildSettings = {
6048+
COPY_PHASE_STRIP = YES;
6049+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
6050+
PRODUCT_NAME = "Bolts-iOS-dynamic";
6051+
};
6052+
name = Release;
6053+
};
58976054
810156671BB3832700D7C7BD /* Debug */ = {
58986055
isa = XCBuildConfiguration;
58996056
baseConfigurationReference = 810154FE1BB382F800D7C7BD /* Parse-watchOS.xcconfig */;
@@ -6050,6 +6207,24 @@
60506207
defaultConfigurationIsVisible = 0;
60516208
defaultConfigurationName = Release;
60526209
};
6210+
4A26C3BC1C053C2D00E5F505 /* Build configuration list for PBXLegacyTarget "Parse-iOS-Dynamic" */ = {
6211+
isa = XCConfigurationList;
6212+
buildConfigurations = (
6213+
4A26C3BD1C053C2D00E5F505 /* Debug */,
6214+
4A26C3BE1C053C2D00E5F505 /* Release */,
6215+
);
6216+
defaultConfigurationIsVisible = 0;
6217+
defaultConfigurationName = Release;
6218+
};
6219+
4A8E7F251C0627AF00E8AF28 /* Build configuration list for PBXLegacyTarget "Bolts-iOS-dynamic" */ = {
6220+
isa = XCConfigurationList;
6221+
buildConfigurations = (
6222+
4A8E7F2A1C06458F00E8AF28 /* Debug */,
6223+
4A8E7F2B1C06458F00E8AF28 /* Release */,
6224+
);
6225+
defaultConfigurationIsVisible = 0;
6226+
defaultConfigurationName = Release;
6227+
};
60536228
810156661BB3832700D7C7BD /* Build configuration list for PBXNativeTarget "Parse-watchOS" */ = {
60546229
isa = XCConfigurationList;
60556230
buildConfigurations = (

0 commit comments

Comments
 (0)