addInclude()

in src/langs/cpp/combinator.js [91:115]


  addInclude(className) {
    let realFullClassName, includeFileName, using;
    const dependencies = this.dependencies;
    if (_contain(className, '$')) {
      realFullClassName = this.coreClass(className);
      includeFileName = `<${_toSnakeCase(this.config.tea.name)}/${_toSnakeCase(this.config.tea.header)}>`;
    } else if (dependencies[className]) {
      const info = dependencies[className];
      // is third package
      let scope = _toSnakeCase(_name(info.scope));
      let client = _toSnakeCase(_name(info.package_name));
      includeFileName = `<${scope}/${client}.${this.config.header_ext}>`;
      realFullClassName = `${_upperFirst(_name(info.scope))}_${_upperFirst(_name(info.package_name))}::Client`;
      using = null;
    } else {
      debug.stack(`Class Name Error : ${className}`, dependencies);
    }
    if (!this.classNameMap[realFullClassName]) {
      const include = { import: realFullClassName, includeFileName, using };
      this.classNameMap[realFullClassName] = include;
      this.includeList.push(include);
    }

    return realFullClassName;
  }