From 6625dc016c8c0352acb660f87cd7414b05c0502f Mon Sep 17 00:00:00 2001 From: fwcd Date: Mon, 24 Feb 2020 17:11:12 +0100 Subject: [PATCH] Add Swift package --- Readme.markdown | 2 +- swift/.gitignore | 5 +++ swift/Package.swift | 31 +++++++++++++++++++ .../QRCodeGenerator/QRCodeGenerator.swift | 3 ++ swift/Tests/LinuxMain.swift | 7 +++++ .../QRCodeGeneratorTests.swift | 15 +++++++++ .../XCTestManifests.swift | 9 ++++++ 7 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 swift/.gitignore create mode 100644 swift/Package.swift create mode 100644 swift/Sources/QRCodeGenerator/QRCodeGenerator.swift create mode 100644 swift/Tests/LinuxMain.swift create mode 100644 swift/Tests/QRCodeGeneratorTests/QRCodeGeneratorTests.swift create mode 100644 swift/Tests/QRCodeGeneratorTests/XCTestManifests.swift diff --git a/Readme.markdown b/Readme.markdown index d28e31c..e6b09c5 100644 --- a/Readme.markdown +++ b/Readme.markdown @@ -15,7 +15,7 @@ Features Core features: -* Available in 6 programming languages, all with nearly equal functionality: Java, TypeScript/JavaScript, Python, Rust, C++, C +* Available in 7 programming languages, all with nearly equal functionality: Java, TypeScript/JavaScript, Python, Rust, Swift, C++, C * Significantly shorter code but more documentation comments compared to competing libraries * Supports encoding all 40 versions (sizes) and all 4 error correction levels, as per the QR Code Model 2 standard * Output formats: Raw modules/pixels of the QR symbol (all languages), SVG XML string (all languages except C), `BufferedImage` raster bitmap (Java only), HTML5 canvas (TypeScript/JavaScript only) diff --git a/swift/.gitignore b/swift/.gitignore new file mode 100644 index 0000000..69c1f27 --- /dev/null +++ b/swift/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +.build +Packages +*.xcodeproj +xcuserdata/ diff --git a/swift/Package.swift b/swift/Package.swift new file mode 100644 index 0000000..9491e38 --- /dev/null +++ b/swift/Package.swift @@ -0,0 +1,31 @@ +// swift-tools-version:5.1 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "QRCodeGenerator", + products: [ + // Products define the executables and libraries produced by a package, and make them visible to other packages. + .library( + name: "QRCodeGenerator", + targets: ["QRCodeGenerator"] + ), + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages which this package depends on. + .target( + name: "QRCodeGenerator", + dependencies: [] + ), + .testTarget( + name: "QRCodeGeneratorTests", + dependencies: ["QRCodeGenerator"] + ), + ] +) diff --git a/swift/Sources/QRCodeGenerator/QRCodeGenerator.swift b/swift/Sources/QRCodeGenerator/QRCodeGenerator.swift new file mode 100644 index 0000000..b06425f --- /dev/null +++ b/swift/Sources/QRCodeGenerator/QRCodeGenerator.swift @@ -0,0 +1,3 @@ +struct QRCodeGenerator { + var text = "Hello, World!" +} diff --git a/swift/Tests/LinuxMain.swift b/swift/Tests/LinuxMain.swift new file mode 100644 index 0000000..f30e867 --- /dev/null +++ b/swift/Tests/LinuxMain.swift @@ -0,0 +1,7 @@ +import XCTest + +import QRCodeGeneratorTests + +var tests = [XCTestCaseEntry]() +tests += QRCodeGeneratorTests.allTests() +XCTMain(tests) diff --git a/swift/Tests/QRCodeGeneratorTests/QRCodeGeneratorTests.swift b/swift/Tests/QRCodeGeneratorTests/QRCodeGeneratorTests.swift new file mode 100644 index 0000000..54d0cc6 --- /dev/null +++ b/swift/Tests/QRCodeGeneratorTests/QRCodeGeneratorTests.swift @@ -0,0 +1,15 @@ +import XCTest +@testable import QRCodeGenerator + +final class QRCodeGeneratorTests: XCTestCase { + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct + // results. + XCTAssertEqual(QRCodeGenerator().text, "Hello, World!") + } + + static var allTests = [ + ("testExample", testExample), + ] +} diff --git a/swift/Tests/QRCodeGeneratorTests/XCTestManifests.swift b/swift/Tests/QRCodeGeneratorTests/XCTestManifests.swift new file mode 100644 index 0000000..1647e80 --- /dev/null +++ b/swift/Tests/QRCodeGeneratorTests/XCTestManifests.swift @@ -0,0 +1,9 @@ +import XCTest + +#if !canImport(ObjectiveC) +public func allTests() -> [XCTestCaseEntry] { + return [ + testCase(QRCodeGeneratorTests.allTests), + ] +} +#endif