Implement universal framework

This commit is contained in:
Kyle Fuller
2014-12-25 23:35:55 +00:00
parent 5d61043f8c
commit 5a080f92cc
12 changed files with 87 additions and 21 deletions

View File

@@ -3,5 +3,7 @@ osx_image: xcode61
before_install: before_install:
- gem install cocoapods - gem install cocoapods
- gem install xcpretty - gem install xcpretty
script: xcodebuild -project Stencil.xcodeproj -scheme Stencil test | xcpretty -c; exit ${PIPESTATUS[0]} script:
- set -o pipefail
- xcodebuild -project Stencil.xcodeproj -scheme Stencil test | xcpretty -c
- xcodebuild -project Stencil.xcodeproj -scheme Stencil test -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO | xcpretty -c

View File

@@ -0,0 +1,18 @@
//
// UniversalFramework_Base.xcconfig
// Stencil
//
// Created by Marius Rackwitz on 29/11/14.
// Copyright (c) 2014 Marius Rackwitz. All rights reserved.
//
// Make it universal
SUPPORTED_PLATFORMS = iphonesimulator iphoneos macosx
VALID_ARCHS[sdk=iphoneos*] = arm64 armv7 armv7s
VALID_ARCHS[sdk=iphonesimulator*] = arm64 armv7 armv7s
VALID_ARCHS[sdk=macosx*] = i386 x86_64
// 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'
LD_RUNPATH_SEARCH_PATHS[sdk=macosx*] = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks'

View File

@@ -0,0 +1,18 @@
//
// UniversalFramework_Framework.xcconfig
// Stencil
//
// Created by Marius Rackwitz on 29/11/14.
// Copyright (c) 2014 Marius Rackwitz. All rights reserved.
//
#include "UniversalFramework_Base.xcconfig"
// iOS-specific default settings
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer
TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*] = 1,2
TARGETED_DEVICE_FAMILY[sdk=iphone*] = 1,2
// OSX-specific default settings
FRAMEWORK_VERSION[sdk=macosx*] = A
COMBINE_HIDPI_IMAGES[sdk=macosx*] = YES

View File

@@ -0,0 +1,16 @@
//
// UniversalFramework_Test.xcconfig
// Stencil
//
// Created by Marius Rackwitz on 29/11/14.
// Copyright (c) 2014 Marius Rackwitz. All rights reserved.
//
#include "UniversalFramework_Base.xcconfig"
FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*] = $(inherited) '$(SDKROOT)/Developer/Library/Frameworks'
FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*] = $(inherited) '$(SDKROOT)/Developer/Library/Frameworks'
FRAMEWORK_SEARCH_PATHS[sdk=macosx*] = $(inherited) '$(DEVELOPER_FRAMEWORKS_DIR)'
// Yep.
LD_RUNPATH_SEARCH_PATHS[sdk=macosx*] = $(inherited) '@executable_path/../Frameworks' '@loader_path/../Frameworks'

View File

