generateMainFiles()

in src/langs/cpp/package_info.js [124:161]


  generateMainFiles() {
    let param_scope = _toSnakeCase(this.config.scope);
    let param_package = _avoidKeywords(_toSnakeCase(this.config.name));
    let template;
    if (this.config.withTest) {
      template = fs.readFileSync(path.join(__dirname, './files/main/CMakeLists.txt.test.tmpl'), 'utf-8');
      let tests_main_path = path.join(this.config.dir, 'tests/main.cpp');
      if (!fs.existsSync(tests_main_path)) {
        this.renderAuto(
          path.join(__dirname, './files/main/tests.main.cpp.tmpl'),
          tests_main_path, {
            test_code: this.renderTestCode()
          }
        );
      }
      template = _render(template, {
        with_test: _render(fs.readFileSync(path.join(__dirname, './files/main/with_test.CMakeLists.txt.tmpl'), 'utf-8'), {
          param_scope,
          param_package,
        }),
        param_import: this.imports.join(' ')
      });
    } else if (this.config.exec) {
      template = fs.readFileSync(path.join(__dirname, './files/main/CMakeLists.txt.exec.tmpl'), 'utf-8');
      template = _render(template, { with_test: '' });
    } else {
      template = fs.readFileSync(path.join(__dirname, './files/main/CMakeLists.txt.tmpl'), 'utf-8');
      template = _render(template, { with_test: '' });
    }
    this.renderContent(
      template,
      path.join(this.config.dir, 'CMakeLists.txt'), {
        param_scope,
        param_package,
        param_import: this.imports.join(' ')
      }
    );
  }