Package.swift 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. ]
  66. )