Dla mojego projektu chciałbym uruchomić polecenie, które generuje plik, który jest zainstalowany (innymi słowy, wygenerowany plik jest tylko plikiem danych, a nie kodem źródłowym).CMake: Jak ustawić polecenie add_custom_command tylko po zmianie wejścia?
Obecnie mam następujących w moim 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
)
Działa to dobrze, ale ponieważ ALL
jest przekazywana do add_custom_target()
, komenda zostanie wykonany za każdym razem biegnę make
.
Czy jest jakiś sposób, aby to zmienić, aby polecenie było uruchamiane tylko po zmianie pliku wejściowego? Komenda może trochę potrwać, więc najlepiej, aby nie była uruchamiana, chyba że jest to konieczne.
Z góry dziękuję!
'OUTPUT outputfile.txt' może być' OUTPUT output.txt'? –
Nie dostaję twojego pytania. 'dosomething' zależy od' inputfile.txt' i generuje 'output.txt', stąd' output.txt' jest ponownie generowany tylko po zmianie pliku 'inputfile.txt'. Czy tak nie jest? Czy też coś mi umknęło? – usr1234567