ensureIosPackageSwift function

void ensureIosPackageSwift(
  1. String pluginName, {
  2. String baseDir = '.',
})

Implementation

void ensureIosPackageSwift(String pluginName, {String baseDir = '.'}) {
  final packageSwift = File(p.join(baseDir, 'ios', 'Package.swift'));
  if (packageSwift.existsSync()) return;
  final className = pluginName.split('_').map((w) => w.isEmpty ? '' : w[0].toUpperCase() + w.substring(1)).join('');
  Directory(p.join(baseDir, 'ios', 'Sources', className)).createSync(recursive: true);
  Directory(p.join(baseDir, 'ios', 'Sources', '${className}Cpp')).createSync(recursive: true);
  packageSwift.writeAsStringSync(
      '// swift-tools-version: 5.9\nimport PackageDescription\nlet package = Package(name: "$pluginName", platforms: [.iOS(.v13)], products: [.library(name: "$pluginName", targets: ["$pluginName"])], targets: [.target(name: "${className}Cpp", path: "Sources/${className}Cpp", publicHeadersPath: "include", cxxSettings: [.headerSearchPath("include"), .unsafeFlags(["-std=c++17", "-I../../.symlinks/plugins/nitro/src/native"])]), .target(name: "$pluginName", dependencies: ["${className}Cpp"], path: "Sources/$className")])');
}