summaryrefslogtreecommitdiff
path: root/src/plugins/cmakeprojectmanager/cmakeproject.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2013-03-26 13:09:43 +0100
committerEike Ziller <eike.ziller@digia.com>2013-03-26 13:09:43 +0100
commit599be01a676cd7990abb3bb25f7ce02565193a89 (patch)
tree6dba09d8c7766e3719e266b71556bc52f5220722 /src/plugins/cmakeprojectmanager/cmakeproject.cpp
parentec10e0d79e9cf52b3cac164da5c39accbf4d2b50 (diff)
parentf409fdd6d3a6aed8b32ded224cf624d52a1ae0fd (diff)
downloadqt-creator-599be01a676cd7990abb3bb25f7ce02565193a89.tar.gz
Merge remote-tracking branch 'origin/2.7'
Conflicts: qtcreator.pri qtcreator.qbs share/qtcreator/qml/qmlpuppet/interfaces/interfaces.pri share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstancesignalspy.cpp share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/objectnodeinstance.h src/plugins/debugger/debuggerplugin.cpp src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu_helper.cpp src/plugins/qmldesigner/components/debugview/debugview.cpp src/plugins/qmldesigner/components/formeditor/abstractcustomtool.cpp src/plugins/qmldesigner/components/formeditor/abstractcustomtool.h src/plugins/qmldesigner/components/formeditor/formeditorview.cpp src/plugins/qmldesigner/components/integration/stackedutilitypanelcontroller.h src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp src/plugins/qmldesigner/components/navigator/navigatorview.cpp src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp src/plugins/qmldesigner/designercore/include/abstractview.h src/plugins/qmldesigner/designercore/include/qmldesignercorelib_global.h src/plugins/qmldesigner/designercore/include/rewriterview.h src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp src/plugins/qmldesigner/designercore/model/abstractview.cpp src/plugins/qmldesigner/designmodewidget.cpp Change-Id: I9d8126e88397c02a87b5e4ab4da44e2bc7089134
Diffstat (limited to 'src/plugins/cmakeprojectmanager/cmakeproject.cpp')
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index e5d27e269f..828c6b3570 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -352,6 +352,7 @@ bool CMakeProject::parseCMakeLists()
QByteArray allDefines;
allDefines.append(tc->predefinedMacros(cxxflags));
+ allDefines.append(cbpparser.defines());
QStringList allFrameworkPaths;
QList<ProjectExplorer::HeaderPath> allHeaderPaths;
@@ -1215,8 +1216,18 @@ void CMakeCbpParser::parseAdd()
QString compilerOption = addAttributes.value(QLatin1String("option")).toString();
// defining multiple times a macro to the same value makes no sense
- if (!compilerOption.isEmpty() && !m_compilerOptions.contains(compilerOption))
+ if (!compilerOption.isEmpty() && !m_compilerOptions.contains(compilerOption)) {
m_compilerOptions.append(compilerOption);
+ int macroNameIndex = compilerOption.indexOf(QLatin1String("-D")) + 2;
+ if (macroNameIndex != 1) {
+ int assignIndex = compilerOption.indexOf(QLatin1Char('='), macroNameIndex);
+ if (assignIndex != -1)
+ compilerOption[assignIndex] = ' ';
+ m_defines.append("#define ");
+ m_defines.append(compilerOption.mid(macroNameIndex).toUtf8());
+ m_defines.append('\n');
+ }
+ }
while (!atEnd()) {
readNext();
@@ -1314,6 +1325,11 @@ QStringList CMakeCbpParser::includeFiles()
return m_includeFiles;
}
+QByteArray CMakeCbpParser::defines() const
+{
+ return m_defines;
+}
+
QList<CMakeBuildTarget> CMakeCbpParser::buildTargets()
{
return m_buildTargets;