def METHOD_NAME(configFileList, templateFile, outputFile=None ):
  variableDeclarationList = ''
  variableDeclarationSet = set()
  for _file in configFileList:
    p = Path(_file)
    p = p.resolve()
    moduleConfig = json.loads( p.read_text() )
    string = ''
    if 'Variables Configuration' in moduleConfig: 
      for v in moduleConfig["Variables Configuration"]:
        varName = vr.getCXXVariableName(v["Name"])
        if (not varName in variableDeclarationSet):
          string += '/**\n'
          string += '* @brief [Module: ' + moduleConfig["Module Data"]["Class Name"] + '] ' + v["Description"] + '\n'
          string += '*/\n'
          string += '  ' + vr.getVariableType(v) + ' ' + varName + ';\n'
          variableDeclarationSet.add(varName)
    variableDeclarationList += string
  variableHeaderTemplatePath = Path(templateFile)
  variableHeaderTemplateString = variableHeaderTemplatePath.read_text()
  variableHeaderString = variableHeaderTemplateString.replace('// Variable Declaration List', variableDeclarationList)
  if outputFile == None:
    filePath = variableHeaderTemplatePath.with_suffix('.hpp')
  else:
    filePath = Path(outputFile)
  filePath = filePath.resolve()
  # if does not exist create  the path of filePath
  try:
      filePath.parents[0].mkdir(parents=True, exist_ok=False)
  except FileExistsError:
      pass
  # Check if the new version will produce a different result 
  doSave = True
  if (os.path.isfile(filePath)):
   with open(filePath, 'r') as file:
    prevString = file.read()
   if (prevString == variableHeaderString):
    doSave = False
  if (doSave): filePath.write_text(variableHeaderString)