Skip to content

Commit

Permalink
Parse-iOS-Dynamic builds a dynamic framework 🎉
Browse files Browse the repository at this point in the history
- Adds bolts build script as the bolts dynamic support is not referenced yet
- Uses external target to reuse the Parse Framework configuration
  • Loading branch information
flovilmart committed Nov 25, 2015
1 parent 2600a02 commit d7ff968
Show file tree
Hide file tree
Showing 9 changed files with 416 additions and 75 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
//
// Put this file alongside to the other both, as it contains what
// both have in common. Don't rename this file.
// Copyright (c) 2015-present, Parse, LLC.
// All rights reserved.
//
// Copyright (c) 2014-2015 Marius Rackwitz. All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
//

// Make it universal
SUPPORTED_PLATFORMS = iphonesimulator iphoneos
VALID_ARCHS[sdk=iphoneos*] = arm64 armv7 armv7s
VALID_ARCHS[sdk=iphonesimulator*] = i386 x86_64
Expand Down
43 changes: 43 additions & 0 deletions Configurations/Parse-iOS-Dynamic.xcconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//
// Copyright (c) 2015-present, Parse, LLC.
// All rights reserved.
//
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
//

PRODUCT_NAME = Parse
IPHONEOS_DEPLOYMENT_TARGET = 8.0
// This silence a warning
//MACOS_DEPLOYMENT_TARGET = 8.0
SDKROOT[sdk=macos*] = iphoneos
SDKROOT[sdk=iphoneos*] = iphoneos
SDKROOT[sdk=iphonesimulator*] = iphonesimulator
MACH_O_TYPE = mh_dylib

ENABLE_BITCODE = NO
DEFINES_MODULE = YES

SUPPORTED_PLATFORMS = iphonesimulator iphoneos

VALID_ARCHS[sdk=iphoneos*] = arm64 armv7 armv7s
VALID_ARCHS[sdk=iphonesimulator*] = i386 x86_64

ARCHS[sdk=iphoneos*] = arm64 armv7 armv7s
ARCHS[sdk=iphonesimulator*] = i386 x86_64

FRAMEWORK_SEARCH_PATHS = $(PARSE_DIR)/build/

