Skip to content

Commit ef59da5

Browse files
committed
Add support for Swift Package Manager
1 parent dcacaee commit ef59da5

File tree

6 files changed

+94
-3
lines changed

6 files changed

+94
-3
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,7 @@ Carthage/Build
3434
# `pod install` in .travis.yml
3535
#
3636
Example/Pods
37+
38+
# SwiftPM
39+
.swiftpm
40+
.build

.travis.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Package.resolved

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"object": {
3+
"pins": [
4+
{
5+
"package": "libde265",
6+
"repositoryURL": "https://github.com/SDWebImage/libde265-Xcode.git",
7+
"state": {
8+
"branch": null,
9+
"revision": "39b0430c631669dba8e578a2ececae3a05dbb935",
10+
"version": "1.0.4"
11+
}
12+
},
13+
{
14+
"package": "libheif",
15+
"repositoryURL": "https://github.com/SDWebImage/libheif-Xcode.git",
16+
"state": {
17+
"branch": null,
18+
"revision": "e78f3a9bf4f45f857032029a519adae46170978f",
19+
"version": "1.6.1"
20+
}
21+
},
22+
{
23+
"package": "SDWebImage",
24+
"repositoryURL": "https://github.com/SDWebImage/SDWebImage.git",
25+
"state": {
26+
"branch": null,
27+
"revision": "247f74a5d191e9c6bd601d292c99cf9fe1658930",
28+
"version": "5.4.1"
29+
}
30+
}
31+
]
32+
},
33+
"version": 1
34+
}

Package.swift

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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: "SDWebImageHEIFCoder",
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: "SDWebImageHEIFCoder",
15+
targets: ["SDWebImageHEIFCoder"]),
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/libheif-Xcode.git", from: "1.6.1")
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: "SDWebImageHEIFCoder",
28+
dependencies: ["SDWebImage", "libheif"],
29+
path: ".",
30+
sources: ["SDWebImageHEIFCoder/Classes"],
31+
publicHeadersPath: "SDWebImageHEIFCoder/Classes",
32+
cSettings: [.define("HAVE_LIBDE265")]
33+
)
34+
]
35+
)

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
[![Version](https://img.shields.io/cocoapods/v/SDWebImageHEIFCoder.svg?style=flat)](https://cocoapods.org/pods/SDWebImageHEIFCoder)
55
[![License](https://img.shields.io/cocoapods/l/SDWebImageHEIFCoder.svg?style=flat)](https://cocoapods.org/pods/SDWebImageHEIFCoder)
66
[![Platform](https://img.shields.io/cocoapods/p/SDWebImageHEIFCoder.svg?style=flat)](https://cocoapods.org/pods/SDWebImageHEIFCoder)
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/SDWebImageHEIFCoder)
89

910
## 4.x compatibility
@@ -69,6 +70,20 @@ Carthage does not support like CocoaPods' subspec, since most of user use HEIF d
6970
github "SDWebImage/SDWebImageHEIFCoder"
7071
```
7172

73+
#### Swift Package Manager (Xcode 11+)
74+
75+
SDWebImageHEIFCoder is available through [Swift Package Manager](https://swift.org/package-manager).
76+
77+
The framework through SwiftPM only supports libde265 for HEIF decoding.
78+
79+
```swift
80+
let package = Package(
81+
dependencies: [
82+
.package(url: "https://github.com/SDWebImage/SDWebImageHEIFCoder.git", from: "0.6")
83+
]
84+
)
85+
```
86+
7287
## Usage
7388

7489
To use HEIF coder, you should firstly add the `SDImageHEIFCoder.sharedCoder` to the coders manager. You can also detect the target platform compatibility for HEIF and choose add coder.

SDWebImageHEIFCoder/Classes/SDImageHEIFCoder.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
// Created by lizhuoli on 2018/5/8.
66
//
77

8+
#if __has_include(<SDWebImage/SDWebImage.h>)
89
#import <SDWebImage/SDWebImage.h>
10+
#else
11+
@import SDWebImage;
12+
#endif
913

1014
@interface SDImageHEIFCoder : NSObject <SDImageCoder>
1115

0 commit comments

Comments
 (0)