Commit 7481bff2 authored by BogDan Vatra's avatar BogDan Vatra

Don't allow to run static libs.

Static libs can't be run on Android and on iOS, so we need to filter
them out.

Change-Id: I90b778ffaa5e7d6267cc0e8d753be56bf93007a7
Reviewed-by: default avatarDaniel Teske <daniel.teske@theqtcompany.com>
parent 669d9ede
......@@ -101,7 +101,7 @@ QList<Core::Id> IosRunConfigurationFactory::availableCreationIds(Target *parent,
QList<QmakeProFileNode *> nodes = project->allProFiles(QList<QmakeProjectType>()
<< ApplicationTemplate
<< LibraryTemplate
<< SharedLibraryTemplate
<< AuxTemplate);
if (mode == AutoCreate)
nodes = QmakeProject::nodesWithQtcRunnable(nodes);
......
......@@ -92,7 +92,7 @@ QList<Core::Id> QmakeAndroidRunConfigurationFactory::availableCreationIds(Target
QmakeProject *project = static_cast<QmakeProject *>(parent->project());
QList<QmakeProFileNode *> nodes = project->allProFiles(QList<QmakeProjectType>()
<< ApplicationTemplate
<< LibraryTemplate);
<< SharedLibraryTemplate);
if (mode == AutoCreate)
nodes = QmakeProject::nodesWithQtcRunnable(nodes);
......
......@@ -1048,7 +1048,7 @@ void InternalLibraryDetailsController::updateProFile()
QList<QmakeProFileNode *> proFiles = findQt4ProFiles(rootProject);
foreach (QmakeProFileNode *proFileNode, proFiles) {
const QString proFilePath = proFileNode->path().toString();
if (proFileNode->projectType() == LibraryTemplate) {
if (proFileNode->projectType() == SharedLibraryTemplate) {
const QStringList configVar = proFileNode->variableValue(ConfigVar);
if (!configVar.contains(QLatin1String("plugin"))) {
const QString relProFilePath = rootDir.relativeFilePath(proFilePath);
......
......@@ -917,7 +917,8 @@ QList<ProjectAction> QmakePriFileNode::supportedActions(Node *node) const
switch (proFileNode->projectType()) {
case ApplicationTemplate:
case LibraryTemplate:
case StaticLibraryTemplate:
case SharedLibraryTemplate:
case AuxTemplate: {
// TODO: Some of the file types don't make much sense for aux
// projects (e.g. cpp). It'd be nice if the "add" action could
......@@ -1495,8 +1496,10 @@ static QmakeProjectType proFileTemplateTypeToProjectType(ProFileEvaluator::Templ
case ProFileEvaluator::TT_Unknown:
case ProFileEvaluator::TT_Application:
return ApplicationTemplate;
case ProFileEvaluator::TT_Library:
return LibraryTemplate;
case ProFileEvaluator::TT_StaticLibrary:
return StaticLibraryTemplate;
case ProFileEvaluator::TT_SharedLibrary:
return SharedLibraryTemplate;
case ProFileEvaluator::TT_Script:
return ScriptTemplate;
case ProFileEvaluator::TT_Aux:
......@@ -1639,7 +1642,7 @@ FolderNode::AddNewInformation QmakeProFileNode::addNewInformation(const QStringL
bool QmakeProFileNode::showInSimpleTree(QmakeProjectType projectType) const
{
return (projectType == ApplicationTemplate || projectType == LibraryTemplate);
return (projectType == ApplicationTemplate || projectType == SharedLibraryTemplate || projectType == StaticLibraryTemplate);
}
bool QmakeProFileNode::isDebugAndRelease() const
......@@ -2512,7 +2515,9 @@ void QmakeProFileNode::updateUiFiles(const QString &buildDir)
m_uiFiles.clear();
// Only those two project types can have ui files for us
if (m_projectType == ApplicationTemplate || m_projectType == LibraryTemplate) {
if (m_projectType == ApplicationTemplate ||
m_projectType == SharedLibraryTemplate ||
m_projectType == StaticLibraryTemplate) {
// Find all ui files
FindUiFileNodesVisitor uiFilesVisitor;
this->accept(&uiFilesVisitor);
......
......@@ -72,7 +72,8 @@ class QmakeProject;
enum QmakeProjectType {
InvalidProject = 0,
ApplicationTemplate,
LibraryTemplate,
StaticLibraryTemplate,
SharedLibraryTemplate,
ScriptTemplate,
AuxTemplate,
SubDirsTemplate
......
......@@ -1492,7 +1492,8 @@ void QmakeProject::collectData(const QmakeProFileNode *node, DeploymentData &dep
if (!installsList.targetPath.isEmpty())
collectApplicationData(node, deploymentData);
break;
case LibraryTemplate:
case SharedLibraryTemplate:
case StaticLibraryTemplate:
collectLibraryData(node, deploymentData);
break;
case SubDirsTemplate:
......
......@@ -175,7 +175,7 @@ ProFileEvaluator::TemplateType ProFileEvaluator::templateType() const
if (!t.compare(QLatin1String("app"), Qt::CaseInsensitive))
return TT_Application;
if (!t.compare(QLatin1String("lib"), Qt::CaseInsensitive))
return TT_Library;
return d->isActiveConfig(QStringLiteral("staticlib")) ? TT_StaticLibrary : TT_SharedLibrary;
if (!t.compare(QLatin1String("script"), Qt::CaseInsensitive))
return TT_Script;
if (!t.compare(QLatin1String("aux"), Qt::CaseInsensitive))
......@@ -220,8 +220,8 @@ bool ProFileEvaluator::accept(ProFile *pro, QMakeEvaluator::LoadFlags flags)
case TT_Application:
cxxflags += d->values(ProKey("QMAKE_CXXFLAGS_APP"));
break;
case TT_Library:
if (d->isActiveConfig(QStringLiteral("dll"))) {
case TT_SharedLibrary:
{
bool plugin = d->isActiveConfig(QStringLiteral("plugin"));
if (!plugin || !d->isActiveConfig(QStringLiteral("plugin_no_share_shlib_cflags")))
cxxflags += d->values(ProKey("QMAKE_CXXFLAGS_SHLIB"));
......
......@@ -58,7 +58,8 @@ public:
enum TemplateType {
TT_Unknown = 0,
TT_Application,
TT_Library,
TT_StaticLibrary,
TT_SharedLibrary,
TT_Script,
TT_Aux,
TT_Subdirs
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment