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

📄 unixmake2.cpp

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	    if(project->isActiveConfig("lib_version_first")) {		project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +							project->first("VER_MAJ") + "." +							project->first("QMAKE_EXTENSION_SHLIB"));		project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +							  project->first("VER_MAJ") +							  "." + project->first("VER_MIN") + "." +							  project->first("QMAKE_EXTENSION_SHLIB"));		project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." +							    project->first("VER_MAJ") + "." +							    project->first("VER_MIN") + "." +							    project->first("VER_PAT") + "." +							    project->first("QMAKE_EXTENSION_SHLIB"));	    } else {		project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +							project->first("QMAKE_EXTENSION_SHLIB") +							"." + project->first("VER_MAJ"));		project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +							  project->first("QMAKE_EXTENSION_SHLIB") +							  "." + project->first("VER_MAJ") +							  "." + project->first("VER_MIN"));		project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." +							    project->first("QMAKE_EXTENSION_SHLIB") + "." +							    project->first("VER_MAJ") + "." +							    project->first("VER_MIN") + "." +							    project->first("VER_PAT"));	    }	    project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"];	} else {	    project->variables()["TARGET_"].append("lib" + project->first("TARGET") + "." +						   project->first("QMAKE_EXTENSION_SHLIB"));	    if(project->isActiveConfig("lib_version_first")) {		project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +							project->first("VER_MAJ") + "." +							project->first("QMAKE_EXTENSION_SHLIB"));		project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +							  project->first("VER_MAJ") +							  "." + project->first("VER_MIN") + "." +							  project->first("QMAKE_EXTENSION_SHLIB"));		project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") + "." +							    project->first("VER_MAJ") + "." +							    project->first("VER_MIN") +  "." +							    project->first("VER_PAT") + "." +							    project->variables()["QMAKE_EXTENSION_SHLIB"].first());	    } else {		project->variables()["TARGET_x"].append("lib" + project->first("TARGET") + "." +							project->first("QMAKE_EXTENSION_SHLIB") +							"." + project->first("VER_MAJ"));		project->variables()["TARGET_x.y"].append("lib" + project->first("TARGET") + "." +						      project->first("QMAKE_EXTENSION_SHLIB")						      + "." + project->first("VER_MAJ") +						      "." + project->first("VER_MIN"));		project->variables()["TARGET_x.y.z"].append("lib" + project->first("TARGET") +							    "." +							    project->variables()[								"QMAKE_EXTENSION_SHLIB"].first() + "." +							    project->first("VER_MAJ") + "." +							    project->first("VER_MIN") +  "." +							    project->first("VER_PAT"));	    }	    project->variables()["TARGET"] = project->variables()["TARGET_x.y.z"];	}	if(project->isEmpty("QMAKE_LN_SHLIB"))	    project->variables()["QMAKE_LN_SHLIB"].append("ln -s");	project->variables()["DESTDIR_TARGET"].append("$(TARGET)");	if ( !project->variables()["DESTDIR"].isEmpty() )	    project->variables()["DESTDIR_TARGET"].first().prepend(project->first("DESTDIR"));	if ( !project->variables()["QMAKE_LFLAGS_SONAME"].isEmpty()) {	    if(project->isActiveConfig("plugin")) {		if(!project->variables()["TARGET"].isEmpty() )		    project->variables()["QMAKE_LFLAGS_SONAME"].first() += project->first("TARGET");	    } else {		if(!project->variables()["TARGET_x"].isEmpty() )		    project->variables()["QMAKE_LFLAGS_SONAME"].first() += project->first("TARGET_x");	    }	}	if ( project->variables()["QMAKE_LINK_SHLIB_CMD"].isEmpty() )	    project->variables()["QMAKE_LINK_SHLIB_CMD"].append(		"$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) $(OBJCOMP)");    }    if(project->isEmpty("QMAKE_SYMBOLIC_LINK"))	project->variables()["QMAKE_SYMBOLIC_LINK"].append("ln -sf");    if ( !project->variables()["QMAKE_APP_FLAG"].isEmpty() ) {	project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_APP"];    } else if ( project->isActiveConfig("dll") ) {	project->variables()["QMAKE_CFLAGS"] += project->variables()["QMAKE_CFLAGS_SHLIB"];	project->variables()["QMAKE_CXXFLAGS"] += project->variables()["QMAKE_CXXFLAGS_SHLIB"];	if ( project->isActiveConfig("plugin") ) {	    project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_PLUGIN"];	    if( project->isActiveConfig("plugin_with_soname") && !project->isActiveConfig("compile_libtool"))		project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_SONAME"];	} else {	    project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_SHLIB"];	    if(!project->isEmpty("QMAKE_LFLAGS_COMPAT_VERSION")) {		if(project->isEmpty("COMPAT_VERSION"))		    project->variables()["QMAKE_LFLAGS"] += QString(project->first("QMAKE_LFLAGS_COMPAT_VERSION") +								    project->first("VER_MAJ") + "." +								    project->first("VER_MIN"));		else		    project->variables()["QMAKE_LFLAGS"] += QString(project->first("QMAKE_LFLAGS_COMPAT_VERSION") +								    project->first("COMPATIBILITY_VERSION"));	    }	    if(!project->isEmpty("QMAKE_LFLAGS_VERSION")) {		project->variables()["QMAKE_LFLAGS"] += QString(project->first("QMAKE_LFLAGS_VERSION") +								project->first("VER_MAJ") + "." +								project->first("VER_MIN") + "." +								project->first("VER_PAT"));	    }	    if(!project->isActiveConfig("compile_libtool"))		project->variables()["QMAKE_LFLAGS"] += project->variables()["QMAKE_LFLAGS_SONAME"];	}	QString destdir = project->first("DESTDIR");	if ( !destdir.isEmpty() && !project->variables()["QMAKE_RPATH"].isEmpty() ) {	    QString rpath_destdir = destdir;	    if(QDir::isRelativePath(rpath_destdir)) {		QFileInfo fi(Option::fixPathToLocalOS(rpath_destdir));		if(fi.convertToAbs())  //strange, shouldn't really happen		    rpath_destdir = Option::fixPathToTargetOS(rpath_destdir, FALSE);		else		    rpath_destdir = fi.filePath();	    } else {		rpath_destdir = Option::fixPathToTargetOS(rpath_destdir, FALSE);	    }	    project->variables()["QMAKE_LFLAGS"] += project->first("QMAKE_RPATH") + rpath_destdir;	}    }    QStringList &quc = project->variables()["QMAKE_EXTRA_UNIX_COMPILERS"];    for(QStringList::Iterator it = quc.begin(); it != quc.end(); ++it) {	QString tmp_out = project->variables()[(*it) + ".output"].first();	if(tmp_out.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;		out.replace("${QMAKE_FILE_BASE}", fi.baseName());		out.replace("${QMAKE_FILE_NAME}", fi.fileName());		if(project->variables()[(*it) + ".CONFIG"].findIndex("no_link") == -1)		    project->variables()["OBJCOMP"] += out;	    }	}    }}QStringUnixMakefileGenerator::libtoolFileName(){    QString ret = var("TARGET");    int slsh = ret.findRev(Option::dir_sep);    if(slsh != -1)	ret = ret.right(ret.length() - slsh);    int dot = ret.find('.');    if(dot != -1)	ret = ret.left(dot);    ret += Option::libtool_ext;    if(!project->isEmpty("DESTDIR"))	ret.prepend(var("DESTDIR"));    return ret;}voidUnixMakefileGenerator::writeLibtoolFile(){    QString fname = libtoolFileName(), lname = fname;    int slsh = lname.findRev(Option::dir_sep);    if(slsh != -1)	lname = lname.right(lname.length() - slsh);    QFile ft(fname);    if(!ft.open(IO_WriteOnly))	return;    project->variables()["ALL_DEPS"].append(fname);    QTextStream t(&ft);    t << "# " << lname << Option::libtool_ext << " - a libtool library file\n";    time_t now = time(NULL);    t << "# Generated by qmake/libtool (" << qmake_version() << ") (Qt "      << QT_VERSION_STR << ") on: " << ctime(&now) << "\n";    t << "# The name that we can dlopen(3).\n"      << "dlname='" << var(project->isActiveConfig("plugin") ? "TARGET" : "TARGET_x")      << "'\n\n";    t << "# Names of this library.\n";    t << "library_names='";    if(project->isActiveConfig("plugin")) {	t << var("TARGET");    } else {    	if (project->isEmpty("QMAKE_HPUX_SHLIB"))	    t << var("TARGET_x.y.z") << " ";    	t << var("TARGET_x") << " " << var("TARGET_");    }    t << "'\n\n";    t << "# The name of the static archive.\n"      << "old_library='" << lname << ".a'\n\n";    t << "# Libraries that this one depends upon.\n";    QStringList libs;    if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS"))	libs = project->variables()["QMAKE_INTERNAL_PRL_LIBS"];    else	libs << "QMAKE_LIBS"; //obvious one    t << "dependency_libs='";    for(QStringList::ConstIterator it = libs.begin(); it != libs.end(); ++it)	t << project->variables()[(*it)].join(" ") << " ";    t << "'\n\n";    t << "# Version information for " << lname << "\n";    int maj = project->first("VER_MAJ").toInt();    int min = project->first("VER_MIN").toInt();    int pat = project->first("VER_PAT").toInt();    t << "current=" << (10*maj + min) << "\n" // best I can think of      << "age=0\n"      << "revision=" << pat << "\n\n";    t << "# Is this an already installed library.\n"	"installed=yes\n\n"; // ###    t << "# Files to dlopen/dlpreopen.\n"	"dlopen=''\n"	"dlpreopen=''\n\n";    QString install_dir = project->first("target.path");    if(install_dir.isEmpty())	install_dir = project->first("DESTDIR");    t << "# Directory that this library needs to be installed in:\n"	"libdir='" << Option::fixPathToTargetOS(install_dir, FALSE) << "'\n";}QStringUnixMakefileGenerator::pkgConfigFileName(){    QString ret = var("TARGET");    int slsh = ret.findRev(Option::dir_sep);    if(slsh != -1)	ret = ret.right(ret.length() - slsh);    if(ret.startsWith("lib"))	ret = ret.mid(3);    int dot = ret.find('.');    if(dot != -1)	ret = ret.left(dot);    ret += Option::pkgcfg_ext;    if(!project->isEmpty("DESTDIR")) {	ret.prepend(var("DESTDIR"));	ret = Option::fixPathToLocalOS(fileFixify(ret,QDir::currentDirPath(), Option::output_dir));    }    return ret;}voidUnixMakefileGenerator::writePkgConfigFile()     // ### does make sense only for libqt so far{    QString fname = pkgConfigFileName(), lname = fname;    int slsh = lname.findRev(Option::dir_sep);    if(slsh != -1)	lname = lname.right(lname.length() - slsh);    QFile ft(fname);    if(!ft.open(IO_WriteOnly))	return;    project->variables()["ALL_DEPS"].append(fname);    QTextStream t(&ft);    QString prefix = qInstallPath();    QString libDir = prefix + "/lib";    QString includeDir = prefix + "/include";    t << "prefix=" << libDir << endl;    t << "exec_prefix=${prefix}\n"      << "libdir=${exec_prefix}/lib\n"      << "includedir=${prefix}/include" << endl;    // non-standard entry. Provides useful info normally only    // contained in the internal .qmake.cache file    t << varGlue("CONFIG", "qt_config=", " ", "") << endl << endl;    t << "Name: Qt" << endl;    t << "Description: Qt GUI Library" << endl;    t << "Version: " << project->first("VERSION") << endl;    // libs    QStringList libs;    if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS"))	libs = project->variables()["QMAKE_INTERNAL_PRL_LIBS"];    else	libs << "QMAKE_LIBS"; //obvious one    if(project->isActiveConfig("thread"))	libs << "QMAKE_LFLAGS_THREAD"; //not sure about this one, but what about things like -pthread?    t << "Libs: -L" << libDir << " -l" << lname << " ";    for(QStringList::ConstIterator it = libs.begin(); it != libs.end(); ++it)	t << project->variables()[(*it)].join(" ") << " ";    t << endl;    // flags    // ### too many    t << "Cflags: "	// << var("QMAKE_CXXFLAGS") << " "      << varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")      << project->variables()["PRL_EXPORT_CXXFLAGS"].join(" ")	//      << varGlue("DEFINES","-D"," -D"," ")      << " -I" << includeDir;}

⌨️ 快捷键说明

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