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

📄 unixmake2.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                                                project->first("OBJECTS_DIR")) + ddir));    t << "dist: " << "\n\t"      << mkdir_p_asstring(ddir_c) << "\n\t"      << "$(COPY_FILE) --parents $(SOURCES) $(DIST) " << ddir_c << Option::dir_sep << " && ";    if(!project->isEmpty("QMAKE_EXTRA_COMPILERS")) {        const QStringList &quc = project->values("QMAKE_EXTRA_COMPILERS");        for(QStringList::ConstIterator it = quc.begin(); it != quc.end(); ++it) {            const QStringList &var = project->values((*it)+".input");            for(QStringList::ConstIterator var_it = var.begin(); var_it != var.end(); ++var_it) {                const QStringList &val = project->values((*var_it));                if(val.isEmpty())                    continue;                t << "$(COPY_FILE) --parents " << val.join(" ") << " " << ddir_c << Option::dir_sep << " && ";            }        }    }    if(!project->isEmpty("TRANSLATIONS"))        t << "$(COPY_FILE) --parents " << var("TRANSLATIONS") << " " << ddir_c << Option::dir_sep << " && ";    t << "(cd `dirname " << ddir_c << "` && "      << "$(TAR) " << packageName << ".tar " << ddir << " && "      << "$(COMPRESS) " << packageName << ".tar) && "      << "$(MOVE) `dirname " << ddir_c << "`" << Option::dir_sep << packageName << ".tar.gz . && "      << "$(DEL_FILE) -r " << ddir_c      << endl << endl;    t << endl;    QString clean_targets = "compiler_clean " + var("CLEAN_DEPS");    if(do_incremental) {        t << "incrclean:" << "\n";        if(src_incremental)            t << "\t-$(DEL_FILE) $(INCREMENTAL_OBJECTS)" << "\n";        t << endl;    }    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")) {        QStringList precomp_files;        QString precomph_out_dir;        if(!project->isEmpty("PRECOMPILED_DIR"))            precomph_out_dir = project->first("PRECOMPILED_DIR");        precomph_out_dir += project->first("QMAKE_ORIG_TARGET") + project->first("QMAKE_PCH_OUTPUT_EXT");        if (project->isActiveConfig("icc_pch_style")) {            // icc style            QString pchBaseName = project->first("QMAKE_ORIG_TARGET");            QString pchOutput;            if(!project->isEmpty("PRECOMPILED_DIR"))                pchOutput = project->first("PRECOMPILED_DIR");            pchOutput += pchBaseName + project->first("QMAKE_PCH_OUTPUT_EXT");            QString sourceFile = pchOutput + Option::cpp_ext.first();            QString objectFile = createObjectList(QStringList(sourceFile)).first();            precomp_files << precomph_out_dir << sourceFile << objectFile;        } else {            // gcc style            precomph_out_dir += Option::dir_sep;            QString header_prefix = project->first("QMAKE_PRECOMP_PREFIX");            if(!project->isEmpty("QMAKE_CFLAGS_PRECOMPILE"))                precomp_files += precomph_out_dir + header_prefix + "c";            if(!project->isEmpty("QMAKE_CXXFLAGS_PRECOMPILE"))                precomp_files += precomph_out_dir + header_prefix + "c++";            if(project->isActiveConfig("objective_c")) {                if(!project->isEmpty("QMAKE_OBJCFLAGS_PRECOMPILE"))                    precomp_files += precomph_out_dir + header_prefix + "objective-c";                if(!project->isEmpty("QMAKE_OBJCXXFLAGS_PRECOMPILE"))                    precomp_files += precomph_out_dir + header_prefix + "objective-c++";            }        }        t << "-$(DEL_FILE) " << precomp_files.join(" ") << "\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->values("SUBLIBS").isEmpty()) {        QString libdir = "tmp/";        if(!project->isEmpty("SUBLIBS_DIR"))            libdir = project->first("SUBLIBS_DIR");        QStringList &l = project->values("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")) {        QString bundlePath = escapeFilePath(destdir + project->first("QMAKE_BUNDLE"));        t << "\t-$(DEL_FILE) -r " << bundlePath << endl;    } else if(project->isActiveConfig("compile_libtool")) {        t << "\t-$(LIBTOOL) --mode=clean $(DEL_FILE) " << "$(TARGET)" << endl;    } else if(!project->isActiveConfig("staticlib") && project->values("QMAKE_APP_FLAG").isEmpty() &&       !project->isActiveConfig("plugin")) {        t << "\t-$(DEL_FILE) " << destdir << "$(TARGET)" << " " << endl          << "\t-$(DEL_FILE) " << destdir << "$(TARGET0) " << destdir << "$(TARGET1) "          << destdir << "$(TARGET2) $(TARGETA)" << endl;    } else {        t << "\t-$(DEL_FILE) " << "$(TARGET)" << " " << endl;    }    t << varGlue("QMAKE_DISTCLEAN","\t-$(DEL_FILE) "," ","\n");    {        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 pchInput = project->first("PRECOMPILED_HEADER");        t << "###### Prefix headers" << endl;        QString comps[] = { "C", "CXX", "OBJC", "OBJCXX", QString() };        for(int i = 0; !comps[i].isNull(); i++) {            QString pchFlags = var("QMAKE_" + comps[i] + "FLAGS_PRECOMPILE");            if(pchFlags.isEmpty())                continue;            QString cflags;            if(comps[i] == "OBJC" || comps[i] == "OBJCXX")                cflags += " $(CFLAGS)";            else                cflags += " $(" + comps[i] + "FLAGS)";            QString pchBaseName = project->first("QMAKE_ORIG_TARGET");            QString pchOutput;            if(!project->isEmpty("PRECOMPILED_DIR"))                pchOutput = project->first("PRECOMPILED_DIR");            pchOutput += pchBaseName + project->first("QMAKE_PCH_OUTPUT_EXT");            if (project->isActiveConfig("icc_pch_style")) {                // icc style                QString sourceFile = pchOutput + Option::cpp_ext.first();                QString objectFile = createObjectList(QStringList(sourceFile)).first();                t << pchOutput << ": " << pchInput << " " << findDependencies(pchInput).join(" \\\n\t\t")                  << "\n\techo \"// Automatically generated, do not modify\" > " << sourceFile                  << "\n\trm -f " << pchOutput;                pchFlags = pchFlags.replace("${QMAKE_PCH_TEMP_SOURCE}", sourceFile)                           .replace("${QMAKE_PCH_TEMP_OBJECT}", objectFile);            } else {                // gcc style                QString header_prefix = project->first("QMAKE_PRECOMP_PREFIX");                pchOutput += Option::dir_sep;                QString pchOutputDir = pchOutput, pchOutputFile;                if(comps[i] == "C") {                    pchOutputFile = "c";                } else if(comps[i] == "CXX") {                    pchOutputFile = "c++";                } else if(project->isActiveConfig("objective_c")) {                    if(comps[i] == "OBJC")                        pchOutputFile = "objective-c";                    else if(comps[i] == "OBJCXX")                        pchOutputFile = "objective-c++";                }                if(pchOutputFile.isEmpty())                    continue;                pchOutput += header_prefix + pchOutputFile;                t << pchOutput << ": " << pchInput << " " << findDependencies(pchInput).join(" \\\n\t\t")                  << "\n\t" << mkdir_p_asstring(pchOutputDir);            }            pchFlags = pchFlags.replace("${QMAKE_PCH_INPUT}", pchInput)                       .replace("${QMAKE_PCH_OUTPUT_BASE}", pchBaseName)                       .replace("${QMAKE_PCH_OUTPUT}", pchOutput);            QString compiler;            if(comps[i] == "C" || comps[i] == "OBJC" || comps[i] == "OBJCXX")                compiler = "$(CC)";            else                compiler = "$(CXX)";            // compile command            t << "\n\t" << compiler << cflags << " $(INCPATH) " << pchFlags << endl << endl;        }    }    writeExtraTargets(t);    writeExtraCompilerTargets(t);}void UnixMakefileGenerator::init2(){    //version handling    if(project->isEmpty("VERSION"))        project->values("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->values("VER_MAJ").append(l[0]);    project->values("VER_MIN").append(l[1]);    project->values("VER_PAT").append(l[2]);    if(project->isEmpty("QMAKE_FRAMEWORK_VERSION"))        project->values("QMAKE_FRAMEWORK_VERSION").append(project->values("VER_MAJ").first());    if (!project->values("QMAKE_APP_FLAG").isEmpty()) {        if(!project->isEmpty("QMAKE_BUNDLE")) {            QString bundle_loc = project->first("QMAKE_BUNDLE_LOCATION");            if(!bundle_loc.isEmpty() && !bundle_loc.startsWith("/"))                bundle_loc.prepend("/");            if(!bundle_loc.endsWith("/"))                bundle_loc += "/";            project->values("TARGET").first().prepend(project->first("QMAKE_BUNDLE") + bundle_loc);        }        if(!project->isEmpty("TARGET"))            project->values("TARGET").first().prepend(project->first("DESTDIR"));       if (!project->values("QMAKE_CYGWIN_EXE").isEmpty())            project->values("TARGET_EXT").append(".exe");    } else if (project->isActiveConfig("staticlib")) {        project->values("TARGET").first().prepend("lib");        project->values("TARGET").first() += ".a";        if(project->values("QMAKE_AR_CMD").isEmpty())            project->values("QMAKE_AR_CMD").append("$(AR) $(TARGET) $(OBJECTS)");    } else {        project->values("TARGETA").append(project->first("DESTDIR") + "lib" + project->first("TARGET") + ".a");        if(project->isActiveConfig("compile_libtool"))            project->values("TARGET_la") = QStringList(project->first("DESTDIR") + "lib" + project->first("TARGET") + Option::libtool_ext);        if (!project->values("QMAKE_AR_CMD").isEmpty())            project->values("QMAKE_AR_CMD").first().replace("(TARGET)","(TARGETA)");        else            project->values("QMAKE_AR_CMD").append("$(AR) $(TARGETA) $(OBJECTS)");        if(project->isActiveConfig("compile_libtool")) {            project->values("TARGET") = project->values("TARGET_la");        } else if(!project->isEmpty("QMAKE_BUNDLE")) {            QString bundle_loc = project->first("QMAKE_BUNDLE_LOCATION");            if(!bundle_loc.isEmpty() && !bundle_loc.startsWith("/"))                bundle_loc.prepend("/");            if(!bundle_loc.endsWith("/"))                bundle_loc += "/";            project->values("TARGET_").append(project->first("QMAKE_BUNDLE") +                                                   bundle_loc + unescapeFilePath(project->first("TARGET")));            project->values("TARGET_x.y").append(project->first("QMAKE_BUNDLE") +                                                      "/Versions/" +

⌨️ 快捷键说明

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