Название: [Решено]CMake. Не работает add_custom_command. Отправлено: kuzulis от Октябрь 07, 2010, 10:56 Доброго времени суток.
Бьюсь с CMake (cmake version 2.6-patch 4) под Windows. Упорно не хочет отрабатывать add_custom_command!! Кусок примера: Цитировать ... set( LOG_FILE ${CMAKE_CURRENT_BINARY_DIR}/messages.log ) add_custom_command( OUTPUT ${LOG_FILE} COMMAND ipconfig > ${LOG_FILE} ) ... Я уже перепробовал различные варианты в команд в поле COMMAND и ни одна не работает.. Я остановился для примера на команде: ipconfig для простоты. В чем может быть проблема? :-\ Название: Re: CMake. Не работает add_custom_command. Отправлено: igor_bogomolov от Октябрь 07, 2010, 11:30 У меня всё прекрасно работает. Делаю примерно так
Код
Название: Re: CMake. Не работает add_custom_command. Отправлено: kuzulis от Октябрь 07, 2010, 11:39 Ну а мой пример заработает у Вас?
Правда для *.nix изменить его чуть чуть нужно (поменять команду на ifconfig к примеру) Странно как-то... После выполнения: Цитировать #cmake ../ #make в директории для сборки нет ни в одном файле (кеши и пр.) упоминания о messages.log. Такое впечатление что CMake вообще игнорирует add_custom_command ! >:( Название: Re: CMake. Не работает add_custom_command. Отправлено: igor_bogomolov от Октябрь 07, 2010, 11:49 Ну а мой пример заработает у Вас? Да, работает. Делал такКод
Ты цель не забыл добавить в add_executable или add_library? Название: Re: CMake. Не работает add_custom_command. Отправлено: kuzulis от Октябрь 07, 2010, 12:00 Цитировать Ты цель не забыл добавить в add_executable или add_library? Хм.. странно... все это.. очень странно.. После того как в add_executable я добавил ${LOG_FILE} то оно заработало! о_О Ппц.. Но мне не нужно добавлять результат выполнения команды в какие-то цели! Мне просто нужно получить сгенерированные файлы и перенести их туда куда мне нужно, т.е. не нужно их ни линковать ни что либо иное делать... Не понимаю причем тут цель?! :-\ Брр.... непонятно. ---- Игорь, спасибо за помощь! Название: Re: CMake. Не работает add_custom_command. Отправлено: kuzulis от Октябрь 07, 2010, 12:19 Но добавление к add_executable или add_library это не выход., т.к. например у меня в есть поддиректория в которой хранятся исходники переводов(локализаций) и их нужно с помощью add_custom_command преобразовать в бинарики (не ts->qm!!!).
И в этом случае не получается использовать add_custom_command. Название: Re: CMake. Не работает add_custom_command. Отправлено: igor_bogomolov от Октябрь 07, 2010, 13:01 Всё получится :). Если тебя смущает add_executable / add_library, можешь сделать так
Код Тогда твоя команда будет исполняться как во время обычной компиляции, т.е. запуска make без параметров, а так же, ты сможешь отдельно выполнить свою команду при помощи make log Название: Re: CMake. Не работает add_custom_command. Отправлено: kuzulis от Октябрь 07, 2010, 13:26 Уф.. все получилось, сделал так:
Цитировать set(LOG_FILE ${CMAKE_CURRENT_BINARY_DIR}/messages.log ) add_custom_target(log ALL DEPENDS) add_custom_command(TARGET log COMMAND ifconfig > ${LOG_FILE}) Замечание: Важно чтобы add_custom_target был выше чем add_custom_command!!! Спасибо! :) |