Merge branch 'manu/swift_package_manager' into 'master'
Xcode: Add support of Swift Package Manager See merge request matrix-org/olm!19
This commit is contained in:
commit
dbbf467075
6 changed files with 81 additions and 4 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
# Xcode
|
# Xcode
|
||||||
build/
|
build/
|
||||||
|
.build/
|
||||||
DerivedData/
|
DerivedData/
|
||||||
*.pbxuser
|
*.pbxuser
|
||||||
!default.pbxuser
|
!default.pbxuser
|
||||||
|
|
52
Package.swift
Normal file
52
Package.swift
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
// swift-tools-version:5.3
|
||||||
|
|
||||||
|
import PackageDescription
|
||||||
|
|
||||||
|
let major = 3, minor = 2, patch = 2
|
||||||
|
|
||||||
|
let package = Package(
|
||||||
|
name: "Olm",
|
||||||
|
platforms: [.iOS(.v8), .macOS(.v10_10)],
|
||||||
|
products: [
|
||||||
|
.library(name: "libolm", targets: ["libolm"]),
|
||||||
|
.library(name: "OLMKit", targets: ["OLMKit"])
|
||||||
|
],
|
||||||
|
targets: [
|
||||||
|
.target(
|
||||||
|
name: "libolm",
|
||||||
|
path: ".",
|
||||||
|
sources: [
|
||||||
|
"src",
|
||||||
|
"lib/crypto-algorithms/aes.c",
|
||||||
|
"lib/crypto-algorithms/sha256.c",
|
||||||
|
"lib/curve25519-donna/curve25519-donna.c"
|
||||||
|
],
|
||||||
|
cSettings: [
|
||||||
|
.headerSearchPath("lib"),
|
||||||
|
.define("OLMLIB_VERSION_MAJOR", to: "\(major)"),
|
||||||
|
.define("OLMLIB_VERSION_MINOR", to: "\(minor)"),
|
||||||
|
.define("OLMLIB_VERSION_PATCH", to: "\(patch)")
|
||||||
|
]
|
||||||
|
),
|
||||||
|
.target(
|
||||||
|
name: "OLMKit",
|
||||||
|
dependencies: ["libolm"],
|
||||||
|
path: "xcode/OLMKit",
|
||||||
|
exclude: ["Info.plist"],
|
||||||
|
cSettings: [
|
||||||
|
.headerSearchPath("..")
|
||||||
|
]
|
||||||
|
),
|
||||||
|
.testTarget(
|
||||||
|
name: "OLMKitTests",
|
||||||
|
dependencies: ["OLMKit"],
|
||||||
|
path: "xcode/OLMKitTests",
|
||||||
|
exclude: ["Info.plist"],
|
||||||
|
cSettings: [
|
||||||
|
.headerSearchPath("..")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
],
|
||||||
|
cLanguageStandard: .c99,
|
||||||
|
cxxLanguageStandard: .cxx11
|
||||||
|
)
|
|
@ -119,7 +119,7 @@ endorsed by the Matrix.org Foundation C.I.C.
|
||||||
## Release process
|
## Release process
|
||||||
|
|
||||||
First: bump version numbers in ``common.mk``, ``CMakeLists.txt``,
|
First: bump version numbers in ``common.mk``, ``CMakeLists.txt``,
|
||||||
``javascript/package.json``, ``python/olm/__version__.py``, ``OLMKit.podspec``,
|
``javascript/package.json``, ``python/olm/__version__.py``, ``OLMKit.podspec``, ``Package.swift``,
|
||||||
and ``android/olm-sdk/build.gradle`` (``versionCode``, ``versionName`` and
|
and ``android/olm-sdk/build.gradle`` (``versionCode``, ``versionName`` and
|
||||||
``version``).
|
``version``).
|
||||||
|
|
||||||
|
|
4
include/module.modulemap
Normal file
4
include/module.modulemap
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
module libolm {
|
||||||
|
header "olm/olm.h"
|
||||||
|
export *
|
||||||
|
}
|
13
xcode/OLMKit/include/module.modulemap
Normal file
13
xcode/OLMKit/include/module.modulemap
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
module OLMKit {
|
||||||
|
header "../OLMAccount.h"
|
||||||
|
header "../OLMSession.h"
|
||||||
|
header "../OLMMessage.h"
|
||||||
|
header "../OLMUtility.h"
|
||||||
|
header "../OLMInboundGroupSession.h"
|
||||||
|
header "../OLMOutboundGroupSession.h"
|
||||||
|
header "../OLMPkEncryption.h"
|
||||||
|
header "../OLMPkDecryption.h"
|
||||||
|
header "../OLMPkSigning.h"
|
||||||
|
header "../OLMSAS.h"
|
||||||
|
export *
|
||||||
|
}
|
|
@ -12,15 +12,22 @@ the latest OLMKit release is::
|
||||||
|
|
||||||
pod 'OLMKit'
|
pod 'OLMKit'
|
||||||
|
|
||||||
|
Or you can use Swift Package Manager with the URL::
|
||||||
|
|
||||||
|
https://gitlab.matrix.org/matrix-org/olm
|
||||||
|
|
||||||
Development
|
Development
|
||||||
-----------
|
-----------
|
||||||
Run `pod install` and open `OLMKit.xcworkspace`.
|
Run `pod install` and open `OLMKit.xcworkspace` with Xcode.
|
||||||
|
|
||||||
The project contains only tests files. The libolm and the Objective-C wrapper source files are loaded via the OLMKit CocoaPods pod.
|
The project contains only tests files. The libolm and the Objective-C wrapper source files are loaded via the OLMKit CocoaPods pod.
|
||||||
|
|
||||||
To add a new source file, add it to the file system and run `pod update` to make CocoaPods insert it into OLMKit.xcworkspace.
|
To add a new source file, add it to the file system and run `pod update` to make CocoaPods insert it into OLMKit.xcworkspace.
|
||||||
|
|
||||||
|
Development alternative
|
||||||
|
-----------------------
|
||||||
|
Based on the Swift package, you can build source files and run tests directly from the command line: `swift test`.
|
||||||
|
|
||||||
Release
|
Release
|
||||||
-------
|
-------
|
||||||
See ../README.rst for the release of the CocoaPod.
|
See ../README.rst for the release of the CocoaPod and the Swift package.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue