Ticket #220: gnumake.diff

File gnumake.diff, 3.9 KB (added by rudi, 13 years ago)

Diff for qmake/generators/os2/gnumake.cpp

  • gnumake.cpp

     
    423423    if (!project->first("PRECOMPILED_HEADER").isEmpty()
    424424        && project->isActiveConfig("precompile_header")) {
    425425        QString preCompHeader = var("PRECOMPILED_DIR")
    426                          + QFileInfo(project->first("PRECOMPILED_HEADER")).fileName();
     426                         + QFileInfo(project->first("PRECOMPILED_HEADER")).fileName();
    427427        preCompHeaderOut = preCompHeader + ".gch";
    428428        project->values("QMAKE_CLEAN").append(preCompHeaderOut + Option::dir_sep + "c");
    429429        project->values("QMAKE_CLEAN").append(preCompHeaderOut + Option::dir_sep + "c++");
    430430
    431431        project->values("QMAKE_RUN_CC").clear();
    432             project->values("QMAKE_RUN_CC").append("$(CC) -c -include " + preCompHeader +
     432            project->values("QMAKE_RUN_CC").append("$(CC) -c -include " + preCompHeader +
    433433                                               " $(CFLAGS) $(INCPATH) -o $obj $src");
    434434        project->values("QMAKE_RUN_CC_IMP").clear();
    435435        project->values("QMAKE_RUN_CC_IMP").append("$(CC)  -c -include " + preCompHeader +
     
    563563void GNUMakefileGenerator::writeRcAndDefVariables(QTextStream &t)
    564564{
    565565    if (!project->isEmpty("RC_FILE")) {
    566         t << "RC_FILE       = " << escapeFilePath(var("RC_FILE")) << endl;
     566        QString rcFile = fileFixify(var("RC_FILE"), Option::output_dir,
     567                                    qmake_getpwd(), FileFixifyRelative);
     568        t << "RC_FILE       = " << escapeFilePath(rcFile) << endl;
    567569    }
    568570    if (!project->isEmpty("RES_FILE")) {
    569571        t << "RES_FILE      = " << valList(escapeFilePaths(project->values("RES_FILE"))) << endl;
     
    638640            fprintf(stderr, "Please specify one of them, not both.");
    639641            exit(1);
    640642        }
    641         project->values("RES_FILE").prepend(escapeFilePath(QString("$(OBJECTS_DIR)") +
     643        project->values("RES_FILE").prepend(escapeFilePath(QString("$(OBJECTS_DIR)") +
    642644                                                           QDir::separator() +
    643645                                                           QFileInfo(var("RC_FILE")).baseName() +
    644646                                                           ".res"));
    645         project->values("CLEAN_FILES") += "$(RES_FILE)";
     647        project->values("CLEAN_FILES") += "$(RES_FILE)";
    646648    }
    647649
    648650    if (!project->isEmpty("RES_FILE"))
     
    712714        fileName += "." + var("BUILD_NAME");
    713715    }
    714716    fileName += ".rsp";
     717
    715718    QString filePath = project->first("OBJECTS_DIR");
    716719    if (filePath.isEmpty())
    717         filePath = Option::output_dir;
    718     filePath = Option::fixPathToTargetOS(filePath + QDir::separator() + fileName);
    719     return filePath;
     720        fileName = fileFixify(fileName, Option::output_dir,
     721                              qmake_getpwd(), FileFixifyRelative);
     722    else
     723        fileName = Option::fixPathToTargetOS(filePath + '/' + fileName);
     724
     725    return fileName;
    720726}
    721727
    722728void GNUMakefileGenerator::createCompilerResponseFiles(QTextStream &t)
     
    736742        if (!rspVar.isEmpty()) {
    737743            QString fileName = makeResponseFileName(vars[i]);
    738744            t << rspVar.leftJustified(14) << "= " << fileName << endl;
    739             QFile file(fileName);
     745            QFile file(Option::output_dir + fileName);
    740746            if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
    741747                QTextStream rt(&file);
    742748                if (!qstrcmp(vars[i], "CFLAGS")) {
     
    767773    if (!var.isEmpty()) {
    768774        QString fileName = makeResponseFileName("OBJECTS");
    769775        t << var.leftJustified(14) << "= " << fileName << endl;
    770         QFile file(fileName);
     776        QFile file(Option::output_dir + fileName);
    771777        if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
    772778            QTextStream rt(&file);
    773779            rt << varGlue("OBJECTS", QString::null, "\n", "\n");