Сообщения Clion и CMake

Я только начал использовать Clion IDE. Может быть, это где-то написано, но я не видел этого в поиске Google. Если я поставлю вызов message() в свой скрипт CMake, где в Clion я смогу увидеть результат? Эти вызовы сообщений — единственный известный мне способ отладки сценариев CMake.


person krapht    schedule 20.05.2015    source источник
comment
Есть ли в IDE окно журнала или что-то в этом роде?   -  person Joel    schedule 21.05.2015
comment
Да, но он сосредоточен на выводах gcc, ld и т. д. CMake печатает на стандартный вывод, но окно журнала этого не улавливает.   -  person krapht    schedule 21.05.2015
comment
Возможно, вам нужно настроить его для запуска cmake, чтобы вы могли перехватывать stdout, stderr и т. д.   -  person Joel    schedule 21.05.2015


Ответы (4)


Используйте message(WARNING ...) вместо message(...). Предупреждения отправляются в stderr.

person Sergey Voronov    schedule 21.05.2015
comment
ПРЕДУПРЕЖДЕНИЕ больше не требуется (по крайней мере, в CLion 1.5). - person Brent Faust; 26.02.2016
comment
Извините, что противоречу вам, Брент, но я использую CLion 2016.2.2, и у меня была та же проблема, и только решение, предложенное Сергеем, исправило ее для меня. - person David Roulin; 13.10.2016

Другой возможный обходной путь:

  • отключить «автоперезагрузку cmake», если она включена
  • после того, как вы что-то изменили в своем файле cmake, не запускайте «Обновить изменения»
  • запустить/создать свой проект

Когда clion запускает сборку, он понимает, что файлы cmake не обновлены, и перезагружает их, но, как и другие выходные данные сборки, он отображается на вкладке «Сообщения».

person Michael    schedule 13.01.2016
comment
Это должен быть ответ. По крайней мере, для CLion 1.5+ он стирает вывод CMake, если Auto-Reload-CMake включен. - person Brent Faust; 26.02.2016

Предупреждения и ошибки отображаются, но другие сообщения в настоящее время скрыты. Однако есть запрос функции, относительно этой проблемы.

person MarkusParker    schedule 10.11.2015

Начиная с CLion 2016.2.2, сборка № CL-162.1967.7, CLion отображает выходные данные CMake message(STATUS) в окне инструментов сообщений (Alt+0 ) во время сборки (Ctrl+F9), когда проект впервые собирается после внесения изменений в CMakeLists.txt. Но, как отмечено в других ответах, этот вывод не отображается в окне инструментов CLion CMake (как многие бы предпочли).

Обновление: выше я писал, что CLion "отображает вывод сообщения (СТАТУС)". Теперь я обнаружил, что это происходит с перерывами. @Michael написал, что это происходит, если вы пропустите перезагрузку cmake после изменения файла cmake, но я обнаружил, что CLion иногда не отображает выходные данные CMake в своем окне инструмента «Сообщения» даже в этом состоянии. До сих пор я не обнаружил точных обстоятельств, из-за которых CLion показывает вывод сообщения CMake (STATUS), сообщит здесь, когда / если я это сделаю.

Большое обновление: CLion открывает 2016.3 EAP: определяемые пользователем литералы, выходные данные CMake, завершение ключевых слов C11 и многое другое. См., в частности:окно вывода CMake: a отдельный, я думаю, что это решает всю эту проблему: CLion 2016.3 EAP добавляет новую вкладку, содержащую выходные данные команды CMake.

Конечно же, это EAP, который поставляется с оговоркой JetBrains:

Важно отличать EAP от традиционных предварительных версий программного обеспечения. Обратите внимание, что качество версий EAP иногда может быть намного ниже даже обычных бета-стандартов.

Так что используйте его на свой страх и риск, но вы можете решить, что этот риск стоит взять на себя, если вам нужна отладка CMake.

person CODE-REaD    schedule 08.09.2016