⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unixmake2.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    }    t << "clean:" << clean_targets << "\n\t";    if(!project->isEmpty("OBJECTS")) {        if(project->isActiveConfig("compile_libtool"))            t << "-$(LIBTOOL) --mode=clean $(DEL_FILE) $(OBJECTS)" << "\n\t";        else            t << "-$(DEL_FILE) $(OBJECTS)" << "\n\t";    }    if(doPrecompiledHeaders() && !project->isEmpty("PRECOMPILED_HEADER")) {        QString header_prefix = project->first("QMAKE_PRECOMP_PREFIX");        QString precomph_out_dir;        if(!project->isEmpty("OBJECTS_DIR"))            precomph_out_dir = project->first("OBJECTS_DIR");        precomph_out_dir += project->first("QMAKE_ORIG_TARGET") + ".gch" + Option::dir_sep;        t << "-$(DEL_FILE) " << precomph_out_dir << header_prefix + "c "          << precomph_out_dir << header_prefix << "c++" << "\n\t";    }    if(!project->isEmpty("IMAGES"))        t << varGlue("QMAKE_IMAGE_COLLECTION", "\t-$(DEL_FILE) ", " ", "") << "\n\t";    if(src_incremental)        t << "-$(DEL_FILE) $(INCREMENTAL_OBJECTS)" << "\n\t";    t << varGlue("QMAKE_CLEAN","-$(DEL_FILE) "," ","\n\t")      << "-$(DEL_FILE) *~ core *.core" << "\n"      << varGlue("CLEAN_FILES","\t-$(DEL_FILE) "," ","") << endl << endl;    t << "####### Sub-libraries" << endl << endl;    if (!project->variables()["SUBLIBS"].isEmpty()) {        QString libdir = "tmp/";        if(!project->isEmpty("SUBLIBS_DIR"))            libdir = project->first("SUBLIBS_DIR");        QStringList &l = project->variables()["SUBLIBS"];        for(it = l.begin(); it != l.end(); ++it)            t << libdir << "lib" << (*it) << ".a" << ":\n\t"              << var(QString("MAKELIB") + (*it)) << endl << endl;    }    QString destdir = project->first("DESTDIR");    if(!destdir.isEmpty() && destdir.right(1) != Option::dir_sep)        destdir += Option::dir_sep;    t << "distclean: " << "clean\n";    if(!project->isEmpty("QMAKE_BUNDLE_NAME"))        t << "\t-$(DEL_FILE) -r " << destdir << project->first("QMAKE_BUNDLE_NAME") << endl;    else if(project->isActiveConfig("compile_libtool"))        t << "\t-$(LIBTOOL) --mode=clean $(DEL_FILE) " << "$(TARGET)" << endl;    else        t << "\t-$(DEL_FILE) " << "$(TARGET)" << " " << endl;    if(!project->isActiveConfig("staticlib") && project->variables()["QMAKE_APP_FLAG"].isEmpty() &&       !project->isActiveConfig("plugin") && !project->isActiveConfig("compile_libtool"))        t << "\t-$(DEL_FILE) " << destdir << "$(TARGET0) " << destdir << "$(TARGET1) "          << destdir << "$(TARGET2) $(TARGETA)" << endl;    {        QString ofile = Option::fixPathToTargetOS(fileFixify(Option::output.fileName()));        if(!ofile.isEmpty())            t << "\t-$(DEL_FILE) " << ofile << endl;    }    t << endl << endl;    if(doPrecompiledHeaders() && !project->isEmpty("PRECOMPILED_HEADER")) {        QString precomph = fileFixify(project->first("PRECOMPILED_HEADER"));        t << "###### Prefix headers" << endl;        QString comps[] = { "C", "CXX", QString() };        for(int i = 0; !comps[i].isNull(); i++) {            QString flags = var("QMAKE_" + comps[i] + "FLAGS_PRECOMPILE");            flags += " $(" + comps[i] + "FLAGS)";            QString header_prefix = project->first("QMAKE_PRECOMP_PREFIX");            QString outdir;            if(!project->isEmpty("OBJECTS_DIR"))                outdir = project->first("OBJECTS_DIR");            outdir += project->first("QMAKE_ORIG_TARGET") + ".gch" + Option::dir_sep;            QString compiler, outfile = outdir;            if(comps[i] == "C") {                outfile += header_prefix + "c";                compiler = "$(CC) ";            } else {                outfile += header_prefix + "c++";                compiler = "$(CXX) ";            }            t << outfile << ": " << precomph << " " << findDependencies(precomph).join(" \\\n\t\t")              << "\n\t" << mkdir_p_asstring(outdir)              << "\n\t" << compiler << flags << " $(INCPATH) " << precomph << " -o " << outfile << endl << endl;        }    }    writeExtraTargets(t);    writeExtraCompilerTargets(t);}void UnixMakefileGenerator::init2(){    //version handling    if(project->variables()["VERSION"].isEmpty())        project->variables()["VERSION"].append("1.0." +                                               (project->isEmpty("VER_PAT") ? QString("0") :                                                project->first("VER_PAT")));    QStringList l = project->first("VERSION").split('.');    l << "0" << "0"; //make sure there are three    project->variables()["VER_MAJ"].append(l[0]);    project->variables()["VER_MIN"].append(l[1]);    project->variables()["VER_PAT"].append(l[2]);    if(project->isEmpty("QMAKE_FRAMEWORK_VERSION"))        project->variables()["QMAKE_FRAMEWORK_VERSION"].append(project->variables()["VER_MAJ"].first());    if (!project->variables()["QMAKE_APP_FLAG"].isEmpty()) {        if(!project->isEmpty("QMAKE_BUNDLE_NAME"))            project->variables()["TARGET"].first().prepend(project->first("QMAKE_BUNDLE_NAME") +                                                          "/Contents/MacOS/");        if(!project->isEmpty("TARGET"))            project->variables()["TARGET"].first().prepend(project->first("DESTDIR"));       if (!project->variables()["QMAKE_CYGWIN_EXE"].isEmpty())            project->variables()["TARGET_EXT"].append(".exe");    } else if (project->isActiveConfig("staticlib")) {        project->variables()["TARGET"].first().prepend("lib");        project->variables()["TARGET"].first() += ".a";        if(project->variables()["QMAKE_AR_CMD"].isEmpty())            project->variables()["QMAKE_AR_CMD"].append("$(AR) $(TARGET) $(OBJECTS)");    } else {        project->variables()["TARGETA"].append(project->first("DESTDIR") + "lib" + project->first("TARGET") + ".a");        if(project->isActiveConfig("compile_libtool"))            project->variables()["TARGET_la"] = QStringList(project->first("DESTDIR") + "lib" + project->first("TARGET") + Option::libtool_ext);        if (!project->variables()["QMAKE_AR_CMD"].isEmpty())            project->variables()["QMAKE_AR_CMD"].first().replace("(TARGET)","(TARGETA)");        else            project->variables()["QMAKE_AR_CMD"].append("$(AR) $(TARGETA) $(OBJECTS)");        if(project->isActiveConfig("compile_libtool")) {            project->variables()["TARGET"] = project->variables()["TARGET_la"];        } else if(project->isActiveConfig("plugin")) {            QString prefix;            if(!project->isActiveConfig("no_plugin_name_prefix"))                prefix = "lib";            project->variables()["TARGET_x.y.z"].append(prefix +                                                        project->first("TARGET") + "." +                                                        project->first("QMAKE_EXTENSION_PLUGIN"));            if(project->isActiveConfig("lib_version_first"))                project->variables()["TARGET_x"].append(prefix + project->first("TARGET") + "." +                                                        project->first("VER_MAJ") + "." +                                                        project->first("QMAKE_EXTENSION_PLUGIN"));            else                project->variables()["TARGET_x"].append(prefix + project->first("TARGET") + "." +                                                        project->first("QMAKE_EXTENSION_PLUGIN") +                                                        "." + project->first("VER_MAJ"));            project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"];        } else if (!project->isEmpty("QMAKE_HPUX_SHLIB")) {            project->variables()["TARGET_"].append("lib" + project->first("TARGET") + ".sl");            if(project->isActiveConfig("lib_version_first"))                project->variables()["TARGET_x"].append("lib" + project->first("VER_MAJ") + "." +                                                        project->first("TARGET"));            else                project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +                                                        project->first("VER_MAJ"));            project->variables()["TARGET"] = project->variables()["TARGET_x"];        } else if (!project->isEmpty("QMAKE_AIX_SHLIB")) {            project->variables()["TARGET_"].append("lib" + project->first("TARGET") + ".a");            if(project->isActiveConfig("lib_version_first")) {                project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +                                                        project->first("VER_MAJ") + "." +                                                        project->first("QMAKE_EXTENSION_SHLIB"));                project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +                                                          project->first("VER_MAJ") +                                                          "." + project->first("VER_MIN") + "." +                                                          project->first("QMAKE_EXTENSION_SHLIB"));                project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." +                                                            project->first("VER_MAJ") + "." +                                                            project->first("VER_MIN") + "." +                                                            project->first("VER_PAT") + "." +                                                            project->first("QMAKE_EXTENSION_SHLIB"));            } else {                project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +                                                        project->first("QMAKE_EXTENSION_SHLIB") +                                                        "." + project->first("VER_MAJ"));                project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +                                                          project->first("QMAKE_EXTENSION_SHLIB") +                                                          "." + project->first("VER_MAJ") +                                                          "." + project->first("VER_MIN"));                project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." +                                                            project->first("QMAKE_EXTENSION_SHLIB") + "." +                                                            project->first("VER_MAJ") + "." +                                                            project->first("VER_MIN") + "." +                                                            project->first("VER_PAT"));            }            project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"];        } else if (!project->isEmpty("QMAKE_BUNDLE_NAME")) {            project->variables()["TARGET_"].append(project->first("QMAKE_BUNDLE_NAME") +                                                   "/" + project->first("TARGET"));            project->variables()["TARGET_x.y"].append(project->first("QMAKE_BUNDLE_NAME") +                                                      "/Versions/" +                                                      project->first("QMAKE_FRAMEWORK_VERSION") +                                                      "/" + project->first("TARGET"));        } else {            project->variables()["TARGET_"].append("lib" + project->first("TARGET") + "." +                                                   project->first("QMAKE_EXTENSION_SHLIB"));            if(project->isActiveConfig("lib_version_first")) {                project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +                                                        project->first("VER_MAJ") + "." +                                                        project->first("QMAKE_EXTENSION_SHLIB"));                project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +                                                          project->first("VER_MAJ") +                                                          "." + project->first("VER_MIN") + "." +                                                          project->first("QMAKE_EXTENSION_SHLIB"));                project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." +                                                            project->first("VER_MAJ") + "." +                                                            project->first("VER_MIN") +  "." +                                                            project->first("VER_PAT") + "." +                                                            project->variables()["QMAKE_EXTENSION_SHLIB"].first());            } else {                project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +                                                        project->first("QMAKE_EXTENSION_SHLIB") +                                                        "." + project->first("VER_MAJ"));                project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +                                                      project->first("QMAKE_EXTENSION_SHLIB")                                                      + "." + project->first("VER_MAJ") +                                                      "." + project->first("VER_MIN"));                project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") +                                                            "." +                                                            project->variables()[                                                                "QMAKE_EXTENSION_SHLIB"].first() + "." +                                                            project->first("VER_MAJ") + "." +                                                            project->first("VER_MIN") +  "." +                                                            project->first("VER_PAT"));            }            project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"];        }        if(project->isEmpty("QMAKE_LN_SHLIB"))            project->variables()["QMAKE_LN_SHLIB"].append("ln -s");        if (!project->variables()["QMAKE_LFLAGS_SONAME"].isEmpty()) {            QString soname;            if(project->isActiveConfig("plugin")) {                if(!project->variables()["TARGET"].isEmpty())                    soname += project->first("TARGET");            } else if(!project->isEmpty("QMAKE_BUNDLE_NAME")) {                soname += project->first("TARGET_x.y");            } else if(!project->variables()["TARGET_x"].isEmpty()) {                soname += project->first("TARGET_x");            }            if(!soname.isEmpty()) {                if(project->isActiveConfig("absolute_library_soname") &&                   project->values("INSTALLS").indexOf("target") != -1 &&                   !project->isEmpty("target.path")) {                    QString instpath = Option::fixPathToTargetOS(project->first("target.path"));                    if(!instpath.endsWith(Option::dir_sep))                        instpath += Option::dir_sep;                    soname.prepend(instpath);                }                project->variables()["QMAKE_LFLAGS_SONAME"].first() += soname;            }        }        if (project->variables()["QMAKE_LINK_SHLIB_CMD"].isEmpty())            project->variables()["QMAKE_LINK_SHLIB_CMD"].append(                "$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) $(OBJCOMP)");    }    if (!project->variables()["QMAKE_APP_FLAG"].isEmpty()) {        project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_APP"];        project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_APP"];        project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_APP"];    } else if (project->isActiveConfig("dll")) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -