linkLinuxCppImplStubs function

void linkLinuxCppImplStubs(
  1. List<ModuleInfo> moduleInfos, {
  2. String baseDir = '.',
})

Creates a Linux-specific C++ impl starter stub for every Linux-C++ module, mirroring linkWindowsCppImplStubs. Writing this stub does NOT by itself make Linux use it instead of the shared src/HybridXxx.cpp — that's a separate, opt-in decision (see hasCustomPlatformImpl and ModuleInfo.linuxRequestsSeparateImpl, read by _linkDesktopCMake). Until then it just sits alongside the shared file as an option, same as Windows's stub always has.

Implementation

void linkLinuxCppImplStubs(
  List<ModuleInfo> moduleInfos, {
  String baseDir = '.',
}) {
  for (final m in moduleInfos.where((m) => m.linuxIsCpp)) {
    final className = _toPascalCase(m.lib);
    final linuxSrcDir = Directory(p.join(baseDir, 'linux', 'src'))..createSync(recursive: true);
    final stubFile = File(p.join(linuxSrcDir.path, 'Hybrid$className.cpp'));
    if (stubFile.existsSync()) continue; // never overwrite user code
    stubFile.writeAsStringSync(
      _newPlatformImplContent(
        baseDir: baseDir,
        lib: m.lib,
        className: className,
        requestsSeparateImpl: m.linuxRequestsSeparateImpl,
        genericStubContent: t.linuxCppStubContent(lib: m.lib, className: className),
      ),
    );
  }
}