Пользовательская команда не выполняется с параметром --target в cmake
Дополнительный вопрос к этому вопросу: cmake project собирает только один конкретный исполняемый файл (и его зависимости)
У меня есть заказная цель, поэтому она будет запускаться каждый раз, когда я что-то компилирую в своем проекте. Теперь, когда я вызываю явную цель, как было задано в вопросе выше, эта пользовательская команда больше не выполняется. Код:
add_custom_target(
custom_command
ALL
DEPENDS hash.h
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "[INFO] CMake generating special *.h file from custom command magic."
)
Я уже пытался удалить ALL
директива, но это ничего не изменило.
Забыл добавить: я использую cmake/3.13.4
составлено из источника.
1 ответ
Извините за более поздний ответ, но работа была сумасшедшей. Поэтому после того, как я прочитал комментарии @Th.Thielemann и @squareskittles, я перечитал документацию по cmake и нашел свое решение. Следующий код был написан под cmake/3.0.0
Давным-давно
add_custom_command(
OUTPUT some_header.h
COMMAND cat ${BISON_HEADER} other_header.h | awk -f some_wak_file.awk > some_header.h
DEPENDS ${BISON_HEADER}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_target(
custom_command
ALL
DEPENDS some_header.h
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "[INFO] CMake generating special *.h file from custom command magic."
)
После прочтения снова на документации для cmake/3.13
стало совершенно очевидно, что это можно записать в более простой форме:
add_custom_target(
timex_utilities_hash
ALL
COMMAND cat ${BISON_HEADER} other_header.h | awk -f some_wak_file.awk > some_header.h
DEPENDS ${BISON_HEADER}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
Еще раз спасибо @Th. Thielemann и @squareskittles для пациентов и пациентов, чтобы проверить еще раз!