示例#1
0
文件: dia.cpp 项目: Beachy13/doxygen
void writeDiaGraphFromFile(const char *inFile,const char *outDir,
                           const char *outFile,DiaOutputFormat format)
{
  QCString absOutFile = outDir;
  absOutFile+=portable_pathSeparator();
  absOutFile+=outFile;

  // chdir to the output dir, so dot can find the font file.
  QCString oldDir = QDir::currentDirPath().utf8();
  // go to the html output directory (i.e. path)
  QDir::setCurrent(outDir);
  //printf("Going to dir %s\n",QDir::currentDirPath().data());
  QCString diaExe = Config_getString(DIA_PATH)+"dia"+portable_commandExtension();
  QCString diaArgs;
  QCString extension;
  diaArgs+="-n ";
  if (format==DIA_BITMAP)
  {
    diaArgs+="-t png-libart";
    extension=".png";
  }
  else if (format==DIA_EPS)
  {
    diaArgs+="-t eps";
    extension=".eps";
  }

  diaArgs+=" -e \"";
  diaArgs+=outFile;
  diaArgs+=extension+"\"";

  diaArgs+=" \"";
  diaArgs+=inFile;
  diaArgs+="\"";

  int exitCode;
  //printf("*** running: %s %s outDir:%s %s\n",diaExe.data(),diaArgs.data(),outDir,outFile);
  portable_sysTimerStart();
  if ((exitCode=portable_system(diaExe,diaArgs,FALSE))!=0)
  {
    portable_sysTimerStop();
    goto error;
  }
  portable_sysTimerStop();
  if ( (format==DIA_EPS) && (Config_getBool(USE_PDFLATEX)) )
  {
    QCString epstopdfArgs(maxCmdLine);
    epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"",
                         outFile,outFile);
    portable_sysTimerStart();
    if (portable_system("epstopdf",epstopdfArgs)!=0)
    {
      err("Problems running epstopdf. Check your TeX installation!\n");
    }
    portable_sysTimerStop();
  }

error:
  QDir::setCurrent(oldDir);
}
示例#2
0
void writeMscGraphFromFile(const char *inFile,const char *outDir,
                           const char *outFile,MscOutputFormat format)
{
  QCString absOutFile = outDir;
  absOutFile+=portable_pathSeparator();
  absOutFile+=outFile;

  // chdir to the output dir, so dot can find the font file.
  QCString oldDir = convertToQCString(QDir::currentDirPath());
  // go to the html output directory (i.e. path)
  QDir::setCurrent(outDir);
  //printf("Going to dir %s\n",QDir::currentDirPath().data());
  QCString mscExe = Config_getString("MSCGEN_PATH")+"mscgen"+portable_commandExtension();
  QCString mscArgs;
  QCString extension;
  if (format==MSC_BITMAP)
  {
    mscArgs+="-T png";
    extension=".png";
  }
  else if (format==MSC_EPS)
  {
    mscArgs+="-T eps";
    extension=".eps";
  }
  mscArgs+=" -i \"";
  mscArgs+=inFile;
  mscArgs+=".msc\" -o \"";
  mscArgs+=outFile;
  mscArgs+=extension+"\"";
  int exitCode;
  //printf("*** running: %s %s\n",mscExe.data(),mscArgs.data());
  portable_sysTimerStart();
  if ((exitCode=portable_system(mscExe,mscArgs,FALSE))!=0)
  {
    portable_sysTimerStop();
    goto error;
  }
  portable_sysTimerStop();
  if ( (format==MSC_EPS) && (Config_getBool("USE_PDFLATEX")) )
  {
    QCString epstopdfArgs(maxCmdLine);
    epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"",
                         outFile,outFile);
    portable_sysTimerStart();
    if (portable_system("epstopdf",epstopdfArgs)!=0)
    {
      err("error: Problems running epstopdf. Check your TeX installation!\n");
    }
    portable_sysTimerStop();
  }

error:
  QDir::setCurrent(oldDir);
}
示例#3
0
void writeMscGraphFromFile(const char *inFile,const char *outDir,
                           const char *outFile,MscOutputFormat format)
{
    QCString absOutFile = outDir;
    absOutFile+=portable_pathSeparator();
    absOutFile+=outFile;

    // chdir to the output dir, so dot can find the font file.
    QCString oldDir = QDir::currentDirPath().utf8();
    // go to the html output directory (i.e. path)
    QDir::setCurrent(outDir);
    //printf("Going to dir %s\n",QDir::currentDirPath().data());
    QCString mscExe = Config_getString(MSCGEN_PATH)+"mscgen"+portable_commandExtension();
    QCString mscArgs;
    QCString imgName = outFile;
    switch (format)
    {
    case MSC_BITMAP:
        mscArgs+="-T png";
        imgName+=".png";
        break;
    case MSC_EPS:
        mscArgs+="-T eps";
        imgName+=".eps";
        break;
    case MSC_SVG:
        mscArgs+="-T svg";
        imgName+=".svg";
        break;
    default:
        goto error; // I am not very fond of goto statements, but when in Rome...
    }
    mscArgs+=" -i \"";
    mscArgs+=inFile;

    mscArgs+="\" -o \"";
    mscArgs+=imgName+"\"";
    int exitCode;
//  printf("*** running: %s %s outDir:%s %s\n",mscExe.data(),mscArgs.data(),outDir,outFile);
    portable_sysTimerStart();
    if ((exitCode=portable_system(mscExe,mscArgs,FALSE))!=0)
    {
        portable_sysTimerStop();
        goto error;
    }
    portable_sysTimerStop();
    if ( (format==MSC_EPS) && (Config_getBool(USE_PDFLATEX)) )
    {
        QCString epstopdfArgs(maxCmdLine);
        epstopdfArgs.sprintf("\"%s.eps\" --outfile=\"%s.pdf\"",
                             outFile,outFile);
        portable_sysTimerStart();
        if (portable_system("epstopdf",epstopdfArgs)!=0)
        {
            err("Problems running epstopdf. Check your TeX installation!\n");
        }
        portable_sysTimerStop();
    }

    Doxygen::indexList->addImageFile(imgName);

error:
    QDir::setCurrent(oldDir);
}