generateCMake function

void generateCMake(
  1. String pluginName,
  2. List<String> moduleLibs,
  3. String nitroNativePath, {
  4. String baseDir = '.',
  5. List<ModuleInfo>? moduleInfos,
})

Implementation

void generateCMake(
  String pluginName,
  List<String> moduleLibs,
  String nitroNativePath, {
  String baseDir = '.',
  List<ModuleInfo>? moduleInfos,
}) {
  final nitroValue =
      nitroNativePathExists(
        r'${CMAKE_CURRENT_SOURCE_DIR}/../../packages/nitro/src/native',
        p.join(baseDir, 'src'),
      )
      ? r'${CMAKE_CURRENT_SOURCE_DIR}/../../packages/nitro/src/native'
      : nitroNativePath.replaceAll(r'\', '/');

  final infos = moduleInfos
      ?.map((m) => (lib: m.lib, module: m.module, isNativeCpp: m.isNativeCpp, isAndroidCpp: m.isAndroidCpp))
      .toList();

  File(p.join(baseDir, 'src', 'CMakeLists.txt')).writeAsStringSync(
    ct.generateCMakeContent(
      pluginName,
      moduleLibs,
      nitroValue,
      moduleInfos: infos,
    ),
  );
}