Package.swift 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. // swift-tools-version:5.1
  2. // The swift-tools-version declares the minimum version of Swift required to build this package.
  3. import PackageDescription
  4. let package = Package(
  5. name: "KeePass",
  6. products: [
  7. // The `Binary` manipulate bytes with ease.
  8. .library(
  9. name: "Binary",
  10. targets: ["Binary"]),
  11. // `Crypto` defines cryptographic interfaces used by KeePass.
  12. .library(
  13. name: "Crypto",
  14. targets: ["Crypto"]),
  15. // `KeePass` library defines interfaces to work with KeePass files.
  16. .library(
  17. name: "KeePass",
  18. targets: ["KeePass"]),
  19. ],
  20. targets: [
  21. .target(
  22. name: "KeePass",
  23. dependencies: [ "Binary",
  24. "KDB",
  25. "KDBX"]),
  26. .target(
  27. name: "KDB",
  28. dependencies: [ "Binary",
  29. "Crypto"]),
  30. .target(
  31. name: "KDBX",
  32. dependencies: [ "Binary",
  33. "Crypto",
  34. "Gzip",
  35. "XML"]),
  36. .target(
  37. name: "Binary",
  38. dependencies: []),
  39. .target(
  40. name: "Crypto",
  41. dependencies: [ "Binary",
  42. "Sodium",
  43. "Argon2",
  44. "Twofish"]),
  45. .target(
  46. name: "Gzip",
  47. dependencies: ["Binary"]),
  48. .target(
  49. name: "XML",
  50. dependencies: []),
  51. // MARK: KeePass cryptographic libraries
  52. .target(
  53. name: "Sodium",
  54. dependencies: [],
  55. cSettings: [
  56. .headerSearchPath("include/sodium"),
  57. .define("CONFIGURED")
  58. ]),
  59. .target(
  60. name: "Argon2",
  61. dependencies: []),
  62. .target(
  63. name: "Twofish",
  64. dependencies: []),
  65. // MARK: Test Targets
  66. .testTarget(
  67. name: "KeePassTests",
  68. dependencies: ["KeePass"]),
  69. .testTarget(
  70. name: "BinaryTests",
  71. dependencies: ["Binary"]),
  72. .testTarget(
  73. name: "CryptoTests",
  74. dependencies: ["Crypto"]),
  75. ]
  76. )