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

📄 mingw_make.cpp

📁 qt专门用于嵌入式的图形开发GUI
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	}    }    QString targetfilename = project->variables()["TARGET"].first();    if(project->isActiveConfig("activeqt")) {	QString version = project->variables()["VERSION"].first();	if ( version.isEmpty() )	    version = "1.0";	if ( project->isActiveConfig("dll")) {	    t << "\n\t" << ("-$(IDC) $(TARGET) /idl " + var("OBJECTS_DIR") + targetfilename + ".idl -version " + version);	    t << "\n\t" << ("-$(IDL) /nologo " + var("OBJECTS_DIR") + targetfilename + ".idl /tlb " + var("OBJECTS_DIR") + targetfilename + ".tlb");	    t << "\n\t" << ("-$(IDC) $(TARGET) /tlb " + var("OBJECTS_DIR") + targetfilename + ".tlb");	    t << "\n\t" << ("-$(IDC) $(TARGET) /regserver" );	} else {	    t << "\n\t" << ("-$(TARGET) -dumpidl " + var("OBJECTS_DIR") + targetfilename + ".idl -version " + version);	    t << "\n\t" << ("-$(IDL) /nologo " + var("OBJECTS_DIR") + targetfilename + ".idl /tlb " + var("OBJECTS_DIR") + targetfilename + ".tlb");	    t << "\n\t" << ("-$(IDC) $(TARGET) /tlb " + var("OBJECTS_DIR") + targetfilename + ".tlb");	    t << "\n\t" << "-$(TARGET) -regserver";	}    }    t << endl << endl;    if(!project->variables()["RC_FILE"].isEmpty()) {	t << var("RES_FILE") << ": " << var("RC_FILE") << "\n\t"	  << var("QMAKE_RC") << " -i " << var("RC_FILE") << " -o " << var("RC_FILE").replace(QRegExp("\\.rc"),".o") << " --include-dir=" << QFileInfo(var("RC_FILE")).dirPath() << endl << endl;    }	project->variables()["RES_FILE"].first().replace(QRegExp("\\.rc"),".o");    t << "mocables: $(SRCMOC)" << endl << endl;    t << "$(OBJECTS_DIR):" << "\n\t"      << "@if not exist $(OBJECTS_DIR) $(MKDIR) $(OBJECTS_DIR)" << endl << endl;    t << "$(MOC_DIR):" << "\n\t"      << "@if not exist $(MOC_DIR) $(MKDIR) $(MOC_DIR)" << endl << endl;    writeMakeQmake(t);    t << "dist:" << "\n\t"      << "$(ZIP) " << var("PROJECT") << ".zip "      << var("PROJECT") << ".pro $(SOURCES) $(HEADERS) $(DIST) $(FORMS)" << endl << endl;    t << "clean:"      << varGlue("OBJECTS","\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","").replace(QRegExp("\\.obj"),".o")      << varGlue("SRCMOC" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")      << varGlue("OBJMOC" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","").replace(QRegExp("\\.obj"),".o")      << varGlue("UICDECLS" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")      << varGlue("UICIMPLS" ,"\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")      << "\n\t-$(DEL_FILE) $(TARGET)"      << varGlue("QMAKE_CLEAN","\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","")      << varGlue("CLEAN_FILES","\n\t-$(DEL_FILE) ","\n\t-$(DEL_FILE) ","");    if ( project->isActiveConfig("activeqt")) {	t << ("\n\t-$(DEL_FILE) " + var("OBJECTS_DIR") + targetfilename + ".idl");	t << ("\n\t-$(DEL_FILE) " + var("OBJECTS_DIR") + targetfilename + ".tlb");    }    if(!project->isEmpty("IMAGES"))	t << varGlue("QMAKE_IMAGE_COLLECTION", "\n\t-$(DEL_FILE) ", "\n\t-$(DEL_FILE) ", "");    // user defined targets    QStringList::Iterator it;    QStringList &qut = project->variables()["QMAKE_EXTRA_WIN_TARGETS"];    for(it = qut.begin(); it != qut.end(); ++it) {	QString targ = var((*it) + ".target"),		 cmd = var((*it) + ".commands"), deps;	if(targ.isEmpty())	    targ = (*it);	QStringList &deplist = project->variables()[(*it) + ".depends"];	for(QStringList::Iterator dep_it = deplist.begin(); dep_it != deplist.end(); ++dep_it) {	    QString dep = var((*dep_it) + ".target");	    if(dep.isEmpty())		dep = (*dep_it);	    deps += " " + dep;	}	t << "\n\n" << targ << ":" << deps << "\n\t"	  << cmd;    }    t << endl << endl;    QStringList &quc = project->variables()["QMAKE_EXTRA_WIN_COMPILERS"];    for(it = quc.begin(); it != quc.end(); ++it) {	QString tmp_out = project->variables()[(*it) + ".output"].first();	QString tmp_cmd = project->variables()[(*it) + ".commands"].join(" ");	QString tmp_dep = project->variables()[(*it) + ".depends"].join(" ");	QStringList &vars = project->variables()[(*it) + ".variables"];	if(tmp_out.isEmpty() || tmp_cmd.isEmpty())	    continue;	QStringList &tmp = project->variables()[(*it) + ".input"];	for(QStringList::Iterator it2 = tmp.begin(); it2 != tmp.end(); ++it2) {	    QStringList &inputs = project->variables()[(*it2)];	    for(QStringList::Iterator input = inputs.begin(); input != inputs.end(); ++input) {		QFileInfo fi(Option::fixPathToLocalOS((*input)));		QString in = Option::fixPathToTargetOS((*input), FALSE),		       out = tmp_out, cmd = tmp_cmd, deps;		out.replace("${QMAKE_FILE_BASE}", fi.baseName());		out.replace("${QMAKE_FILE_NAME}", fi.filePath());		cmd.replace("${QMAKE_FILE_BASE}", fi.baseName());		cmd.replace("${QMAKE_FILE_OUT}", out);		cmd.replace("${QMAKE_FILE_NAME}", fi.filePath());		for(QStringList::Iterator it3 = vars.begin(); it3 != vars.end(); ++it3)		    cmd.replace("$(" + (*it3) + ")", "$(QMAKE_COMP_" + (*it3)+")");		if(!tmp_dep.isEmpty()) {		    char buff[256];		    QString dep_cmd = tmp_dep;		    dep_cmd.replace("${QMAKE_FILE_NAME}", fi.filePath());		    if(FILE *proc = QT_POPEN(dep_cmd.latin1(), "r")) {			while(!feof(proc)) {			    int read_in = int(fread(buff, 1, 255, proc));			    if(!read_in)				break;			    int l = 0;			    for(int i = 0; i < read_in; i++) {				if(buff[i] == '\n' || buff[i] == ' ') {				    deps += " " + QCString(buff+l, (i - l) + 1);				    l = i;				}			    }			}			fclose(proc);		    }		}		t << out << ": " << in << deps << "\n\t"		  << cmd << endl << endl;	    }	}    }    t << endl;}voidMingwMakefileGenerator::init(){    if(init_flag)	return;    init_flag = TRUE;    /* this should probably not be here, but I'm using it to wrap the .t files */    if(project->first("TEMPLATE") == "app")	project->variables()["QMAKE_APP_FLAG"].append("1");    else if(project->first("TEMPLATE") == "lib")	project->variables()["QMAKE_LIB_FLAG"].append("1");    else if(project->first("TEMPLATE") == "subdirs") {	MakefileGenerator::init();	if(project->variables()["MAKEFILE"].isEmpty())	    project->variables()["MAKEFILE"].append("Makefile");	if(project->variables()["QMAKE"].isEmpty())	    project->variables()["QMAKE"].append("qmake");	return;    }    if(project->isEmpty("QMAKE_INSTALL_FILE"))	project->variables()["QMAKE_INSTALL_FILE"].append("$(COPY_FILE)");    if(project->isEmpty("QMAKE_INSTALL_DIR"))	project->variables()["QMAKE_INSTALL_DIR"].append("$(COPY_DIR)");    bool is_qt = (project->first("TARGET") == "qt"QTDLL_POSTFIX || project->first("TARGET") == "qt-mt"QTDLL_POSTFIX);    project->variables()["QMAKE_ORIG_TARGET"] = project->variables()["TARGET"];    // LIBS defined in Profile comes first for gcc    project->variables()["QMAKE_LIBS"] += project->variables()["LIBS"];    QString targetfilename = project->variables()["TARGET"].first();    QStringList &configs = project->variables()["CONFIG"];    if (project->isActiveConfig("qt") && project->isActiveConfig("shared"))	project->variables()["DEFINES"].append("QT_DLL");    if (project->isActiveConfig("qt_dll"))	if (configs.findIndex("qt") == -1)	    configs.append("qt");    if ( project->isActiveConfig("qt") ) {	if ( project->isActiveConfig( "plugin" ) ) {	    project->variables()["CONFIG"].append("dll");	    if(project->isActiveConfig("qt"))		project->variables()["DEFINES"].append("QT_PLUGIN");	}	if ( (project->variables()["DEFINES"].findIndex("QT_NODLL") == -1) &&         ((project->variables()["DEFINES"].findIndex("QT_MAKEDLL") != -1 ||           project->variables()["DEFINES"].findIndex("QT_DLL") != -1) ||          (getenv("QT_DLL") && !getenv("QT_NODLL"))) ) {	    project->variables()["QMAKE_QT_DLL"].append("1");	    if ( is_qt && !project->variables()["QMAKE_LIB_FLAG"].isEmpty() )		project->variables()["CONFIG"].append("dll");	}	if ( project->isActiveConfig("thread") ) {            project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_THREAD_SUPPORT");            project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_THREAD"];            project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_THREAD"];            project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_THREAD"];        }	if ( project->isActiveConfig("accessibility" ) )	    project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_ACCESSIBILITY_SUPPORT");	if ( project->isActiveConfig("tablet") )	    project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_TABLET_SUPPORT");    }    if ( project->isActiveConfig("dll") || !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) {	project->variables()["CONFIG"].remove("staticlib");	project->variables()["QMAKE_APP_OR_DLL"].append("1");    } else {	project->variables()["CONFIG"].append("staticlib");    }    if ( project->isActiveConfig("warn_off") ) {	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_WARN_OFF"];	project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_WARN_OFF"];    } else if ( project->isActiveConfig("warn_on") ) {	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_WARN_ON"];	project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_WARN_ON"];    }    if ( project->isActiveConfig("debug") ) {        if ( project->isActiveConfig("thread") ) {	    // use the DLL RT even here	    if ( project->variables()["DEFINES"].contains("QT_DLL") ) {		project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT_DLLDBG"];		project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT_DLLDBG"];	    } else {		project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT_DBG"];		project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT_DBG"];	    }	}	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_DEBUG"];	project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_DEBUG"];	project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_DEBUG"];    } else {	if ( project->isActiveConfig("thread") ) {	    if ( project->variables()["DEFINES"].contains("QT_DLL") ) {		project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT_DLL"];		project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT_DLL"];	    } else {		project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_MT"];		project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_MT"];	    }	}	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RELEASE"];

⌨️ 快捷键说明

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