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

📄 msvc_vcproj.cpp

📁 Linux下的基于X11的图形开发环境。
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	    vcProject.Configuration.postBuild.CommandLine =		// call idc to generate .idl file from .dll		idc + " " + vcProject.Configuration.OutputDirectory + "\\" + nameext + " -idl " + objdir + name + ".idl -version 1.0 && " +		// call midl to create implementations of the .idl file		project->first( "QMAKE_IDL" ) + " " + objdir + name + ".idl /nologo /o " + objdir + name + ".midl /tlb " + objdir + name + ".tlb /iid " + objdir +		"dump.midl /dlldata " + objdir + "dump.midl /cstub " + objdir + "dump.midl /header " + objdir + "dump.midl /proxy " + objdir + "dump.midl /sstub " +		objdir + "dump.midl && " +		// call idc to replace tlb...		idc + " " + vcProject.Configuration.OutputDirectory + "\\" + nameext + " /tlb " + objdir + name + ".tlb && " +		// register server		idc + " " + vcProject.Configuration.OutputDirectory + "\\" + nameext + " /regserver";	} else { // out of process	    vcProject.Configuration.postBuild.CommandLine =		// call application to dump idl		vcProject.Configuration.OutputDirectory + "\\" + nameext + " -dumpidl " + objdir + name + ".idl -version 1.0 && " +		// call midl to create implementations of the .idl file		project->first( "QMAKE_IDL" ) + " " + objdir + name + ".idl /nologo /o " + objdir + name + ".midl /tlb " + objdir + name + ".tlb /iid " + objdir +		"dump.midl /dlldata " + objdir + "dump.midl /cstub " + objdir + "dump.midl /header " + objdir + "dump.midl /proxy " + objdir + "dump.midl /sstub " +		objdir + "dump.midl && " +		// call idc to replace tlb...		idc + " " + vcProject.Configuration.OutputDirectory + "\\" + nameext + " /tlb " + objdir + name + ".tlb && " +		// call app to register		vcProject.Configuration.OutputDirectory + "\\" + nameext + " -regserver";	}    }}void VcprojGenerator::initPreLinkEventTools(){}void VcprojGenerator::initSourceFiles(){    vcProject.SourceFiles.Name = "Source Files";    vcProject.SourceFiles.Filter = "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat";    vcProject.SourceFiles.Files += project->variables()["SOURCES"];    vcProject.SourceFiles.Files.sort();    vcProject.SourceFiles.Project = this;    vcProject.SourceFiles.Config = &(vcProject.Configuration);    vcProject.SourceFiles.CustomBuild = none;}void VcprojGenerator::initHeaderFiles(){    vcProject.HeaderFiles.Name = "Header Files";    vcProject.HeaderFiles.Filter = "h;hpp;hxx;hm;inl";    vcProject.HeaderFiles.Files += project->variables()["HEADERS"];    vcProject.HeaderFiles.Files.sort();    vcProject.HeaderFiles.Project = this;    vcProject.HeaderFiles.Config = &(vcProject.Configuration);    vcProject.HeaderFiles.CustomBuild = moc;}void VcprojGenerator::initMOCFiles(){    vcProject.MOCFiles.Name = "Generated MOC Files";    vcProject.MOCFiles.Filter = "cpp;c;cxx;moc";    vcProject.MOCFiles.Files += project->variables()["SRCMOC"];    vcProject.MOCFiles.Files.sort();    vcProject.MOCFiles.Project = this;    vcProject.MOCFiles.Config = &(vcProject.Configuration);    vcProject.MOCFiles.CustomBuild = moc;}void VcprojGenerator::initUICFiles(){    vcProject.UICFiles.Name = "Generated UI Files";    vcProject.UICFiles.Filter = "cpp;c;cxx;h;hpp;hxx;";    vcProject.UICFiles.Project = this;    vcProject.UICFiles.Files += project->variables()["UICDECLS"];    vcProject.UICFiles.Files += project->variables()["UICIMPLS"];    vcProject.UICFiles.Files.sort();    vcProject.UICFiles.Config = &(vcProject.Configuration);    vcProject.UICFiles.CustomBuild = none;}void VcprojGenerator::initFormsFiles(){    vcProject.FormFiles.Name = "Forms";    vcProject.FormFiles.ParseFiles = _False;    vcProject.FormFiles.Filter = "ui";    vcProject.FormFiles.Files += project->variables()["FORMS"];    vcProject.FormFiles.Files.sort();    vcProject.FormFiles.Project = this;    vcProject.FormFiles.Config = &(vcProject.Configuration);    vcProject.FormFiles.CustomBuild = uic;}void VcprojGenerator::initTranslationFiles(){    vcProject.TranslationFiles.Name = "Translations Files";    vcProject.TranslationFiles.ParseFiles = _False;    vcProject.TranslationFiles.Filter = "ts";    vcProject.TranslationFiles.Files += project->variables()["TRANSLATIONS"];    vcProject.TranslationFiles.Files.sort();    vcProject.TranslationFiles.Project = this;    vcProject.TranslationFiles.Config = &(vcProject.Configuration);    vcProject.TranslationFiles.CustomBuild = none;}void VcprojGenerator::initLexYaccFiles(){    vcProject.LexYaccFiles.Name = "Lex / Yacc Files";    vcProject.LexYaccFiles.ParseFiles = _False;    vcProject.LexYaccFiles.Filter = "l;y";    vcProject.LexYaccFiles.Files += project->variables()["LEXSOURCES"];    vcProject.LexYaccFiles.Files += project->variables()["YACCSOURCES"];    vcProject.LexYaccFiles.Files.sort();    vcProject.LexYaccFiles.Project = this;    vcProject.LexYaccFiles.CustomBuild = lexyacc;}void VcprojGenerator::initResourceFiles(){    vcProject.ResourceFiles.Name = "Resources";    vcProject.ResourceFiles.ParseFiles = _False;    vcProject.ResourceFiles.Filter = "cpp;ico;png;jpg;jpeg;gif;xpm;bmp;rc;ts";    vcProject.ResourceFiles.Files += project->variables()["RC_FILE"];    vcProject.ResourceFiles.Files += project->variables()["QMAKE_IMAGE_COLLECTION"];    vcProject.ResourceFiles.Files += project->variables()["IMAGES"];    vcProject.ResourceFiles.Files += project->variables()["IDLSOURCES"];    vcProject.ResourceFiles.Files.sort();    vcProject.ResourceFiles.Project = this;    vcProject.ResourceFiles.CustomBuild = none;}/* \internal    Sets up all needed variables from the environment and all the different caches and .conf files*/void VcprojGenerator::initOld(){    if( init_flag )	return;    init_flag = TRUE;    QStringList::Iterator it;    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 );   QStringList &configs = project->variables()["CONFIG"];    if ( project->isActiveConfig( "shared" ) )	project->variables()["DEFINES"].append( "QT_DLL" );    if ( project->isActiveConfig( "qt_dll" ) &&	 configs.findIndex("qt") == -1 )	    configs.append("qt");    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 we are a dll, then we cannot be a staticlib at the same time...    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 we need 'qt' and/or 'opengl', then we need windows and not console    if ( project->isActiveConfig( "qt" ) || project->isActiveConfig( "opengl" ) ) {	project->variables()["CONFIG"].append( "windows" );    }    // Decode version, and add it to $$MSVCPROJ_VERSION --------------    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( QRegExp( "\\." ), "" );	project->variables()["MSVCPROJ_VERSION"].append( "/VERSION:" + major + "." + minor );    }    // QT ------------------------------------------------------------    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(project->isActiveConfig("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", (project->isActiveConfig("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"];		    project->variables()["MSVCPROJ_LFLAGS"].append("/DEF:"+project->first("DEF_FILE"));		}	    }	    if ( !project->isActiveConfig("dll") && !project->isActiveConfig("plugin") ) {		project->variables()["QMAKE_LIBS"] +=project->variables()["QMAKE_LIBS_QT_ENTRY"];	    }	}    }    // Set target directories ---------------------------------------- //   if ( !project->first("OBJECTS_DIR").isEmpty() )	//project->variables()["MSVCPROJ_OBJECTSDIR"] = project->first("OBJECTS_DIR"); //   else	//project->variables()["MSVCPROJ_OBJECTSDIR"] = project->isActiveConfig( "release" )?"Release":"Debug"; //   if ( !project->first("DESTDIR").isEmpty() )	//project->variables()["MSVCPROJ_TARGETDIR"] = project->first("DESTDIR"); //   else	//project->variables()["MSVCPROJ_TARGETDIR"] = project->isActiveConfig( "release" )?"Release":"Debug";    // OPENGL --------------------------------------------------------    if ( project->isActiveConfig("opengl") ) {	project->variables()["QMAKE_LIBS"] += project->variables()["QMAKE_LIBS_OPENGL"];	project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_OPENGL"];    }    // THREAD --------------------------------------------------------    if ( project->isActiveConfig("thread") ) {	if(project->isActiveConfig("qt"))	    project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("QT_THREAD_SUPPORT" );	if ( !project->variables()["DEFINES"].contains("QT_DLL") && is_qt	     && project->first("TARGET") != "qtmain" )	    project->variables()["QMAKE_LFLAGS"].append("/NODEFAULTLIB:libc");    }    // ACCESSIBILITY -------------------------------------------------    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");    }    // DLL -----------------------------------------------------------    if ( project->isActiveConfig("dll") ) {

⌨️ 快捷键说明

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