Skip to content

Commit a14f6eb

Browse files
authored
Merge pull request #28 from SDWebImage/swiftpm
Support Swift Package Manager (with libwebp v1.1.0-rc2)
2 parents f173266 + 6724998 commit a14f6eb

File tree

9 files changed

+94
-14
lines changed

9 files changed

+94
-14
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,8 @@ fastlane/test_output
6464
# After new code Injection tools there's a generated folder /iOSInjectionProject
6565
# https://github.com/johnno1962/injectionforxcode
6666

67-
iOSInjectionProject/
67+
iOSInjectionProject/
68+
69+
# SwiftPM
70+
.swiftpm
71+
.build

.travis.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
language: objective-c
2-
osx_image: xcode9.4
2+
osx_image: xcode11.2
33

44
env:
55
global:
@@ -15,10 +15,9 @@ notifications:
1515
before_install:
1616
- env
1717
- locale
18-
- gem install cocoapods --no-rdoc --no-ri --no-document --quiet
19-
- gem install xcpretty --no-rdoc --no-ri --no-document --quiet
18+
- gem install cocoapods --no-document --quiet
19+
- gem install xcpretty --no-document --quiet
2020
- pod --version
21-
- pod setup --silent > /dev/null
2221
- pod repo update --silent
2322
- xcpretty --version
2423
- xcodebuild -version
@@ -32,13 +31,15 @@ script:
3231

3332
- echo Build example
3433
- pod install --project-directory=Example
35-
- xcodebuild build clean -workspace SDWebImageWebPCoder.xcworkspace -scheme SDWebImageWebPCoderExample -sdk iphonesimulator -destination 'name=iPhone 6s' -configuration Debug | xcpretty -c
34+
- xcodebuild build clean -workspace SDWebImageWebPCoder.xcworkspace -scheme SDWebImageWebPCoderExample -sdk iphonesimulator -destination 'name=iPhone 11 Pro' -configuration Debug | xcpretty -c
3635

36+
- echo Clean DerivedData
37+
- rm -rf ~/Library/Developer/Xcode/DerivedData/
3738
- mkdir DerivedData
3839

3940
- echo Run the tests
4041
- pod install --project-directory=SDWebImageWebPCoderTests
41-
- xcodebuild test -workspace SDWebImageWebPCoder.xcworkspace -scheme 'SDWebImageWebPCoderTests' -sdk iphonesimulator -destination 'name=iPhone 6s' -configuration Debug | xcpretty -c
42+
- xcodebuild clean test -workspace SDWebImageWebPCoder.xcworkspace -scheme 'SDWebImageWebPCoderTests' -sdk iphonesimulator -destination 'name=iPhone 11 Pro' -configuration Debug -UseModernBuildSystem=NO | xcpretty -c
4243
- mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/iOS
4344

4445
after_success:

