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

📄 pbuilder_pbx.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                              << "\t\t\t" << writeSettings("remoteRef", keyFor(pbxproj + "_WRAPPERREF")) << ";" << "\n"                              << "\t\t\t" << writeSettings("sourceTree", "BUILT_PRODUCTS_DIR", SettingsNoQuote) << ";" << "\n"                              << "\t\t" << "};" << "\n";                            t << "\t\t" << keyFor(pbxproj + "_WRAPPERREF") << " = {" << "\n"                              << "\t\t\t" << writeSettings("containerPortal", project_key) << ";" << "\n"                              << "\t\t\t" << writeSettings("isa", "PBXContainerItemProxy", SettingsNoQuote) << ";" << "\n"                              << "\t\t\t" << writeSettings("proxyType", "2") << ";" << "\n"//                              << "\t\t\t" << writeSettings("remoteGlobalIDString", keyFor(pbxproj + "QMAKE_PBX_REFERENCE")) << ";" << "\n"                              << "\t\t\t" << writeSettings("remoteGlobalIDString", keyFor(pbxproj + "QMAKE_PBX_REFERENCE!!!")) << ";" << "\n"                              << "\t\t\t" << writeSettings("remoteInfo", tmp_proj.first("TARGET")) << ";" << "\n"                              << "\t\t" << "};" << "\n";                            //PRODUCTGROUP                            t << "\t\t" << keyFor(pbxproj + "_PRODUCTGROUP") << " = {" << "\n"                              << "\t\t\t" << writeSettings("children", project->values(pbxproj + "_WRAPPER"), SettingsAsList, 4) << ";" << "\n"                              << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"                              << "\t\t\t" << writeSettings("name", "Products") << ";" << "\n"                              << "\t\t\t" << writeSettings("refType", "4", SettingsNoQuote) << ";" << "\n"                              << "\t\t\t" << writeSettings("sourceTree", "<group>") << ";" << "\n"                              << "\t\t" << "};" << "\n";                        }#ifdef GENERATE_AGGREGRATE_SUBDIR                        //TARGET (for aggregate)                        {                            //container                            const QString container_proxy = keyFor(pbxproj + "_CONTAINERPROXY");                            t << "\t\t" << container_proxy << " = {" << "\n"                              << "\t\t\t" << writeSettings("containerPortal", project_key) << ";" << "\n"                              << "\t\t\t" << writeSettings("isa", "PBXContainerItemProxy", SettingsNoQuote) << ";" << "\n"                              << "\t\t\t" << writeSettings("proxyType", "1") << ";" << "\n"                              << "\t\t\t" << writeSettings("remoteGlobalIDString", keyFor(pbxproj + "QMAKE_PBX_TARGET")) << ";" << "\n"                              << "\t\t\t" << writeSettings("remoteInfo", tmp_proj.first("TARGET")) << ";" << "\n"                              << "\t\t" << "};" << "\n";                            //targetref                            t << "\t\t" << keyFor(pbxproj + "_TARGETREF") << " = {" << "\n"                              << "\t\t\t" << writeSettings("isa", "PBXTargetDependency", SettingsNoQuote) << ";" << "\n"                              << "\t\t\t" << writeSettings("name", fixForOutput(tmp_proj.first("TARGET") +" (from " + tmp_proj.first("TARGET") + projectSuffix() + ")")) << ";" << "\n"                              << "\t\t\t" << writeSettings("targetProxy", container_proxy) << ";" << "\n"                              << "\t\t" << "};" << "\n";                        }#endif                    }                }            nextfile:                qmake_setpwd(oldpwd);            }        }    }    qDeleteAll(pb_subdirs);    pb_subdirs.clear();    for(QMap<QString, QStringList>::Iterator grp_it = groups.begin(); grp_it != groups.end(); ++grp_it) {        t << "\t\t" << keyFor(grp_it.key()) << " = {" << "\n"          << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"          << "\t\t\t" << writeSettings("children", grp_it.value(), SettingsAsList, 4) << ";" << "\n"          << "\t\t\t" << writeSettings("name", escapeFilePath(grp_it.key().section(Option::dir_sep, -1))) << ";" << "\n"          << "\t\t\t" << writeSettings("refType", "4", SettingsNoQuote) << ";" << "\n"          << "\t\t" << "};" << "\n";    }    //DUMP EVERYTHING THAT TIES THE ABOVE TOGETHER    //BUILDSTYLE    QString active_buildstyle;    for(int as_release = 0; as_release < 2; as_release++)    {        QMap<QString, QString> settings;        settings.insert("COPY_PHASE_STRIP", (as_release ? "YES" : "NO"));        if(as_release)            settings.insert("GCC_GENERATE_DEBUGGING_SYMBOLS", "NO");        if(project->isActiveConfig("sdk") && !project->isEmpty("QMAKE_MAC_SDK"))            settings.insert("SDKROOT", project->first("QMAKE_MAC_SDK"));        {            const QStringList &l = project->values("QMAKE_MAC_XCODE_SETTINGS");            for(int i = 0; i < l.size(); ++i) {                QString name = l.at(i);                const QString value = project->values(name + QLatin1String(".value")).join(QString(Option::field_sep));                if(!project->isEmpty(name + QLatin1String(".name")))                    name = project->values(name + QLatin1String(".name")).first();                settings.insert(name, value);            }        }        QString name;        if(pbVersion >= 42)            name = (as_release ? "Release" : "Debug");        else            name = (as_release ? "Deployment" : "Development");        if(pbVersion >= 42) {            QString key = keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_" + name);            project->values("QMAKE_SUBDIR_PBX_BUILDCONFIGS").append(key);            t << "\t\t" << key << " = {" << "\n"              << "\t\t\t" << writeSettings("isa", "XCBuildConfiguration", SettingsNoQuote) << ";" << "\n"              << "\t\t\t" << "buildSettings = {" << "\n";            for(QMap<QString, QString>::Iterator set_it = settings.begin(); set_it != settings.end(); ++set_it)                t << "\t\t\t\t" << writeSettings(set_it.key(), set_it.value()) << ";" << "\n";            t << "\t\t\t" << "};" << "\n"              << "\t\t\t" << writeSettings("name", name) << ";" << "\n"              << "\t\t" << "};" << "\n";        }        QString key = keyFor("QMAKE_SUBDIR_PBX_BUILDSTYLE_" + name);        if(project->isActiveConfig("debug") != (bool)as_release) {            project->values("QMAKE_SUBDIR_PBX_BUILDSTYLES").append(key);            active_buildstyle = name;        } else if(pbVersion >= 42) {            project->values("QMAKE_SUBDIR_PBX_BUILDSTYLES").append(key);        }        t << "\t\t" << key << " = {" << "\n"          << "\t\t\t" << writeSettings("buildRules", QStringList(), SettingsAsList, 4) << ";" << "\n"          << "\t\t\t" << "buildSettings = {" << "\n";        for(QMap<QString, QString>::Iterator set_it = settings.begin(); set_it != settings.end(); ++set_it)            t << "\t\t\t\t" << writeSettings(set_it.key(), set_it.value()) << ";\n";        t << "\t\t\t" << "};" << "\n"          << "\t\t\t" << writeSettings("isa", "PBXBuildStyle", SettingsNoQuote) << ";" << "\n"          << "\t\t\t" << writeSettings("name", name) << ";" << "\n"          << "\t\t" << "};" << "\n";    }    if(pbVersion >= 42) {        t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_LIST") << " = {" << "\n"          << "\t\t\t" << writeSettings("isa", "XCConfigurationList", SettingsNoQuote) << ";" << "\n"          << "\t\t\t" << writeSettings("buildConfigurations", project->values("QMAKE_SUBDIR_PBX_BUILDCONFIGS"), SettingsAsList, 4) << ";" << "\n"          << "\t\t\t" << writeSettings("defaultConfigurationIsVisible", "0", SettingsNoQuote) << ";" << "\n"          << "\t\t\t" << writeSettings("defaultConfigurationIsName", active_buildstyle) << ";" << "\n"          << "\t\t" << "};" << "\n";    }#ifdef GENERATE_AGGREGRATE_SUBDIR    //target    t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_AGGREGATE_TARGET") << " = {" << "\n"      << "\t\t\t" << writeSettings("buildPhases", QStringList(), SettingsAsList, 4) << ";" << "\n"      << "\t\t\t" << "buildSettings = {" << "\n"      << "\t\t\t\t" << writeSettings("PRODUCT_NAME",  project->values("TARGET").first()) << ";" << "\n"      << "\t\t\t" << "};" << "\n";    {        QStringList dependencies;        const QStringList &qmake_subdirs = project->values("QMAKE_PBX_SUBDIRS");        for(int i = 0; i < qmake_subdirs.count(); i++)            dependencies += keyFor(qmake_subdirs[i] + "_TARGETREF");        t << "\t\t\t" << writeSettings("dependencies", dependencies, SettingsAsList, 4) << ";" << "\n"    }    t << "\t\t\t" << writeSettings("isa", "PBXAggregateTarget", SettingsNoQuote) << ";" << "\n"      << "\t\t\t" << writeSettings("name", project->values("TARGET").first()) << ";" << "\n"      << "\t\t\t" << writeSettings("productName", project->values("TARGET").first()) << ";" << "\n"      << "\t\t" << "};" << "\n";#endif    //ROOT_GROUP    t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_ROOT_GROUP") << " = {" << "\n"      << "\t\t\t" << writeSettings("children", project->values("QMAKE_SUBDIR_PBX_GROUPS"), SettingsAsList, 4) << ";" << "\n"      << "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";" << "\n"      << "\t\t\t" << writeSettings("refType", "4", SettingsNoQuote) << ";" << "\n"      << "\t\t\t" << writeSettings("sourceTree", "<group>") << ";" << "\n"      << "\t\t" << "};" << "\n";    //ROOT    t << "\t\t" << keyFor("QMAKE_SUBDIR_PBX_ROOT") << " = {" << "\n"      << "\t\t\t" << "buildSettings = {" << "\n"      << "\t\t\t" << "};" << "\n"      << "\t\t\t" << writeSettings("buildStyles", project->values("QMAKE_SUBDIR_PBX_BUILDSTYLES"), SettingsAsList, 4) << ";" << "\n"      << "\t\t\t" << writeSettings("isa", "PBXProject", SettingsNoQuote) << ";" << "\n"      << "\t\t\t" << writeSettings("mainGroup", keyFor("QMAKE_SUBDIR_PBX_ROOT_GROUP")) << ";" << "\n"      << "\t\t\t" << writeSettings("projectDirPath", QStringList()) << ";" << "\n";    if(pbVersion >= 42)        t << "\t\t\t" << writeSettings("buildConfigurationList", keyFor("QMAKE_SUBDIR_PBX_BUILDCONFIG_LIST")) << ";" << "\n";    t << "\t\t\t" << "projectReferences = (" << "\n";    {        QStringList &qmake_subdirs = project->values("QMAKE_PBX_SUBDIRS");        for(int i = 0; i < qmake_subdirs.count(); i++) {            QString subdir = qmake_subdirs[i];            t << "\t\t\t\t" << "{" << "\n"              << "\t\t\t\t\t" << writeSettings("ProductGroup", keyFor(subdir + "_PRODUCTGROUP")) << ";" << "\n"              << "\t\t\t\t\t" << writeSettings("ProjectRef", keyFor(subdir + "_PROJECTREF")) << ";" << "\n"              << "\t\t\t\t" << "}," << "\n";        }    }    t << "\t\t\t" << ");" << "\n"      << "\t\t\t" << writeSettings("targets",#ifdef GENERATE_AGGREGRATE_SUBDIR                                 project->values("QMAKE_SUBDIR_AGGREGATE_TARGET"),#else                                 QStringList(),#endif                                   SettingsAsList, 4) << ";" << "\n"      << "\t\t" << "};" << "\n";    //FOOTER    t << "\t" << "};" << "\n"      << "\t" << writeSettings("rootObject", keyFor("QMAKE_SUBDIR_PBX_ROOT")) << ";" << "\n"      << "}" << endl;    return true;}class ProjectBuilderSources{    bool buildable, object_output;    QString key, group, compiler;public:    ProjectBuilderSources(const QString &key, bool buildable=false, const QString &group=QString(), const QString &compiler=QString(), bool producesObject=false);    QStringList files(QMakeProject *project) const;    inline bool isBuildable() const { return buildable; }    inline QString keyName() const { return key; }    inline QString groupName() const { return group; }    inline QString compilerName() const { return compiler; }    inline bool isObjectOutput(const QString &file) const {        bool ret = object_output;        for(int i = 0; !ret && i < Option::c_ext.size(); ++i) {            if(file.endsWith(Option::c_ext.at(i))) {                ret = true;                break;            }        }        for(int i = 0; !ret && i < Option::cpp_ext.size(); ++i) {            if(file.endsWith(Option::cpp_ext.at(i))) {                ret = true;                break;            }        }        return ret;    }};ProjectBuilderSources::ProjectBuilderSources(const QString &k, bool b,                                             const QString &g, const QString &c, bool o) : buildable(b), object_output(o), key(k), group(g), compiler(c){    if(group.isNull()) {        if(k == "SOURCES")            group = "Sources";        else if(k == "HEADERS")            group = "Headers";        else if(k == "QMAKE_INTERNAL_INCLUDED_FILES")            group = "Sources [qmake]";        else if(k == "GENERATED_SOURCES" || k == "GENERATED_FILES")            group = "Temporary Sources";

⌨️ 快捷键说明

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