forked from qt-creator/qt-creator
MesonProjectManager: forward Python executable and some CMake info
This is more consistent use the Python executable set in the Kit. Meson has some CMake support for subprojects/dependencies, forwarding the compilers and Qt install PATH makes sense too. There is one big limitation with Meson, it doesn't support projects using AUTOMOC so far. Change-Id: Ie569d3f98f7a9d0ff8564c96916b49b9ac7cbfbd Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -14,7 +14,9 @@ struct KitData
|
|||||||
QString cCompilerPath;
|
QString cCompilerPath;
|
||||||
QString cxxCompilerPath;
|
QString cxxCompilerPath;
|
||||||
QString cmakePath;
|
QString cmakePath;
|
||||||
|
QString pythonPath;
|
||||||
QString qmakePath;
|
QString qmakePath;
|
||||||
|
QString qtPrefixPath;
|
||||||
QString qtVersionStr;
|
QString qtVersionStr;
|
||||||
Utils::QtMajorVersion qtVersion;
|
Utils::QtMajorVersion qtVersion;
|
||||||
};
|
};
|
||||||
|
@@ -65,7 +65,9 @@ static KitData createKitData(const Kit *kit)
|
|||||||
data.cxxCompilerPath = expander->expand(QString("%{Compiler:Executable:Cxx}"));
|
data.cxxCompilerPath = expander->expand(QString("%{Compiler:Executable:Cxx}"));
|
||||||
data.cmakePath = expander->expand(QString("%{CMake:Executable:FilePath}"));
|
data.cmakePath = expander->expand(QString("%{CMake:Executable:FilePath}"));
|
||||||
data.qmakePath = expander->expand(QString("%{Qt:qmakeExecutable}"));
|
data.qmakePath = expander->expand(QString("%{Qt:qmakeExecutable}"));
|
||||||
|
data.qtPrefixPath = expander->expand(QString("%{Qt:QT_INSTALL_PREFIX}"));
|
||||||
data.qtVersionStr = expander->expand(QString("%{Qt:Version}"));
|
data.qtVersionStr = expander->expand(QString("%{Qt:Version}"));
|
||||||
|
data.pythonPath = expander->expand(QString("%{Python:Path}"));
|
||||||
data.qtVersion = Utils::QtMajorVersion::None;
|
data.qtVersion = Utils::QtMajorVersion::None;
|
||||||
auto version = QVersionNumber::fromString(data.qtVersionStr);
|
auto version = QVersionNumber::fromString(data.qtVersionStr);
|
||||||
if (!version.isNull()) {
|
if (!version.isNull()) {
|
||||||
@@ -140,6 +142,10 @@ void MachineFileManager::addMachineFile(const Kit *kit)
|
|||||||
ba += entry("c", kitData.cCompilerPath);
|
ba += entry("c", kitData.cCompilerPath);
|
||||||
ba += entry("cpp", kitData.cxxCompilerPath);
|
ba += entry("cpp", kitData.cxxCompilerPath);
|
||||||
ba += entry("qmake", kitData.qmakePath);
|
ba += entry("qmake", kitData.qmakePath);
|
||||||
|
if (!kitData.pythonPath.isEmpty()){
|
||||||
|
ba += entry("python3", kitData.pythonPath);
|
||||||
|
ba += entry("python", kitData.pythonPath);
|
||||||
|
}
|
||||||
if (kitData.qtVersion == QtMajorVersion::Qt4)
|
if (kitData.qtVersion == QtMajorVersion::Qt4)
|
||||||
ba += entry("qmake-qt4", kitData.qmakePath);
|
ba += entry("qmake-qt4", kitData.qmakePath);
|
||||||
else if (kitData.qtVersion == QtMajorVersion::Qt5)
|
else if (kitData.qtVersion == QtMajorVersion::Qt5)
|
||||||
@@ -147,6 +153,10 @@ void MachineFileManager::addMachineFile(const Kit *kit)
|
|||||||
else if (kitData.qtVersion == QtMajorVersion::Qt6)
|
else if (kitData.qtVersion == QtMajorVersion::Qt6)
|
||||||
ba += entry("qmake-qt6", kitData.qmakePath);
|
ba += entry("qmake-qt6", kitData.qmakePath);
|
||||||
ba += entry("cmake", kitData.cmakePath);
|
ba += entry("cmake", kitData.cmakePath);
|
||||||
|
ba += "\n[cmake]\n";
|
||||||
|
ba += entry("CMAKE_C_COMPILER", kitData.cCompilerPath);
|
||||||
|
ba += entry("CMAKE_CXX_COMPILER", kitData.cxxCompilerPath);
|
||||||
|
ba += entry("CMAKE_PREFIX_PATH", kitData.qtPrefixPath);
|
||||||
|
|
||||||
filePath.writeFileContents(ba);
|
filePath.writeFileContents(ba);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user