Projem için, yüklenen bir dosyayı üreten bir komut çalıştırmak istiyorum (başka bir deyişle, oluşturulan dosya yalnızca kaynak kod değil bir veri dosyasıdır).CMake: add_custom_command öğesi yalnızca giriş değiştirildiğinde ne zaman uygulanır?
Şu anda benim CMakeLists.txt
add_custom_command(
OUTPUT outputfile.txt
COMMAND dosomething ${CMAKE_CURRENT_SOURCE_DIR}/inputfile.txt
${CMAKE_CURRENT_BINARY_DIR}/output.txt
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/inputfile.txt
)
add_custom_target(
run_gen_command
ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/output.txt
)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/output.txt
DESTINATION ${CMAKE_INSTALL_DATADIR}/somewhere
)
Bu iyi çalışır aşağıdaki var ama ALL
add_custom_target()
geçirilir, çünkü komut ben make
her çalıştırıldığında alır.
Bunu değiştirebilmem için herhangi bir yol var mı, böylece komut sadece giriş dosyası değiştirildiğinde çalıştırılsın mı? Komutun tamamlanması biraz zaman alabilir, bu yüzden ideal olarak gerekmedikçe çalışmaz.
Şimdiden teşekkürler!
'OUTPUT outputfile.txt' OUTPUT output.txt' olabilir mi? –
Sorunu anlamadım. 'dosomething' inputfile.txt 'ye bağlıdır ve' output.txt 'üretmektedir, dolayısıyla 'output.txt' sadece inputfile.txt 'değiştiyse yeniden oluşturulur. Durum böyle değil mi? Yoksa bir şey özledim mi? – usr1234567