diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp index 35769432c98e8ff97c2004719b3319406ba5c16f..7f8ed0cb6fe1e86f89085abe9405e1676507d66a 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp @@ -193,6 +193,16 @@ QStringList QbsBuildConfiguration::changedFiles() const return m_changedFiles; } +void QbsBuildConfiguration::setActiveFileTags(const QStringList &fileTags) +{ + m_activeFileTags = fileTags; +} + +QStringList QbsBuildConfiguration::activeFileTags() const +{ + return m_activeFileTags; +} + void QbsBuildConfiguration::setProducts(const QStringList &products) { m_products = products; diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h index 6304bf7adcc69267fb9b4c14b1be0d213b2c2320..022165b7fe69c37bdb1f30759be513bfdbee6ca3 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h +++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.h @@ -73,6 +73,9 @@ public: void setChangedFiles(const QStringList &files); QStringList changedFiles() const; + void setActiveFileTags(const QStringList &fileTags); + QStringList activeFileTags() const; + void setProducts(const QStringList &products); QStringList products() const; @@ -99,6 +102,7 @@ private: bool m_parsingError; Utils::FileName m_buildDirectory; QStringList m_changedFiles; + QStringList m_activeFileTags; QStringList m_products; friend class QbsBuildConfigurationFactory; diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index 9c6a4ceb0ea7e37500a4f0c7b638863af12e6d68..d576239768672237efd91ca25034e6d220fa6d99 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -107,6 +107,7 @@ bool QbsBuildStep::init() m_parser->appendOutputParser(parser); m_changedFiles = bc->changedFiles(); + m_activeFileTags = bc->activeFileTags(); m_products = bc->products(); connect(m_parser, SIGNAL(addOutput(QString,ProjectExplorer::BuildStep::OutputFormat)), @@ -124,6 +125,7 @@ void QbsBuildStep::run(QFutureInterface<bool> &fi) QbsProject *pro = static_cast<QbsProject *>(project()); qbs::BuildOptions options(m_qbsBuildOptions); options.setChangedFiles(m_changedFiles); + options.setActiveFileTags(m_activeFileTags); m_job = pro->build(options, m_products); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.h b/src/plugins/qbsprojectmanager/qbsbuildstep.h index fce407b65846bbe8d52b8faa2f9d76b6a520ffdc..a6e6827da94c8b0bc4c8eb733ea6b6bd66b6f014 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.h +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.h @@ -100,6 +100,7 @@ private: // Temporary data: QStringList m_changedFiles; + QStringList m_activeFileTags; QStringList m_products; QFutureInterface<bool> *m_fi; diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp index bb32ff9337915dcf079433aecece9b89b0830e40..ebd9bb589b12deec2ec2a44e995ca3d25f50cfe1 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.cpp @@ -301,7 +301,7 @@ void QbsProjectManagerPlugin::buildFileContextMenu() QTC_ASSERT(m_currentNode, return); QTC_ASSERT(m_currentProject, return); - buildFiles(m_currentProject, QStringList(m_currentNode->path())); + buildSingleFile(m_currentProject, m_currentNode->path()); } void QbsProjectManagerPlugin::buildFile() @@ -316,7 +316,7 @@ void QbsProjectManagerPlugin::buildFile() if (!project || file.isEmpty()) return; - buildFiles(project, QStringList(file)); + buildSingleFile(project, file); } void QbsProjectManagerPlugin::buildProductContextMenu() @@ -345,7 +345,8 @@ void QbsProjectManagerPlugin::buildProduct() buildProducts(project, QStringList(product->displayName())); } -void QbsProjectManagerPlugin::buildFiles(QbsProject *project, const QStringList &files) +void QbsProjectManagerPlugin::buildFiles(QbsProject *project, const QStringList &files, + const QStringList &activeFileTags) { QTC_ASSERT(project, return); QTC_ASSERT(!files.isEmpty(), return); @@ -362,6 +363,7 @@ void QbsProjectManagerPlugin::buildFiles(QbsProject *project, const QStringList return; bc->setChangedFiles(files); + bc->setActiveFileTags(activeFileTags); bc->setProducts(QStringList()); const Core::Id buildStep = Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD); @@ -372,6 +374,12 @@ void QbsProjectManagerPlugin::buildFiles(QbsProject *project, const QStringList bc->setChangedFiles(QStringList()); } +void QbsProjectManagerPlugin::buildSingleFile(QbsProject *project, const QString &file) +{ + buildFiles(project, QStringList(file), QStringList() + << QLatin1String("obj") << QLatin1String("hpp")); +} + void QbsProjectManagerPlugin::buildProducts(QbsProject *project, const QStringList &products) { QTC_ASSERT(project, return); diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.h b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.h index 9951f30a2faf31ddca47ce489282c6bde0116930..807b29b5d4e532b71346c774ddf335b1b9e9935d 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.h +++ b/src/plugins/qbsprojectmanager/qbsprojectmanagerplugin.h @@ -80,7 +80,9 @@ private slots: void reparseCurrentProject(); private: - void buildFiles(QbsProject *project, const QStringList &files); + void buildFiles(QbsProject *project, const QStringList &files, + const QStringList &activeFileTags); + void buildSingleFile(QbsProject *project, const QString &file); void buildProducts(QbsProject *project, const QStringList &products); QbsManager *m_manager;