windowsCppStubContent function

String windowsCppStubContent({
  1. required String lib,
  2. required String className,
})

Returns the content of a windows/src/Hybrid${className}.cpp stub.

Windows always uses MSVC-compatible static-initializer registration because __attribute__((constructor)) is not available on MSVC.

Implementation

String windowsCppStubContent({
  required String lib,
  required String className,
}) =>
    '// Hybrid$className — WindowsNativeImpl.cpp implementation.\n'
    '// Generated by nitrogen link. Fill in the method bodies.\n'
    '#include "../../lib/src/generated/cpp/$lib.native.g.h"\n'
    '\n'
    '#include <string>\n'
    '\n'
    'class Hybrid${className}Impl final : public Hybrid$className {\n'
    'public:\n'
    '    // TODO: implement all pure-virtual methods declared in Hybrid$className\n'
    '};\n'
    '\n'
    '// MSVC static-initializer auto-registration (no __attribute__((constructor)) on Windows).\n'
    'namespace {\n'
    '  struct _AutoRegister {\n'
    '    _AutoRegister() { ${lib}_register_impl(new Hybrid${className}Impl()); }\n'
    '  };\n'
    '  static _AutoRegister _auto_register_instance;\n'
    '}\n';