diff options
author | Christian Kandeler <[email protected]> | 2022-10-11 16:22:15 +0200 |
---|---|---|
committer | Christian Kandeler <[email protected]> | 2022-10-13 13:28:52 +0000 |
commit | a34125ae11ee391f301dc3f414e91e20f6b4da4e (patch) | |
tree | 1c7fba9d4d8c2fd81e2c4b0accecf3b3c3d37527 /src/plugins/qmakeprojectmanager | |
parent | b6a766669751ec71cfdb026ad3dbd3b8d8be1c4e (diff) |
CMake/qmake: Fix target triple for iOS targets
Neither cmake nor qmake know the full iOS compiler command line, so we
have to construct the target triple for the code model ourselves.
Fixes: QTCREATORBUG-28278
Change-Id: I6cac06f340e9388de5c86509a8df4ac00eef87cd
Reviewed-by: Eike Ziller <[email protected]>
Diffstat (limited to 'src/plugins/qmakeprojectmanager')
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp | 1 | ||||
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakeparsernodes.h | 1 | ||||
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakeproject.cpp | 9 |
3 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp index 6df3ff16fe7..8467b62bd6b 100644 --- a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp @@ -1557,6 +1557,7 @@ QmakeEvalResultPtr QmakeProFile::evaluate(const QmakeEvalInput &input) result->newVarValues[Variable::AndroidAbis] = exactReader->values(QLatin1String(Android::Constants::ANDROID_ABIS)); result->newVarValues[Variable::AndroidApplicationArgs] = exactReader->values(QLatin1String(Android::Constants::ANDROID_APPLICATION_ARGUMENTS)); result->newVarValues[Variable::AndroidExtraLibs] = exactReader->values(QLatin1String(Android::Constants::ANDROID_EXTRA_LIBS)); + result->newVarValues[Variable::IosDeploymentTarget] = exactReader->values("QMAKE_IOS_DEPLOYMENT_TARGET"); result->newVarValues[Variable::AppmanPackageDir] = exactReader->values(QLatin1String("AM_PACKAGE_DIR")); result->newVarValues[Variable::AppmanManifest] = exactReader->values(QLatin1String("AM_MANIFEST")); result->newVarValues[Variable::IsoIcons] = exactReader->values(QLatin1String("ISO_ICONS")); diff --git a/src/plugins/qmakeprojectmanager/qmakeparsernodes.h b/src/plugins/qmakeprojectmanager/qmakeparsernodes.h index d481dda64ce..e0e6cdd1331 100644 --- a/src/plugins/qmakeprojectmanager/qmakeparsernodes.h +++ b/src/plugins/qmakeprojectmanager/qmakeparsernodes.h @@ -80,6 +80,7 @@ enum class Variable { AndroidPackageSourceDir, AndroidExtraLibs, AndroidApplicationArgs, + IosDeploymentTarget, AppmanPackageDir, AppmanManifest, IsoIcons, diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 605c4c19bb2..47adf657e9a 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -350,10 +350,15 @@ void QmakeBuildSystem::updateCppCodeModel() }; const QStringList extraCxxArgs = getExtraFlagsFromCompilerVar(Variable::QmakeCxx); + cxxArgs << extraCxxArgs; const QStringList extraCArgs = getExtraFlagsFromCompilerVar(Variable::QmakeCc); + cArgs << extraCArgs; + addTargetFlagForIos(cArgs, cxxArgs, this, [pro] { + return pro->variableValue(Variable::IosDeploymentTarget).join(QString()); + }); - rpp.setFlagsForCxx({kitInfo.cxxToolChain, cxxArgs << extraCxxArgs, includeFileBaseDir}); - rpp.setFlagsForC({kitInfo.cToolChain, cArgs << extraCArgs, includeFileBaseDir}); + rpp.setFlagsForCxx({kitInfo.cxxToolChain, cxxArgs, includeFileBaseDir}); + rpp.setFlagsForC({kitInfo.cToolChain, cArgs, includeFileBaseDir}); rpp.setMacros(ProjectExplorer::Macro::toMacros(pro->cxxDefines())); rpp.setPreCompiledHeaders(pro->variableValue(Variable::PrecompiledHeader)); rpp.setSelectedForBuilding(pro->includedInExactParse()); |