From 4075b793c0d92de565f7a68cd2f9cfe6d26b2830 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Mon, 7 Feb 2022 13:09:21 +0100 Subject: [PATCH] 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 --- .../cmakeprojectmanager/cmakebuildconfiguration.cpp | 6 +++--- src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp | 4 ++++ src/plugins/cmakeprojectmanager/cmakeconfigitem.h | 1 + src/plugins/cmakeprojectmanager/cmakekitinformation.cpp | 8 ++++---- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 02279d1408e..7760ad63089 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -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(); 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(); diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp index 9347d84eccb..ad9c2277928 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp @@ -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) { } diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h index 10a8d8b7174..e7490562e3d 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h @@ -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); diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp index 33224d439d1..f97575be5ac 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp @@ -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; }