Package.resolved

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// swift-tools-version:5.0
2+
// The swift-tools-version declares the minimum version of Swift required to build this package.
3+
4+
import PackageDescription
5+
6+
let package = Package(
7+
name: "SDWebImageWebPCoder",
8+
platforms: [
9+
.macOS(.v10_10), .iOS(.v8), .tvOS(.v9), .watchOS(.v2)
10+
],
11+
products: [
12+
// Products define the executables and libraries produced by a package, and make them visible to other packages.
13+
.library(
14+
name: "SDWebImageWebPCoder",
15+
targets: ["SDWebImageWebPCoder"]),
16+
],
17+
dependencies: [
18+
// Dependencies declare other packages that this package depends on.
19+
// .package(url: /* package url */, from: "1.0.0"),
20+
.package(url: "https://github.com/SDWebImage/SDWebImage.git", from: "5.1.0"),
21+
.package(url: "https://github.com/SDWebImage/libwebp-Xcode.git", from: Version(1, 1, 0, prereleaseIdentifiers: ["-rc.2"]))
22+
],
23+
targets: [
24+
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
25+
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
26+
.target(
27+
name: "SDWebImageWebPCoder",
28+
dependencies: ["SDWebImage", "libwebp"],
29+
path: ".",
30+
sources: ["SDWebImageWebPCoder/Classes"],
31+
publicHeadersPath: "SDWebImageWebPCoder/Classes"
32+
)
33+
]
34+
)

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
[![Version](https://img.shields.io/cocoapods/v/SDWebImageWebPCoder.svg?style=flat)](http://cocoapods.org/pods/SDWebImageWebPCoder)
55
[![License](https://img.shields.io/cocoapods/l/SDWebImageWebPCoder.svg?style=flat)](http://cocoapods.org/pods/SDWebImageWebPCoder)
66
[![Platform](https://img.shields.io/cocoapods/p/SDWebImageWebPCoder.svg?style=flat)](http://cocoapods.org/pods/SDWebImageWebPCoder)
7+
[![SwiftPM compatible](https://img.shields.io/badge/SwiftPM-compatible-brightgreen.svg?style=flat)](https://swift.org/package-manager/)
78
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/SDWebImage/SDWebImageWebPCoder)
89

910
Starting with the SDWebImage 5.0 version, we moved the WebP support code and [libwebp](https://github.com/webmproject/libwebp) from the Core Repo to this stand-alone repo.
@@ -35,6 +36,18 @@ SDWebImageWebPCoder is available through [Carthage](https://github.com/Carthage/
3536
github "SDWebImage/SDWebImageWebPCoder"
3637
```
3738

39+
#### Swift Package Manager (Xcode 11+)
40+
41+
SDWebImageWebPCoder is available through [Swift Package Manager](https://swift.org/package-manager).
42+
43+
```swift
44+
let package = Package(
45+
dependencies: [
46+
.package(url: "https://github.com/SDWebImage/SDWebImageWebPCoder.git", from: "0.3.0")
47+
]
48+
)
49+
```
50+
3851
## Usage
3952

4053
### Add Coder

SDWebImageWebPCoder/Classes/SDImageWebPCoder.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66
* file that was distributed with this source code.
77
*/
88

9+
#if __has_include(<SDWebImage/SDWebImage.h>)
910
#import <SDWebImage/SDWebImage.h>
11+
#else
12+
@import SDWebImage;
13+
#endif
1014

1115
/**
1216
Built in coder that supports WebP and animated WebP

SDWebImageWebPCoder/Classes/SDImageWebPCoder.m

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@
77
*/
88

99
#import "SDImageWebPCoder.h"
10-
#import <SDWebImage/SDImageCoderHelper.h>
11-
#if __has_include(<SDWebImage/NSImage+Compatibility.h>)
12-
#import <SDWebImage/NSImage+Compatibility.h>
13-
#endif
14-
#import <SDWebImage/UIImage+Metadata.h>
15-
#import <SDWebImage/UIImage+ForceDecode.h>
1610

1711
#if __has_include("webp/decode.h") && __has_include("webp/encode.h") && __has_include("webp/demux.h") && __has_include("webp/mux.h")
1812
#import "webp/decode.h"
@@ -24,6 +18,8 @@
2418
#import <libwebp/encode.h>
2519
#import <libwebp/demux.h>
2620
#import <libwebp/mux.h>
21+
#else
22+
@import libwebp;
2723
#endif
2824

2925
#import <Accelerate/Accelerate.h>

SDWebImageWebPCoder/Classes/UIImage+WebP.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66
* file that was distributed with this source code.
77
*/
88

9+
#if __has_include(<SDWebImage/SDWebImage.h>)
910
#import <SDWebImage/SDWebImage.h>
11+
#else
12+
@import SDWebImage;
13+
#endif
1014

1115
// This category is just use as a convenience method. For more detail control, use methods in `UIImage+MultiFormat.h` or directlly use `SDImageCoder`
1216
@interface UIImage (WebP)

SDWebImageWebPCoderTests/SDWebImageWebPCoderTests.m

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ - (void)test31AnimatedImageViewSetAnimatedImageWEBP {
105105
SDAnimatedImage *image = [SDAnimatedImage imageWithData:animatedImageData];
106106
imageView.image = image;
107107
XCTAssertNotNil(imageView.image);
108-
XCTAssertNotNil(imageView.currentFrame); // current frame
109108
}
110109

111110
- (void)test32AnimatedImageViewCategoryProgressive {

0 commit comments

Comments
 (0)