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

📄 msvc_dsp.cpp

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		    fname.replace(".ui", "");		    int lbs = fname.findRev( "\\" );		    QString fpath;		    if ( lbs != -1 )			fpath = fname.left( lbs + 1 );		    fname = fname.right( fname.length() - lbs - 1 );		    QString mocFile;		    if(!project->variables()["MOC_DIR"].isEmpty())			mocFile = project->first("MOC_DIR");		    else			mocFile = fpath;		    QString uiSourcesDir;		    QString uiHeadersDir;		    if(!project->variables()["UI_DIR"].isEmpty()) {			uiSourcesDir = project->first("UI_DIR");			uiHeadersDir = project->first("UI_DIR");		    } else {			if ( !project->variables()["UI_SOURCES_DIR"].isEmpty() )			    uiSourcesDir = project->first("UI_SOURCES_DIR");			else			    uiSourcesDir = fpath;			if ( !project->variables()["UI_HEADERS_DIR"].isEmpty() )			    uiHeadersDir = project->first("UI_HEADERS_DIR");			else			    uiHeadersDir = fpath;		    }		    t << "USERDEP_" << base << "=\"$(QTDIR)\\bin\\moc.exe\" \"$(QTDIR)\\bin\\uic.exe\"" << endl << endl;		    QString build = "\n\n# Begin Custom Build - Uic'ing " + base + "...\n"			"InputPath=.\\" + base + "\n\n" "BuildCmds= \\\n\t" + uicpath + base +				    " -o " + uiHeadersDir + fname + ".h \\\n" "\t" + uicpath  + base +				    " -i " + fname + ".h -o " + uiSourcesDir + fname + ".cpp \\\n"				    "\t" + mocpath + uiHeadersDir + fname + ".h -o " + mocFile + Option::h_moc_mod + fname + Option::h_moc_ext + " \\\n";		    build.append("\n\"" + uiHeadersDir + fname + ".h\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\""  "\n"				 "\t$(BuildCmds)\n\n"				 "\"" + uiSourcesDir + fname + ".cpp\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n"				 "\t$(BuildCmds)\n\n"				 "\"" + mocFile + Option::h_moc_mod + fname + Option::h_moc_ext + "\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n"				 "\t$(BuildCmds)\n\n");		    build.append("# End Custom Build\n\n");		    t << "!IF  \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - Win32 Release\"" << build		      << "!ELSEIF  \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - Win32 Debug\"" << build		      << "!ENDIF \n\n" << "# End Source File" << endl;		}//		endGroups(t);		t << "\n# End Group\n";	    } else if(variable == "MSVCDSP_LEXSOURCES") {		if(project->variables()["LEXSOURCES"].isEmpty())		    continue;		t << "# Begin Group \"Lexables\"\n"		  << "# Prop Default_Filter \"l\"\n";		QString lexpath = var("QMAKE_LEX") + varGlue("QMAKE_LEXFLAGS", " ", " ", "") + " ";		QStringList list = project->variables()["LEXSOURCES"];		if(!project->isActiveConfig("flat"))		    list.sort();		for(QStringList::Iterator it = list.begin(); it != list.end(); ++it) {		    QString fname = (*it);//		    beginGroupForFile(fname, t);		    t <<  "# Begin Source File\n\nSOURCE=" << fname << endl;		    fname.replace(".l", Option::lex_mod + Option::cpp_ext.first());		    QString build = "\n\n# Begin Custom Build - Lex'ing " + (*it) + "...\n"			"InputPath=.\\" + (*it) + "\n\n"				    "\"" + fname + "\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n"				    "\t" + lexpath + (*it) + "\\\n"				    "\tdel " + fname + "\\\n"				    "\tcopy lex.yy.c " + fname + "\n\n" +				    "# End Custom Build\n\n";		    t << "!IF  \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - Win32 Release\"" << build		      << "!ELSEIF  \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - Win32 Debug\"" << build		      << "!ENDIF \n\n" << build		      << "# End Source File" << endl;		}//		endGroups(t);		t << "\n# End Group\n";	    } else if(variable == "MSVCDSP_YACCSOURCES") {		if(project->variables()["YACCSOURCES"].isEmpty())		    continue;		t << "# Begin Group \"Yaccables\"\n"		  << "# Prop Default_Filter \"y\"\n";		QString yaccpath = var("QMAKE_YACC") + varGlue("QMAKE_YACCFLAGS", " ", " ", "") + " ";		QStringList list = project->variables()["YACCSOURCES"];		if(!project->isActiveConfig("flat"))		    list.sort();		for(QStringList::Iterator it = list.begin(); it != list.end(); ++it) {		    QString fname = (*it);//		    beginGroupForFile(fname, t);		    t <<  "# Begin Source File\n\nSOURCE=" << fname << endl;		    fname.replace(".y", Option::yacc_mod);		    QString build = "\n\n# Begin Custom Build - Yacc'ing " + (*it) + "...\n"			"InputPath=.\\" + (*it) + "\n\n"				    "\"" + fname + Option::cpp_ext.first() + "\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n"				    "\t" + yaccpath + (*it) + "\\\n"				    "\tdel " + fname + Option::h_ext.first() + "\\\n"				    "\tmove y.tab.h " + fname + Option::h_ext.first() + "\n\n" +				    "\tdel " + fname + Option::cpp_ext.first() + "\\\n"				    "\tmove y.tab.c " + fname + Option::cpp_ext.first() + "\n\n" +				    "# End Custom Build\n\n";		    t << "!IF  \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - Win32 Release\"" << build		      << "!ELSEIF  \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - Win32 Debug\"" << build		      << "!ENDIF \n\n"		      << "# End Source File" << endl;		}//		endGroups(t);		t << "\n# End Group\n";	    } else if( variable == "MSVCDSP_CONFIGMODE" ) {		if( project->isActiveConfig( "debug" ) )		    t << "Debug";		else		    t << "Release";	    } else if( variable == "MSVCDSP_IDLSOURCES" ) {		QStringList list = project->variables()["MSVCDSP_IDLSOURCES"];		if(!project->isActiveConfig("flat"))		    list.sort();		for(QStringList::Iterator it = list.begin(); it != list.end(); ++it) {		    t << "# Begin Source File" << endl << endl;		    t << "SOURCE=" << (*it) << endl;		    t << "# PROP Exclude_From_Build 1" << endl;		    t << "# End Source File" << endl << endl;		}	    }	    else		t << var(variable);	}	t << line << endl;    }    t << endl;    file.close();    return TRUE;}voidDspMakefileGenerator::init(){    if(init_flag)	return;    QStringList::Iterator it;    init_flag = TRUE;    const bool thread = project->isActiveConfig("thread");    if ( project->isActiveConfig("stl") ) {	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_STL_ON"];	project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_STL_ON"];    } else {	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_STL_OFF"];	project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_STL_OFF"];    }    if ( project->isActiveConfig("exceptions") ) {	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_EXCEPTIONS_ON"];	project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_EXCEPTIONS_ON"];    } else {	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_EXCEPTIONS_OFF"];	project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_EXCEPTIONS_OFF"];    }    if ( project->isActiveConfig("rtti") ) {	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RTTI_ON"];	project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RTTI_ON"];    } else {	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_RTTI_OFF"];	project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_RTTI_OFF"];    }        /* this should probably not be here, but I'm using it to wrap the .t files */    if(project->first("TEMPLATE") == "vcapp" )	project->variables()["QMAKE_APP_FLAG"].append("1");    else if(project->first("TEMPLATE") == "vclib")	project->variables()["QMAKE_LIB_FLAG"].append("1");    if ( project->variables()["QMAKESPEC"].isEmpty() )	project->variables()["QMAKESPEC"].append( getenv("QMAKESPEC") );    bool is_qt = (project->first("TARGET") == "qt"QTDLL_POSTFIX || project->first("TARGET") == "qt-mt"QTDLL_POSTFIX);    project->variables()["QMAKE_ORIG_TARGET"] = project->variables()["TARGET"];    QStringList &configs = project->variables()["CONFIG"];    if (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("qtopia") ) {	if(configs.findIndex("qtopialib") == -1)	    configs.append("qtopialib");	if(configs.findIndex("qtopiainc") == -1)	    configs.append("qtopiainc");    }    if ( project->isActiveConfig("qt") ) {	if ( project->isActiveConfig( "plugin" ) ) {	    project->variables()["CONFIG"].append("dll");	    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("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("qt") || project->isActiveConfig("opengl") ) {	project->variables()["CONFIG"].append("windows");    }    if ( !project->variables()["VERSION"].isEmpty() ) {	QString version = project->variables()["VERSION"][0];	int firstDot = version.find( "." );	QString major = version.left( firstDot );	QString minor = version.right( version.length() - firstDot - 1 );	minor.replace( ".", "" );	project->variables()["MSVCDSP_VERSION"].append( "/VERSION:" + major + "." + minor );    }    if ( project->isActiveConfig("qtopiainc") )	project->variables()["INCLUDEPATH"] += project->variables()["QMAKE_INCDIR_QTOPIA"];    if ( project->isActiveConfig("qtopialib") ) {	if(!project->isEmpty("QMAKE_LIBDIR_QTOPIA"))	    project->variables()["QMAKE_LIBDIR"] += project->variables()["QMAKE_LIBDIR_QTOPIA"];	project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QTOPIA"];    }    if ( project->isActiveConfig("qt") ) {	project->variables()["CONFIG"].append("moc");	project->variables()["INCLUDEPATH"] +=	project->variables()["QMAKE_INCDIR_QT"];	project->variables()["QMAKE_LIBDIR"] += project->variables()["QMAKE_LIBDIR_QT"];	if ( is_qt && !project->variables()["QMAKE_LIB_FLAG"].isEmpty() ) {	    if ( !project->variables()["QMAKE_QT_DLL"].isEmpty() ) {		project->variables()["DEFINES"].append("QT_MAKEDLL");		project->variables()["QMAKE_LFLAGS"].append("/base:\"0x39D00000\"");	    }	} else {	    if( thread )		project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT_THREAD"];	    else		project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT"];	    if ( !project->variables()["QMAKE_QT_DLL"].isEmpty() ) {		int hver = findHighestVersion(project->first("QMAKE_LIBDIR_QT"), "qt");		if ( hver == -1 )		    hver = findHighestVersion(project->first("QMAKE_LIBDIR_QT"), "qt-mt");		if(hver != -1) {		    QString ver;		    ver.sprintf("qt%s" QTDLL_POSTFIX "%d.lib", (thread ? "-mt" : ""), hver);		    QStringList &libs = project->variables()["QMAKE_LIBS"];		    for(QStringList::Iterator libit = libs.begin(); libit != libs.end(); ++libit)			(*libit).replace(QRegExp("qt(-mt)?\\.lib"), ver);		}	    }	    if ( project->isActiveConfig( "activeqt" ) ) {		project->variables().remove("QMAKE_LIBS_QT_ENTRY");		project->variables()["QMAKE_LIBS_QT_ENTRY"] = "qaxserver.lib";		if ( project->isActiveConfig( "dll" ) )		    project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_QT_ENTRY"];	    }	    if ( !project->isActiveConfig("dll") && !project->isActiveConfig("plugin") ) {		project->variables()["QMAKE_LIBS"] +=project->variables()["QMAKE_LIBS_QT_ENTRY"];	    }	}    }    if ( project->isActiveConfig("debug") ) {	if ( !project->first("OBJECTS_DIR").isEmpty() )	    project->variables()["MSVCDSP_OBJECTSDIRDEB"] = project->first("OBJECTS_DIR");	else	    project->variables()["MSVCDSP_OBJECTSDIRDEB"] = "Debug";	project->variables()["MSVCDSP_OBJECTSDIRREL"] = "Release";	if ( !project->first("DESTDIR").isEmpty() )	    project->variables()["MSVCDSP_TARGETDIRDEB"] = project->first("DESTDIR");	else	    project->variables()["MSVCDSP_TARGETDIRDEB"] = "Debug";	project->variables()["MSVCDSP_TARGETDIRREL"] = "Release";    } else {	if ( !project->first("OBJECTS_DIR").isEmpty() )	    project->variables()["MSVCDSP_OBJECTSDIRREL"] = project->first("OBJECTS_DIR");	else	    project->variables()["MSVCDSP_OBJECTSDIRREL"] = "Release";	project->variables()["MSVCDSP_OBJECTSDIRDEB"] = "Debug";	if ( !project->first("DESTDIR").isEmpty() )	    project->variables()["MSVCDSP_TARGETDIRREL"] = project->first("DESTDIR");	else	    project->variables()["MSVCDSP_TARGETDIRREL"] = "Release";	project->variables()["MSVCDSP_TARGETDIRDEB"] = "Debug";    }    if ( project->isActiveConfig("opengl") ) {	project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL"];	project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_OPENGL"];    }    if ( thread ) {	if(project->isActiveConfig("qt"))	    project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_THREAD_SUPPORT" );        if ( project->isActiveConfig("dll") || project->first("TARGET") == "qtmain"	     || !project->variables()["QMAKE_QT_DLL"].isEmpty() ) {	    project->variables()["MSVCDSP_MTDEFD"] += project->variables()["QMAKE_CXXFLAGS_MT_DLLDBG"];	    project->variables()["MSVCDSP_MTDEF"] += project->variables()["QMAKE_CXXFLAGS_MT_DLL"];	} else {	    // YES we want to use the DLL even in a static build	    project->variables()["MSVCDSP_MTDEFD"] += project->variables()["QMAKE_CXXFLAGS_MT_DBG"];	    project->variables()["MSVCDSP_MTDEF"] += project->variables()["QMAKE_CXXFLAGS_MT"];	}	if ( !project->variables()["DEFINES"].contains("QT_DLL") && is_qt	     && project->first("TARGET") != "qtmain" )	    project->variables()["QMAKE_LFLAGS"].append("/NODEFAULTLIB:\"libc\"");    }    if(project->isActiveConfig("qt")) {	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_CFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CFLAGS_CONSOLE_DLL"];	project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CXXFLAGS_CONSOLE_DLL"];	project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_LFLAGS_CONSOLE_DLL"];	project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"] = project->variables()["QMAKE_LFLAGS_WINDOWS_DLL"];	if ( !project->variables()["QMAKE_LIB_FLAG"].isEmpty() ) {	    QString ver_xyz(project->first("VERSION"));	    ver_xyz.replace(".", "");	    project->variables()["TARGET_EXT"].append(ver_xyz + ".dll");	} else {	    project->variables()["TARGET_EXT"].append(".dll");	}    } else {	project->variables()["QMAKE_CFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CFLAGS_CONSOLE"];	project->variables()["QMAKE_CXXFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_CXXFLAGS_CONSOLE"];	project->variables()["QMAKE_LFLAGS_CONSOLE_ANY"] = project->variables()["QMAKE_LFLAGS_CONSOLE"];	project->variables()["QMAKE_LFLAGS_WINDOWS_ANY"] = project->variables()["QMAKE_LFLAGS_WINDOWS"];	if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty() )

⌨️ 快捷键说明

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