Ich versuche ein einfaches Projekt auf CLion zu erstellen. Es verwendet CMake (ich bin neu hier), um Makefiles zu generieren, um ein Projekt (oder eine Art davon) zu erstellen.
Alles, was ich tun muss, ist, jedes Mal, wenn ich meinen Code ausführe, eine Nicht-Projektdatei (eine Art Ressourcendatei) in ein Binärverzeichnis zu übertragen.
Diese Datei enthält Testdaten und wird von der Anwendung geöffnet, um sie zu lesen. Ich habe verschiedene Möglichkeiten ausprobiert:
Über
file(COPY ...
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/input.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/input.txt
Sieht gut aus, funktioniert aber nur einmal und kopiert die Datei nach dem nächsten Lauf nicht erneut.
Über
add_custom_command
OUTPUT
Ausführungadd_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/input.txt COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/input.txt ${CMAKE_CURRENT_BINARY_DIR}/input.txt)
TARGET
Ausführungadd_custom_target(foo) add_custom_command( TARGET foo COMMAND ${CMAKE_COMMAND} copy ${CMAKE_CURRENT_BINARY_DIR}/test/input.txt ${CMAKE_SOURCE_DIR})
Aber niemand davon funktioniert.
Was mache ich falsch?
configure_file
mit Unterverzeichnissen nicht funktioniert, selbst wenn Sie GLOB zum Erstellen einer Liste von Dateien verwenden.