forked from qt-creator/qt-creator
CMakePM: Use the right type for the few kit CMake variables
Use FILEPATH for CMAKE_C|CXX_COMPILER variables, and PATH for directory variables like CMAKE_PREFIX_PATH. Task-number: QTCREATORBUG-27005 Change-Id: I906de43ab97d2dbad0374469c4576d901d2f6339 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -102,7 +102,7 @@ const char DEVELOPMENT_TEAM_FLAG[] = "Ios:DevelopmentTeam:Flag";
|
||||
const char PROVISIONING_PROFILE_FLAG[] = "Ios:ProvisioningProfile:Flag";
|
||||
const char CMAKE_OSX_ARCHITECTURES_FLAG[] = "CMAKE_OSX_ARCHITECTURES:DefaultFlag";
|
||||
const char CMAKE_QT6_TOOLCHAIN_FILE_ARG[] =
|
||||
"-DCMAKE_TOOLCHAIN_FILE:PATH=%{Qt:QT_INSTALL_PREFIX}/lib/cmake/Qt6/qt.toolchain.cmake";
|
||||
"-DCMAKE_TOOLCHAIN_FILE:FILEPATH=%{Qt:QT_INSTALL_PREFIX}/lib/cmake/Qt6/qt.toolchain.cmake";
|
||||
|
||||
namespace Internal {
|
||||
|
||||
@@ -1087,7 +1087,7 @@ static CommandLine defaultInitialCMakeCommand(const Kit *k, const QString buildT
|
||||
|
||||
// Package manager
|
||||
if (!isDocker(k) && settings->packageManagerAutoSetup.value()) {
|
||||
cmd.addArg("-DCMAKE_PROJECT_INCLUDE_BEFORE:PATH="
|
||||
cmd.addArg("-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH="
|
||||
"%{IDE:ResourcePath}/package-manager/auto-setup.cmake");
|
||||
}
|
||||
|
||||
@@ -1204,7 +1204,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
|
||||
auto ndkLocation = bs->data(Android::Constants::NdkLocation).value<FilePath>();
|
||||
cmd.addArg("-DANDROID_NDK:PATH=" + ndkLocation.path());
|
||||
|
||||
cmd.addArg("-DCMAKE_TOOLCHAIN_FILE:PATH="
|
||||
cmd.addArg("-DCMAKE_TOOLCHAIN_FILE:FILEPATH="
|
||||
+ ndkLocation.pathAppended("build/cmake/android.toolchain.cmake").path());
|
||||
|
||||
auto androidAbis = bs->data(Android::Constants::AndroidMkSpecAbis).toStringList();
|
||||
|
||||
@@ -51,6 +51,10 @@ CMakeConfigItem::CMakeConfigItem(const QByteArray &k, Type t,
|
||||
key(k), type(t), value(v), documentation(d), values(s)
|
||||
{ }
|
||||
|
||||
CMakeConfigItem::CMakeConfigItem(const QByteArray &k, Type t, const QByteArray &v) :
|
||||
key(k), type(t), value(v)
|
||||
{ }
|
||||
|
||||
CMakeConfigItem::CMakeConfigItem(const QByteArray &k, const QByteArray &v) :
|
||||
key(k), value(v)
|
||||
{ }
|
||||
|
||||
@@ -50,6 +50,7 @@ public:
|
||||
enum Type { FILEPATH, PATH, BOOL, STRING, INTERNAL, STATIC, UNINITIALIZED };
|
||||
CMakeConfigItem();
|
||||
CMakeConfigItem(const QByteArray &k, Type t, const QByteArray &d, const QByteArray &v, const QStringList &s = {});
|
||||
CMakeConfigItem(const QByteArray &k, Type t, const QByteArray &v);
|
||||
CMakeConfigItem(const QByteArray &k, const QByteArray &v);
|
||||
|
||||
static QStringList cmakeSplitValue(const QString &in, bool keepEmpty = false);
|
||||
|
||||
@@ -1109,12 +1109,12 @@ CMakeConfig CMakeConfigurationKitAspect::defaultConfiguration(const Kit *k)
|
||||
Q_UNUSED(k)
|
||||
CMakeConfig config;
|
||||
// Qt4:
|
||||
config << CMakeConfigItem(CMAKE_QMAKE_KEY, "%{Qt:qmakeExecutable}");
|
||||
config << CMakeConfigItem(CMAKE_QMAKE_KEY, CMakeConfigItem::FILEPATH, "%{Qt:qmakeExecutable}");
|
||||
// Qt5:
|
||||
config << CMakeConfigItem(CMAKE_PREFIX_PATH_KEY, "%{Qt:QT_INSTALL_PREFIX}");
|
||||
config << CMakeConfigItem(CMAKE_PREFIX_PATH_KEY, CMakeConfigItem::PATH, "%{Qt:QT_INSTALL_PREFIX}");
|
||||
|
||||
config << CMakeConfigItem(CMAKE_C_TOOLCHAIN_KEY, "%{Compiler:Executable:C}");
|
||||
config << CMakeConfigItem(CMAKE_CXX_TOOLCHAIN_KEY, "%{Compiler:Executable:Cxx}");
|
||||
config << CMakeConfigItem(CMAKE_C_TOOLCHAIN_KEY, CMakeConfigItem::FILEPATH, "%{Compiler:Executable:C}");
|
||||
config << CMakeConfigItem(CMAKE_CXX_TOOLCHAIN_KEY, CMakeConfigItem::FILEPATH, "%{Compiler:Executable:Cxx}");
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user