diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml new file mode 100755 index 0000000..cfed1e9 --- /dev/null +++ b/.github/workflows/cd.yml @@ -0,0 +1,23 @@ +name: CD + +on: + release: + types: + - created + +jobs: + build: + + runs-on: macOS-latest + + steps: + - uses: actions/checkout@v2 + + - name: Deploy to Cocoapods + env: + COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} + run: | + set -eo pipefail + export LIB_VERSION=$(git describe --tags `git rev-list --tags --max-count=1`) + pod lib lint --allow-warnings + pod trunk push --allow-warnings diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100755 index 0000000..5ac9711 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,25 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + test: + runs-on: macOS-latest + + steps: + - uses: actions/checkout@v2 + + - name: SPM build + run: swift build + + - name: Lint Podspec + run: | + set -eo pipefail + pod lib lint --allow-warnings --use-libraries + + - name: Carthage update + run: ./scripts/carthage.sh build --platform "ios,macos" --no-skip-current diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100755 index 3d7a5bd..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: CI - -on: - push: - branches: - - master - -jobs: - build: - - runs-on: macOS-latest - - steps: - - uses: actions/checkout@v1 - - name: Publish to CocoaPod register - env: - COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} - run: | - pod trunk push imglyKit2.podspec --allow-warnings diff --git a/.gitignore b/.gitignore index 8c67dda..b414023 100755 --- a/.gitignore +++ b/.gitignore @@ -29,9 +29,17 @@ DerivedData # # Add this line if you want to avoid checking in source code from Carthage dependencies. # Carthage/Checkouts - Carthage/Build +# Swift Package Manager +# +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +# Packages/ +# Package.pins +Package.resolved +.build/ +.swiftpm/ + ### OSX ### .DS_Store .AppleDouble diff --git a/Examples/iOS Example.xcodeproj/project.pbxproj b/Examples/iOS Example.xcodeproj/project.pbxproj index 83a0ff3..1e1a03c 100755 --- a/Examples/iOS Example.xcodeproj/project.pbxproj +++ b/Examples/iOS Example.xcodeproj/project.pbxproj @@ -148,7 +148,7 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 1030; + LastUpgradeCheck = 1230; ORGANIZATIONNAME = "9elements GmbH"; TargetAttributes = { 2BF4D77A1AF11E2E00C801B2 = { @@ -267,6 +267,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -292,7 +293,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -324,6 +325,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -342,7 +344,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; diff --git a/Package.swift b/Package.swift index 0dad5ea..0c74c3e 100644 --- a/Package.swift +++ b/Package.swift @@ -1,12 +1,12 @@ -// swift-tools-version:5.1 +// swift-tools-version:5.3 import PackageDescription let package = Package( name: "imglyKit", + defaultLocalization: .resolved(), platforms: [ - .iOS(.v8), - .macOS(.v10_10) + .iOS(.v9), .macOS(.v10_10), ], products: [ .library( @@ -14,5 +14,73 @@ let package = Package( targets: ["imglyKit"] ) ], - dependencies: [] + dependencies: [], + targets: [ + .target( + name: "imglyKit", + dependencies: ["imglyKit-ObjC"], + path: "imglyKit", + exclude: Exclude.resolved(), + resources: Resource.resolved() + ), + .target( + name: "imglyKit-ObjC", + path: "imglyKit/Backend/Processing/ObjC", + publicHeadersPath: "" + ) + ] ) + +private extension LanguageTag { + static func resolved() -> LanguageTag? { + #if os(iOS) + return .init("en") + #elseif os(macOS) + return nil + #endif + } +} + +private enum Exclude { + static func common() -> [String] { + [ + "Supporting Files", + "Backend/Processing/ObjC" + ] + } + + static func platform() -> [String] { + #if os(iOS) + return [] + #elseif os(macOS) + return [ + "Frontend", + ] + #endif + } + + static func resolved() -> [String] { + common() + platform() + } +} + +private extension Resource { + static func common() -> [Self] { + [ + .process("Backend/Filter Responses"), + .process("Backend/Fonts") + ] + } + + static func platform() -> [Self] { + #if os(iOS) + return [] + #elseif os(macOS) + return [] + #endif + } + + static func resolved() -> [Self] { + common() + platform() + } +} diff --git a/imglyKit.xcodeproj/project.pbxproj b/imglyKit.xcodeproj/project.pbxproj index b861af7..08f4ed9 100755 --- a/imglyKit.xcodeproj/project.pbxproj +++ b/imglyKit.xcodeproj/project.pbxproj @@ -7,6 +7,10 @@ objects = { /* Begin PBXBuildFile section */ + 11DC199425CC0877002A0C5C /* LUTToNSDataConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 11DC199225CC0877002A0C5C /* LUTToNSDataConverter.m */; }; + 11DC199525CC0877002A0C5C /* LUTToNSDataConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 11DC199225CC0877002A0C5C /* LUTToNSDataConverter.m */; }; + 11DC199625CC0877002A0C5C /* LUTToNSDataConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 11DC199325CC0877002A0C5C /* LUTToNSDataConverter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11DC199725CC0877002A0C5C /* LUTToNSDataConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 11DC199325CC0877002A0C5C /* LUTToNSDataConverter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2B0DC4C31B037016002FE44F /* NSTimerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B0DC4C21B037016002FE44F /* NSTimerExtension.swift */; }; 2B1ADA101B19C3F300C98522 /* IMGLYInstanceFactoryExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B1ADA0F1B19C3F300C98522 /* IMGLYInstanceFactoryExtension.swift */; }; 2B1ADA371B19C8CE00C98522 /* CIFilterExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D3EB1AF1151500C801B2 /* CIFilterExtension.swift */; }; @@ -102,8 +106,6 @@ 2B1ADA971B19C8E500C98522 /* IMGLYStickerFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D4A61AF1154B00C801B2 /* IMGLYStickerFilter.swift */; }; 2B1ADA981B19C8E500C98522 /* IMGLYTextFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D4A71AF1154B00C801B2 /* IMGLYTextFilter.swift */; }; 2B1ADA991B19C8E500C98522 /* IMGLYTiltshiftFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D4A81AF1154B00C801B2 /* IMGLYTiltshiftFilter.swift */; }; - 2B1ADA9A1B19C8E500C98522 /* LUTToNSDataConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BF4D53B1AF1156F00C801B2 /* LUTToNSDataConverter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2B1ADA9B1B19C8E500C98522 /* LUTToNSDataConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D53C1AF1156F00C801B2 /* LUTToNSDataConverter.m */; }; 2B1ADA9D1B19C8EE00C98522 /* IMGLYAD1920Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D4B41AF1155D00C801B2 /* IMGLYAD1920Filter.swift */; }; 2B1ADA9E1B19C8EE00C98522 /* IMGLYAncientFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D4B51AF1155D00C801B2 /* IMGLYAncientFilter.swift */; }; 2B1ADA9F1B19C8EE00C98522 /* IMGLYBleachedBlueFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D4B61AF1155D00C801B2 /* IMGLYBleachedBlueFilter.swift */; }; @@ -364,8 +366,6 @@ 2BF4D5381AF1155E00C801B2 /* IMGLYTwilightFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D4F41AF1155E00C801B2 /* IMGLYTwilightFilter.swift */; }; 2BF4D5391AF1155E00C801B2 /* IMGLYWinterFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D4F51AF1155E00C801B2 /* IMGLYWinterFilter.swift */; }; 2BF4D53A1AF1155E00C801B2 /* IMGLYX400Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D4F61AF1155E00C801B2 /* IMGLYX400Filter.swift */; }; - 2BF4D53D1AF1156F00C801B2 /* LUTToNSDataConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BF4D53B1AF1156F00C801B2 /* LUTToNSDataConverter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2BF4D53E1AF1156F00C801B2 /* LUTToNSDataConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D53C1AF1156F00C801B2 /* LUTToNSDataConverter.m */; }; 2BF4D5431AF1159D00C801B2 /* IMGLYFontImporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D5411AF1159D00C801B2 /* IMGLYFontImporter.swift */; }; 2BF4D5441AF1159D00C801B2 /* IMGLYInstanceFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF4D5421AF1159D00C801B2 /* IMGLYInstanceFactory.swift */; }; 2BF4D5451AF115A200C801B2 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2BF4D5471AF115A200C801B2 /* Localizable.strings */; }; @@ -374,6 +374,8 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 11DC199225CC0877002A0C5C /* LUTToNSDataConverter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LUTToNSDataConverter.m; sourceTree = ""; }; + 11DC199325CC0877002A0C5C /* LUTToNSDataConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LUTToNSDataConverter.h; sourceTree = ""; }; 2B0DC4C21B037016002FE44F /* NSTimerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSTimerExtension.swift; sourceTree = ""; }; 2B1ADA0F1B19C3F300C98522 /* IMGLYInstanceFactoryExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IMGLYInstanceFactoryExtension.swift; sourceTree = ""; }; 2B1ADA1D1B19C86300C98522 /* imglyKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = imglyKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -575,8 +577,6 @@ 2BF4D4F41AF1155E00C801B2 /* IMGLYTwilightFilter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IMGLYTwilightFilter.swift; sourceTree = ""; }; 2BF4D4F51AF1155E00C801B2 /* IMGLYWinterFilter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IMGLYWinterFilter.swift; sourceTree = ""; }; 2BF4D4F61AF1155E00C801B2 /* IMGLYX400Filter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IMGLYX400Filter.swift; sourceTree = ""; }; - 2BF4D53B1AF1156F00C801B2 /* LUTToNSDataConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LUTToNSDataConverter.h; sourceTree = ""; }; - 2BF4D53C1AF1156F00C801B2 /* LUTToNSDataConverter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LUTToNSDataConverter.m; sourceTree = ""; }; 2BF4D5411AF1159D00C801B2 /* IMGLYFontImporter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IMGLYFontImporter.swift; sourceTree = ""; }; 2BF4D5421AF1159D00C801B2 /* IMGLYInstanceFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IMGLYInstanceFactory.swift; sourceTree = ""; }; 2BF4D5461AF115A200C801B2 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; @@ -602,6 +602,15 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 11DC199125CC0877002A0C5C /* ObjC */ = { + isa = PBXGroup; + children = ( + 11DC199325CC0877002A0C5C /* LUTToNSDataConverter.h */, + 11DC199225CC0877002A0C5C /* LUTToNSDataConverter.m */, + ); + path = ObjC; + sourceTree = ""; + }; 2B1ADA0B1B19C33600C98522 /* Frontend */ = { isa = PBXGroup; children = ( @@ -834,6 +843,7 @@ 2BF4D3A51AF1140900C801B2 /* Processing */ = { isa = PBXGroup; children = ( + 11DC199125CC0877002A0C5C /* ObjC */, 2BF4D49F1AF1154B00C801B2 /* IMGLYContrastBrightnessSaturationFilter.swift */, 2BF4D4A01AF1154B00C801B2 /* IMGLYCropFilter.swift */, 2BF4D4A11AF1154B00C801B2 /* IMGLYEnhancementFilter.swift */, @@ -844,8 +854,6 @@ 2BF4D4A61AF1154B00C801B2 /* IMGLYStickerFilter.swift */, 2BF4D4A71AF1154B00C801B2 /* IMGLYTextFilter.swift */, 2BF4D4A81AF1154B00C801B2 /* IMGLYTiltshiftFilter.swift */, - 2BF4D53B1AF1156F00C801B2 /* LUTToNSDataConverter.h */, - 2BF4D53C1AF1156F00C801B2 /* LUTToNSDataConverter.m */, 2BF4D3A61AF1140F00C801B2 /* Response Filters */, ); path = Processing; @@ -928,7 +936,7 @@ buildActionMask = 2147483647; files = ( 2B1ADAE01B19CBB900C98522 /* imglyKit.h in Headers */, - 2B1ADA9A1B19C8E500C98522 /* LUTToNSDataConverter.h in Headers */, + 11DC199725CC0877002A0C5C /* LUTToNSDataConverter.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -937,7 +945,7 @@ buildActionMask = 2147483647; files = ( 2BF4D38A1AF1139600C801B2 /* imglyKit.h in Headers */, - 2BF4D53D1AF1156F00C801B2 /* LUTToNSDataConverter.h in Headers */, + 11DC199625CC0877002A0C5C /* LUTToNSDataConverter.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -988,7 +996,7 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 1030; + LastUpgradeCheck = 1230; ORGANIZATIONNAME = "9elements GmbH"; TargetAttributes = { 2B1ADA1C1B19C86300C98522 = { @@ -1238,7 +1246,6 @@ 2B1ADAD31B19C8EE00C98522 /* IMGLYSettledFilter.swift in Sources */, 2B1ADA961B19C8E500C98522 /* IMGLYPhotoProcessor.swift in Sources */, 2B1ADABA1B19C8EE00C98522 /* IMGLYK2Filter.swift in Sources */, - 2B1ADA9B1B19C8E500C98522 /* LUTToNSDataConverter.m in Sources */, 2B1ADADE1B19C8EE00C98522 /* IMGLYWinterFilter.swift in Sources */, 2B1ADAB51B19C8EE00C98522 /* IMGLYFrontFilter.swift in Sources */, 2BB88C3F1B69127400D23A2F /* IMGLYScaleFilter.swift in Sources */, @@ -1278,6 +1285,7 @@ 2B1ADADF1B19C8EE00C98522 /* IMGLYX400Filter.swift in Sources */, 2B1ADADA1B19C8EE00C98522 /* IMGLYSunsetFilter.swift in Sources */, 2B1ADACB1B19C8EE00C98522 /* IMGLYPlateFilter.swift in Sources */, + 11DC199525CC0877002A0C5C /* LUTToNSDataConverter.m in Sources */, 2B1ADAD81B19C8EE00C98522 /* IMGLYSummerFilter.swift in Sources */, 2B1ADA9F1B19C8EE00C98522 /* IMGLYBleachedBlueFilter.swift in Sources */, 2B1ADA941B19C8E500C98522 /* IMGLYNoneFilter.swift in Sources */, @@ -1294,7 +1302,6 @@ 2BF4D3DA1AF1150500C801B2 /* IMGLYFontSelectorView.swift in Sources */, 2BF4D3E31AF1150500C801B2 /* IMGLYSliderEditorViewController.swift in Sources */, 2BF4D3DF1AF1150500C801B2 /* IMGLYNavigationAnimationController.swift in Sources */, - 2BF4D53E1AF1156F00C801B2 /* LUTToNSDataConverter.m in Sources */, 2B0DC4C31B037016002FE44F /* NSTimerExtension.swift in Sources */, 2BF4D4FF1AF1155E00C801B2 /* IMGLYBreezeFilter.swift in Sources */, 2BF4D3D81AF1150500C801B2 /* IMGLYFilterSelectionController.swift in Sources */, @@ -1309,6 +1316,7 @@ 2BF4D5351AF1155E00C801B2 /* IMGLYSunsetFilter.swift in Sources */, 2BF4D3CD1AF1150500C801B2 /* IMGLYBoxGradientView.swift in Sources */, 2BF4D4B21AF1154B00C801B2 /* IMGLYTiltshiftFilter.swift in Sources */, + 11DC199425CC0877002A0C5C /* LUTToNSDataConverter.m in Sources */, 2BF4D5031AF1155E00C801B2 /* IMGLYClassicFilter.swift in Sources */, 2BF4D4FB1AF1155E00C801B2 /* IMGLYBleachedFilter.swift in Sources */, 2BF4D5081AF1155E00C801B2 /* IMGLYEightiesFilter.swift in Sources */, @@ -1429,6 +1437,7 @@ 2B1ADA311B19C86300C98522 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = NO; COMBINE_HIDPI_IMAGES = YES; DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; @@ -1444,6 +1453,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; + MARKETING_VERSION = 1.0.0; PRODUCT_BUNDLE_IDENTIFIER = "com.9elements.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = imglyKit; SDKROOT = macosx; @@ -1455,6 +1465,7 @@ 2B1ADA321B19C86300C98522 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = NO; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; @@ -1465,6 +1476,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; + MARKETING_VERSION = 1.0.0; PRODUCT_BUNDLE_IDENTIFIER = "com.9elements.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = imglyKit; SDKROOT = macosx; @@ -1497,6 +1509,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -1523,7 +1536,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; @@ -1559,6 +1572,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -1578,7 +1592,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; @@ -1593,6 +1607,7 @@ 2BF4D39B1AF1139600C801B2 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = NO; CLANG_ENABLE_MODULES = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; @@ -1601,8 +1616,9 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = "imglyKit/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MARKETING_VERSION = 1.0.0; PRODUCT_BUNDLE_IDENTIFIER = "com.9elements.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = imglyKit; SKIP_INSTALL = YES; @@ -1613,6 +1629,7 @@ 2BF4D39C1AF1139600C801B2 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = NO; CLANG_ENABLE_MODULES = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; @@ -1621,8 +1638,9 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = "imglyKit/Supporting Files/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MARKETING_VERSION = 1.0.0; PRODUCT_BUNDLE_IDENTIFIER = "com.9elements.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = imglyKit; SKIP_INSTALL = YES; diff --git a/imglyKit.xcodeproj/xcshareddata/xcschemes/imglyKit OSX.xcscheme b/imglyKit.xcodeproj/xcshareddata/xcschemes/imglyKit OSX.xcscheme index db3e824..c47c0eb 100755 --- a/imglyKit.xcodeproj/xcshareddata/xcschemes/imglyKit OSX.xcscheme +++ b/imglyKit.xcodeproj/xcshareddata/xcschemes/imglyKit OSX.xcscheme @@ -1,6 +1,6 @@ - - - - - - - - #elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED) #import -#import #endif #import static const int kDimension = 64; static NSData *identityLUT; +#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) +@interface NSImage (CGImage) + +// Implemented in NSImageExtension.swift +- (CGImageRef)CGImage; + +@end +#endif + @implementation LUTToNSDataConverter + (nullable NSData *)colorCubeDataFromLUTNamed:(nonnull NSString *)name interpolatedWithIdentityLUTNamed:(nonnull NSString *)identityName withIntensity:(float)intensity cacheIdentityLUT:(BOOL)shouldCache { diff --git a/imglyKit/Backend/Processing/Response Filters/IMGLYResponseFilter.swift b/imglyKit/Backend/Processing/Response Filters/IMGLYResponseFilter.swift index d20130a..e3feca0 100755 --- a/imglyKit/Backend/Processing/Response Filters/IMGLYResponseFilter.swift +++ b/imglyKit/Backend/Processing/Response Filters/IMGLYResponseFilter.swift @@ -12,6 +12,9 @@ import CoreImage #elseif os(OSX) import QuartzCore #endif +#if SWIFT_PACKAGE +import imglyKit_ObjC +#endif @objc public protocol IMGLYFilterTypeProtocol { var filterType: IMGLYFilterType { get } diff --git a/imglyKit/Frontend/Camera/IMGLYCameraViewController.swift b/imglyKit/Frontend/Camera/IMGLYCameraViewController.swift index 0276522..b6f01fe 100755 --- a/imglyKit/Frontend/Camera/IMGLYCameraViewController.swift +++ b/imglyKit/Frontend/Camera/IMGLYCameraViewController.swift @@ -490,7 +490,7 @@ open class IMGLYCameraViewController: UIViewController { if let cameraController = self?.cameraController { return cameraController.effectFilter.filterType } else { - return .none + return IMGLYFilterType.none } } } diff --git a/imglyKit/Supporting Files/Info.plist b/imglyKit/Supporting Files/Info.plist index 09bc972..ca23c84 100755 --- a/imglyKit/Supporting Files/Info.plist +++ b/imglyKit/Supporting Files/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.1.0 + $(MARKETING_VERSION) CFBundleSignature ???? CFBundleVersion diff --git a/imglyKit2.podspec b/imglyKit2.podspec index 8edea36..49fca86 100755 --- a/imglyKit2.podspec +++ b/imglyKit2.podspec @@ -1,24 +1,23 @@ Pod::Spec.new do |s| s.name = "imglyKit2" - s.version = "1.2.0" + s.version = ENV["LIB_VERSION"] || "1.0.0" s.license = { :type => 'Copyright', :file => 'LICENSE' } s.summary = "Creates stunning images with a nice selection of premium filters." s.homepage = "https://github.com/ky1vstar/imgly-sdk-ios-2" s.social_media_url = 'https://twitter.com/9elements' - s.authors = { '9elements GmbH' => 'contact@9elements.com', 'ky1vstar' => 'ky1vstar@ex.ua' } + s.authors = { '9elements GmbH' => 'contact@9elements.com', 'ky1vstar' => 'general@ky1vstar.dev' } s.source = { :git => 'https://github.com/ky1vstar/imgly-sdk-ios-2.git', :tag => s.version.to_s } - s.module_name = 'imglyKit' - s.header_dir = 'imglyKit' + s.module_name = 'imglyKit' + s.header_dir = 'imglyKit' - s.ios.deployment_target = '8.0' + s.ios.deployment_target = '9.0' s.osx.deployment_target = '10.10' s.requires_arc = true + s.swift_version = '5.0' - s.swift_version = '5.0' - - s.ios.source_files = ['imglyKit/Backend/**/*.{h,m,swift}', 'imglyKit/Frontend/**/*.{h,m,swift}'] - s.osx.source_files = ['imglyKit/Backend/**/*.{h,m,swift}'] + s.ios.source_files = ['imglyKit/Backend/**/*.{h,m,swift}', 'imglyKit/Frontend/**/*.{h,m,swift}'] + s.osx.source_files = ['imglyKit/Backend/**/*.{h,m,swift}'] s.ios.resources = ['imglyKit/Frontend/Assets.xcassets', 'imglyKit/Frontend/en.lproj/Localizable.strings', 'imglyKit/Backend/Filter Responses/*.png', 'imglyKit/Backend/Fonts/*'] s.osx.resources = ['imglyKit/Backend/Filter Responses/*.png', 'imglyKit/Backend/Fonts/*'] diff --git a/scripts/carthage.sh b/scripts/carthage.sh new file mode 100755 index 0000000..fa44975 --- /dev/null +++ b/scripts/carthage.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# carthage.sh +# Usage example: ./carthage.sh build --platform iOS + +set -euo pipefail + +xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX) +trap 'rm -f "$xcconfig"' INT TERM HUP EXIT + +# For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise +# the build will fail on lipo due to duplicate architectures. +echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig +echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig + +export XCODE_XCCONFIG_FILE="$xcconfig" +carthage "$@" \ No newline at end of file