ensureIosPackageSwift function
void
ensureIosPackageSwift(
- String pluginName, {
- 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")])');
}