Мы используем CMake как для сборки, так и для установки.В случае, если ни одна цель не устарела, то есть не требуется выполнять какие-либо шаги сборки, установка все равно занимает значительное время.
Это нормальное поведение для CMake?CMake все еще оценивает правило установки для цели, которая не была перестроена?В идеале шаг установки должен завершиться практически мгновенно, если ни одна из целей не устарела.
Для полноты, пример правила install()
в нашем случае будет иметь вид:
add_library(foo SHARED
${FOO_SOURCES}
)
target_link_libraries(foo
PUBLIC bar
)
install(
TARGETS foo
)
Вместо использования install()
правил я думал о добавлении пользовательских команд для выполнения «установки», которые зависят от отдельных целей, чтобы гарантировать, что установка не будет выполняться, если ничего не было перестроено.Это хороший подход?