QtCreator v2 не разпознава CMake v3

Подобни въпроси в Stack Overflow не се отнасяха съвсем до този конкретен проблем или не предоставяха решение*.

При импортиране на съществуващ CMake-проект QtCreator продължава да пита за път към изпълнимия файл на cmake. При въвеждане на неправилен път, записът ще бъде маркиран с червен шрифт. При въвеждане на правилния път шрифтът се връща към нормалното, но бутонът "Напред" ще остане деактивиран. По този начин диалоговият прозорец Импортиране не позволява на потребителя да продължи, така че можете само да отмените импортирането.

Конкретни използвани версии:

  • QtCreator v2.8.1
  • CMake v3.2.2
  • Gentoo Linux (който счита горните версии на пакета за стабилни и ги инсталира от изходния код)

*: Повечето подобни въпроси бяха: Импортиране на CMake проект в QtCreator, но не беше предоставено решение. Може би е бил написан доклад за грешка, но това беше преди повече от 2 години и половина и най-новият QtCreator v2 е 2.8.1 от преди почти 2 години.


person Sigi Schwartz    schedule 20.06.2015    source източник


Отговори (1)


Сравних изходния код на QtCreator на v2.8.1 с най-новия v3.4.1, по-специално кода за обработка на този диалогов прозорец CMake-path и проверката за изпълнимия файл.

Оказва се, че не просто проверява дали изпълнимият файл съществува, но също така проверява версията и информацията за функциите, предоставена от командата cmake --help и няколко други помощни команди. Най-важното е, че проверява версията на CMake, която изходът на cmake --help трябва да предостави. Но CMake v3 вече не предоставя тази информация, както направи v2.

Разбира се, тъй като всички тези инструменти са с отворен код, човек може да модифицира изходния код на QtCreator или CMake, за да коригира този проблем. Или човек може просто да предостави изпълним файл, обвит около истинския изпълним файл на CMake, който просто отново предоставя цялата необходима информация.

Малък shell скрипт свърши работа за мен:

#!/bin/dash
if [ $# -eq 1 ] && [ "--help" = $1 ]; then
    cmake --version
fi
cmake "$@"
exit 0

След конфигуриране на QtCreator в меню Инструменти => Опции... => Изграждане и изпълнение => CMake за използване на горния скрипт на обвивката, импортирането на проекта премина безупречно.

person Sigi Schwartz    schedule 20.06.2015
comment
Натъкнах се на подобно нещо с CentOS7, Qt Creator 4.5.1 и cmake3. Qt Creator не го разпознава правилно, но подобна обвивка работи перфектно, благодаря за подсказката! - person Igor; 03.03.2018