@@ -7,6 +7,9 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
27E2138D1A4CD5F50073E063 /* UniversalFramework_Base.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 27E2138A1A4CD5F50073E063 /* UniversalFramework_Base.xcconfig */; };
27E2138E1A4CD5F50073E063 /* UniversalFramework_Framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 27E2138B1A4CD5F50073E063 /* UniversalFramework_Framework.xcconfig */; };
27E2138F1A4CD5F50073E063 /* UniversalFramework_Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 27E2138C1A4CD5F50073E063 /* UniversalFramework_Test.xcconfig */; };
71CE4C0A19FD29D000B9E0C5 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71CE4C0919FD29D000B9E0C5 /* Result.swift */; }; 71CE4C0A19FD29D000B9E0C5 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71CE4C0919FD29D000B9E0C5 /* Result.swift */; };
7725B3CB19F92B4F002CF74B /* VariableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7725B3CA19F92B4F002CF74B /* VariableTests.swift */; }; 7725B3CB19F92B4F002CF74B /* VariableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7725B3CA19F92B4F002CF74B /* VariableTests.swift */; };
7725B3CD19F92B61002CF74B /* Variable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7725B3CC19F92B61002CF74B /* Variable.swift */; }; 7725B3CD19F92B61002CF74B /* Variable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7725B3CC19F92B61002CF74B /* Variable.swift */; };
@@ -37,6 +40,9 @@
/* End PBXContainerItemProxy section */ /* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
27E2138A1A4CD5F50073E063 /* UniversalFramework_Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = UniversalFramework_Base.xcconfig; sourceTree = "<group>"; };
27E2138B1A4CD5F50073E063 /* UniversalFramework_Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = UniversalFramework_Framework.xcconfig; sourceTree = "<group>"; };
27E2138C1A4CD5F50073E063 /* UniversalFramework_Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = UniversalFramework_Test.xcconfig; sourceTree = "<group>"; };
71CE4C0919FD29D000B9E0C5 /* Result.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Result.swift; sourceTree = "<group>"; }; 71CE4C0919FD29D000B9E0C5 /* Result.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Result.swift; sourceTree = "<group>"; };
7725B3CA19F92B4F002CF74B /* VariableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VariableTests.swift; sourceTree = "<group>"; }; 7725B3CA19F92B4F002CF74B /* VariableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VariableTests.swift; sourceTree = "<group>"; };
7725B3CC19F92B61002CF74B /* Variable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Variable.swift; sourceTree = "<group>"; }; 7725B3CC19F92B61002CF74B /* Variable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Variable.swift; sourceTree = "<group>"; };
@@ -78,11 +84,22 @@
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
27E213891A4CD5F50073E063 /* Configurations */ = {
isa = PBXGroup;
children = (
27E2138A1A4CD5F50073E063 /* UniversalFramework_Base.xcconfig */,
27E2138B1A4CD5F50073E063 /* UniversalFramework_Framework.xcconfig */,
27E2138C1A4CD5F50073E063 /* UniversalFramework_Test.xcconfig */,
);
path = Configurations;
sourceTree = SOURCE_ROOT;
};
77FAAE4819F91E480029DC5E = { 77FAAE4819F91E480029DC5E = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
77FAAE5419F91E480029DC5E /* Stencil */, 77FAAE5419F91E480029DC5E /* Stencil */,
77FAAE6119F91E480029DC5E /* StencilTests */, 77FAAE6119F91E480029DC5E /* StencilTests */,
27E213891A4CD5F50073E063 /* Configurations */,
77FAAE5319F91E480029DC5E /* Products */, 77FAAE5319F91E480029DC5E /* Products */,
); );
sourceTree = "<group>"; sourceTree = "<group>";
@@ -234,6 +251,9 @@
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
27E2138F1A4CD5F50073E063 /* UniversalFramework_Test.xcconfig in Resources */,
27E2138E1A4CD5F50073E063 /* UniversalFramework_Framework.xcconfig in Resources */,
27E2138D1A4CD5F50073E063 /* UniversalFramework_Base.xcconfig in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -370,6 +390,7 @@
}; };
77FAAE6919F91E480029DC5E /* Debug */ = { 77FAAE6919F91E480029DC5E /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 27E2138B1A4CD5F50073E063 /* UniversalFramework_Framework.xcconfig */;
buildSettings = { buildSettings = {
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
@@ -380,7 +401,6 @@
FRAMEWORK_VERSION = A; FRAMEWORK_VERSION = A;
INFOPLIST_FILE = Stencil/Info.plist; INFOPLIST_FILE = Stencil/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -389,6 +409,7 @@
}; };
77FAAE6A19F91E480029DC5E /* Release */ = { 77FAAE6A19F91E480029DC5E /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 27E2138B1A4CD5F50073E063 /* UniversalFramework_Framework.xcconfig */;
buildSettings = { buildSettings = {
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
@@ -399,7 +420,6 @@
FRAMEWORK_VERSION = A; FRAMEWORK_VERSION = A;
INFOPLIST_FILE = Stencil/Info.plist; INFOPLIST_FILE = Stencil/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
}; };
@@ -407,32 +427,24 @@
}; };
77FAAE6C19F91E480029DC5E /* Debug */ = { 77FAAE6C19F91E480029DC5E /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 27E2138C1A4CD5F50073E063 /* UniversalFramework_Test.xcconfig */;
buildSettings = { buildSettings = {
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(DEVELOPER_FRAMEWORKS_DIR)",
"$(inherited)",
);
GCC_PREPROCESSOR_DEFINITIONS = ( GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1", "DEBUG=1",
"$(inherited)", "$(inherited)",
); );
INFOPLIST_FILE = StencilTests/Info.plist; INFOPLIST_FILE = StencilTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
}; };
name = Debug; name = Debug;
}; };
77FAAE6D19F91E480029DC5E /* Release */ = { 77FAAE6D19F91E480029DC5E /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 27E2138C1A4CD5F50073E063 /* UniversalFramework_Test.xcconfig */;
buildSettings = { buildSettings = {
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(DEVELOPER_FRAMEWORKS_DIR)",
"$(inherited)",
);
INFOPLIST_FILE = StencilTests/Info.plist; INFOPLIST_FILE = StencilTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
}; };
name = Release; name = Release;

View File

@@ -1,4 +1,4 @@
import Cocoa import Foundation
import XCTest import XCTest
import Stencil import Stencil

View File

@@ -1,4 +1,4 @@
import Cocoa import Foundation
import XCTest import XCTest
import Stencil import Stencil

View File

@@ -1,4 +1,4 @@
import Cocoa import Foundation
import XCTest import XCTest
import Stencil import Stencil

View File

@@ -1,4 +1,4 @@
import Cocoa import Foundation
import XCTest import XCTest
import Stencil import Stencil

View File

@@ -1,4 +1,4 @@
import Cocoa import Foundation
import XCTest import XCTest
import Stencil import Stencil

View File

@@ -1,4 +1,4 @@
import Cocoa import Foundation
import XCTest import XCTest
import Stencil import Stencil

View File

@@ -1,4 +1,4 @@
import Cocoa import Foundation
import XCTest import XCTest
import Stencil import Stencil