From 026b9325f08f899d0b770b2e0968446599144c74 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Thu, 28 Nov 2013 19:58:37 +0100 Subject: [PATCH] Bug 422797 - API for retrieving QMake information from Qt project API is located at org.eclipse.cdt.qt.core.index package. Entry point is QMakeProjectInfoFactory.getForActiveConfigurationIn method that provides ability to retrieve QMake information (IQMakeInfo interface) for active project configuration of a specified project. Also allows to listen on changes of such information. qmakeEnvProvider extensions allows CDT build-system to provide environment for QMake runs within their build-system. Information is gather by parsing output of: 1) qmake -query 2) qmake -E file.pro // only for QMake version 3.0 Change-Id: Iae569bdbc89dc26d60530596b66b5227f36dfae6 Signed-off-by: David Kaspar Reviewed-on: https://git.eclipse.org/r/19082 Reviewed-by: Andrew Eidsness Tested-by: Hudson CI Reviewed-by: Doug Schaefer IP-Clean: Doug Schaefer --- .../META-INF/MANIFEST.MF | 4 +- qt/org.eclipse.cdt.qt.core/build.properties | 3 +- qt/org.eclipse.cdt.qt.core/plugin.properties | 1 + qt/org.eclipse.cdt.qt.core/plugin.xml | 2 + .../schema/qmakeEnvProvider.exsd | 136 ++++++ .../index/QMakeEnvProviderDescriptor.java | 146 ++++++ .../core/index/QMakeEnvProviderManager.java | 117 +++++ .../cdt/internal/qt/core/index/QMakeInfo.java | 199 ++++++++ .../internal/qt/core/index/QMakeParser.java | 211 +++++++++ .../qt/core/index/QMakeProjectInfo.java | 426 ++++++++++++++++++ .../internal/qt/core/index/QMakeVersion.java | 63 +++ .../src/org/eclipse/cdt/qt/core/QtNature.java | 13 +- .../src/org/eclipse/cdt/qt/core/QtPlugin.java | 45 +- .../eclipse/cdt/qt/core/index/IQMakeEnv.java | 27 ++ .../cdt/qt/core/index/IQMakeEnvProvider.java | 49 ++ .../eclipse/cdt/qt/core/index/IQMakeInfo.java | 92 ++++ .../cdt/qt/core/index/IQMakeProjectInfo.java | 40 ++ .../core/index/IQMakeProjectInfoListener.java | 21 + .../eclipse/cdt/qt/core/index/IQtVersion.java | 27 ++ .../cdt/qt/core/index/QMakeEnvInfo.java | 81 ++++ .../core/index/QMakeProjectInfoFactory.java | 33 ++ 21 files changed, 1730 insertions(+), 6 deletions(-) create mode 100644 qt/org.eclipse.cdt.qt.core/schema/qmakeEnvProvider.exsd create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeEnvProviderDescriptor.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeEnvProviderManager.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeInfo.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeParser.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfo.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeVersion.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/index/IQMakeEnv.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/index/IQMakeEnvProvider.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/index/IQMakeInfo.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/index/IQMakeProjectInfo.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/index/IQMakeProjectInfoListener.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/index/IQtVersion.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/index/QMakeEnvInfo.java create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/index/QMakeProjectInfoFactory.java diff --git a/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF b/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF index 31d4aeefd56..bb85c8e693d 100644 --- a/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF +++ b/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF @@ -7,8 +7,10 @@ Bundle-Activator: org.eclipse.cdt.qt.core.QtPlugin Bundle-Vendor: Eclipse CDT Require-Bundle: org.eclipse.core.runtime, org.eclipse.core.resources, + org.eclipse.core.expressions;bundle-version="[3.2.0,4.0.0)", org.eclipse.cdt.core Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-ActivationPolicy: lazy Bundle-Localization: plugin -Export-Package: org.eclipse.cdt.qt.core +Export-Package: org.eclipse.cdt.qt.core, + org.eclipse.cdt.qt.core.index diff --git a/qt/org.eclipse.cdt.qt.core/build.properties b/qt/org.eclipse.cdt.qt.core/build.properties index 09a194a7e88..d8b18e5db46 100644 --- a/qt/org.eclipse.cdt.qt.core/build.properties +++ b/qt/org.eclipse.cdt.qt.core/build.properties @@ -5,4 +5,5 @@ bin.includes = META-INF/,\ plugin.xml,\ templates/,\ about.html -src.includes = about.html +src.includes = about.html,\ + schema/ diff --git a/qt/org.eclipse.cdt.qt.core/plugin.properties b/qt/org.eclipse.cdt.qt.core/plugin.properties index 0206fd12b0a..9f9360a2955 100644 --- a/qt/org.eclipse.cdt.qt.core/plugin.properties +++ b/qt/org.eclipse.cdt.qt.core/plugin.properties @@ -1,2 +1,3 @@ qtProjectFile.name = Qt Project File qmlFile.name = QML File +qmakeEnvProvider.name = QMake Environment Provider diff --git a/qt/org.eclipse.cdt.qt.core/plugin.xml b/qt/org.eclipse.cdt.qt.core/plugin.xml index d31e961af1d..eb99e065f65 100644 --- a/qt/org.eclipse.cdt.qt.core/plugin.xml +++ b/qt/org.eclipse.cdt.qt.core/plugin.xml @@ -1,6 +1,8 @@ + +