// Dynamic linking uses different default copy paths
LD_RUNPATH_SEARCH_PATHS[sdk=iphoneos*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
LD_RUNPATH_SEARCH_PATHS[sdk=iphonesimulator*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'

DYLIB_INSTALL_NAME_BASE = @rpath

OTHER_LDFLAGS = $(inherited) '-dynamiclib' '-lsqlite3'
CLANG_MODULES_AUTOLINK = YES

ONLY_ACTIVE_ARCH = NO

INFOPLIST_FILE = $(PROJECT_DIR)/$(PRODUCT_NAME)/Resources/Parse-iOS.Info.plist
22 changes: 0 additions & 22 deletions Configurations/Parse-iOS-module.xcconfig

This file was deleted.

3 changes: 0 additions & 3 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,3 @@ DEPENDENCIES
rake
xcodeproj
xcpretty

BUNDLED WITH
1.10.6
175 changes: 175 additions & 0 deletions Parse.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1574,6 +1574,13 @@
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
4A8E7F261C0627D300E8AF28 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 09D33641139C54930098E916 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 4A8E7F1E1C0627AF00E8AF28;
remoteInfo = "Bolts-iOS-dynamic";
};
811167461B8402DA003CB026 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 09D33641139C54930098E916 /* Project object */;
Expand Down Expand Up @@ -1719,6 +1726,8 @@
499E425615B6409000A2C28E /* PFProduct.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PFProduct.m; sourceTree = "<group>"; };
49FDE2EC158C138F00126F64 /* PFPurchase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PFPurchase.h; sourceTree = "<group>"; };
49FDE2ED158C138F00126F64 /* PFPurchase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PFPurchase.m; sourceTree = "<group>"; };
4A26C3B61C053AEE00E5F505 /* Parse-iOS-Dynamic.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Parse-iOS-Dynamic.xcconfig"; sourceTree = "<group>"; };
4A8E7F291C06458F00E8AF28 /* Bolts-iOS-dynamic.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Bolts-iOS-dynamic.xcconfig"; sourceTree = "<group>"; };
63723F6D1565A085007A1A73 /* PFRole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PFRole.h; sourceTree = "<group>"; };
63723F6E1565A085007A1A73 /* PFRole.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PFRole.m; sourceTree = "<group>"; };
638CBBB415191435004F54E4 /* PFAnonymousUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PFAnonymousUtils.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -3724,12 +3733,14 @@
isa = PBXGroup;
children = (
F55ABB531B4F39DA00A0ECD5 /* Parse-iOS.xcconfig */,
4A26C3B61C053AEE00E5F505 /* Parse-iOS-Dynamic.xcconfig */,
F55ABB541B4F39DA00A0ECD5 /* Parse-OSX.xcconfig */,
815F24171BD04D310054659F /* Parse-tvOS.xcconfig */,
810154FE1BB382F800D7C7BD /* Parse-watchOS.xcconfig */,
F55ABB591B4F39DA00A0ECD5 /* ParseUnitTests-iOS.xcconfig */,
F55ABB5A1B4F39DA00A0ECD5 /* ParseUnitTests-OSX.xcconfig */,
812F31FB1BCF40DC00FCBCD4 /* Bolts-iOS.xcconfig */,
4A8E7F291C06458F00E8AF28 /* Bolts-iOS-dynamic.xcconfig */,
812F31FC1BCF40DC00FCBCD4 /* Bolts-OSX.xcconfig */,
815F24191BD04DB70054659F /* Bolts-tvOS.xcconfig */,
812F31FD1BCF40DC00FCBCD4 /* Bolts-watchOS.xcconfig */,
Expand Down Expand Up @@ -4622,6 +4633,35 @@
/* End PBXHeadersBuildPhase section */

/* Begin PBXLegacyTarget section */
4A26C3BB1C053C2C00E5F505 /* Parse-iOS-Dynamic */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "-xcconfig Configurations/Parse-iOS-Dynamic.xcconfig -workspace Parse.xcworkspace -scheme Parse-iOS -configuration $(CONFIGURATION) -sdk $SDKROOT CONFIGURATION_BUILD_DIR=$(CONFIGURATION_BUILD_DIR) $(ACTION)";
buildConfigurationList = 4A26C3BC1C053C2D00E5F505 /* Build configuration list for PBXLegacyTarget "Parse-iOS-Dynamic" */;
buildPhases = (
);
buildToolPath = xcodebuild;
buildWorkingDirectory = "$(SRCROOT)";
dependencies = (
4A8E7F271C0627D300E8AF28 /* PBXTargetDependency */,
);
name = "Parse-iOS-Dynamic";
passBuildSettingsInEnvironment = 1;
productName = Parse;
};
4A8E7F1E1C0627AF00E8AF28 /* Bolts-iOS-dynamic */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "Scripts/build_bolts_dynamic.sh $(ACTION)";
buildConfigurationList = 4A8E7F251C0627AF00E8AF28 /* Build configuration list for PBXLegacyTarget "Bolts-iOS-dynamic" */;
buildPhases = (
);
buildToolPath = sh;
buildWorkingDirectory = "$(SRCROOT)";
dependencies = (
);
name = "Bolts-iOS-dynamic";
passBuildSettingsInEnvironment = 1;
productName = "Bolts-iOS-dynamic";
};
812F31F71BCF40AA00FCBCD4 /* Bolts-watchOS */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "$(SRCROOT)/Vendor/Bolts-ObjC/ \\\n\"Vendor/Bolts-ObjC/scripts/build_framework.sh -n -c Release --with-watchos --with-tvos\"";
Expand Down Expand Up @@ -4810,6 +4850,12 @@
LastUpgradeCheck = 0710;
ORGANIZATIONNAME = "Parse Inc.";
TargetAttributes = {
4A26C3BB1C053C2C00E5F505 = {
CreatedOnToolsVersion = 7.1.1;
};
4A8E7F1E1C0627AF00E8AF28 = {
CreatedOnToolsVersion = 7.1.1;
};
81493A931A0D3492008D5504 = {
CreatedOnToolsVersion = 6.1;
};
Expand Down Expand Up @@ -4838,6 +4884,7 @@
projectRoot = "";
targets = (
81C3821B19CCA89E0066284A /* Parse-iOS */,
4A26C3BB1C053C2C00E5F505 /* Parse-iOS-Dynamic */,
816F441B1A8E8933009CDB32 /* ParseUnitTests-iOS */,
97010FAB1630B18F00AB761E /* Parse-OSX */,
81C09F501AF97A490043B49C /* ParseUnitTests-OSX */,
Expand All @@ -4847,6 +4894,7 @@
81493A931A0D3492008D5504 /* Bolts-OSX */,
815F241A1BD04DBB0054659F /* Bolts-tvOS */,
812F31F71BCF40AA00FCBCD4 /* Bolts-watchOS */,
4A8E7F1E1C0627AF00E8AF28 /* Bolts-iOS-dynamic */,
);
};
/* End PBXProject section */
Expand Down Expand Up @@ -5831,6 +5879,11 @@
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
4A8E7F271C0627D300E8AF28 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4A8E7F1E1C0627AF00E8AF28 /* Bolts-iOS-dynamic */;
targetProxy = 4A8E7F261C0627D300E8AF28 /* PBXContainerItemProxy */;
};
811167471B8402DA003CB026 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 97010FAB1630B18F00AB761E /* Parse-OSX */;
Expand Down Expand Up @@ -5894,6 +5947,110 @@
};
name = Release;
};
4A26C3BD1C053C2D00E5F505 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 4A26C3B61C053AEE00E5F505 /* Parse-iOS-Dynamic.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_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUGGING_SYMBOLS = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
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_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = ios;
};
name = Debug;
};
4A26C3BE1C053C2D00E5F505 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 4A26C3B61C053AEE00E5F505 /* Parse-iOS-Dynamic.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_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
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_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = ios;
};
name = Release;
};
4A8E7F2A1C06458F00E8AF28 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
PRODUCT_NAME = "Bolts-iOS-dynamic";
};
name = Debug;
};
4A8E7F2B1C06458F00E8AF28 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
PRODUCT_NAME = "Bolts-iOS-dynamic";
};
name = Release;
};
810156671BB3832700D7C7BD /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 810154FE1BB382F800D7C7BD /* Parse-watchOS.xcconfig */;
Expand Down Expand Up @@ -6050,6 +6207,24 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4A26C3BC1C053C2D00E5F505 /* Build configuration list for PBXLegacyTarget "Parse-iOS-Dynamic" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4A26C3BD1C053C2D00E5F505 /* Debug */,
4A26C3BE1C053C2D00E5F505 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4A8E7F251C0627AF00E8AF28 /* Build configuration list for PBXLegacyTarget "Bolts-iOS-dynamic" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4A8E7F2A1C06458F00E8AF28 /* Debug */,
4A8E7F2B1C06458F00E8AF28 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
810156661BB3832700D7C7BD /* Build configuration list for PBXNativeTarget "Parse-watchOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
Expand Down
Loading

0 comments on commit d7ff968

Please sign in to comment.