Как настроить вывод cmake - PullRequest
4 голосов
/ 19 марта 2012

Например, при компиляции файлов .c я хочу, чтобы cmake просто печатал

CC    xxx.c

в стандартный вывод, как в linux kbuild.

Ответы [ 2 ]

8 голосов
/ 24 марта 2012

Вывод CMake можно настроить, подавив стандартные сообщения, генерируемые CMake, и вместо этого вывести собственное сообщение в сценарии запуска. Добавьте следующий код к вашему внешнему CMakeLists.txt:

set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CMAKE_SOURCE_DIR}/custom_output.sh")

Установка глобального свойства RULE_MESSAGES на OFF подавит стандартные сообщения. Глобальное свойство RULE_LAUNCH_COMPILE настроено для пользовательского сценария запуска с именем custom_output.sh, который необходимо добавить в корень исходного дерева CMake:

#!/bin/sh

# shell script invoked with the following arguments
# $(CXX) $(CXX_DEFINES) $(CXX_FLAGS) -o OBJECT_FILE -c SOURCE_FILE

# extract parameters
SOURCE_FILE="${@: -1:1}"
OBJECT_FILE="${@: -3:1}"

echo "CC `basename \"$SOURCE_FILE\"`"

# invoke compiler
exec "$@"

Необходимо установить исполняемый бит скрипта.

Вывод компоновщика можно настроить аналогичным образом, установив сценарий RULE_LAUNCH_LINK .

1 голос
/ 23 марта 2012

Это невозможно в текущей версии CMake, без редактирования источника самостоятельно. Конечно, sed и awk помогут вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...