CMakeLists.txt 1.2 KB

123456789101112131415161718192021222324252627282930
  1. PROJECT(ToClean)
  2. # Build a simple project.
  3. ADD_EXECUTABLE(toclean toclean.cxx)
  4. # List some build-time-generated files.
  5. GET_TARGET_PROPERTY(TOCLEAN_FILES toclean LOCATION)
  6. SET(TOCLEAN_FILES ${TOCLEAN_FILES}
  7. "${ToClean_BINARY_DIR}/CMakeFiles/toclean.dir/toclean${CMAKE_CXX_OUTPUT_EXTENSION}")
  8. # Create a file that must be registered for cleaning.
  9. FILE(WRITE "${ToClean_BINARY_DIR}/Registered.txt"
  10. "File registered for cleaning.\n")
  11. SET_DIRECTORY_PROPERTIES(PROPERTIES
  12. ADDITIONAL_MAKE_CLEAN_FILES "${ToClean_BINARY_DIR}/Registered.txt")
  13. SET(TOCLEAN_FILES ${TOCLEAN_FILES} "${ToClean_BINARY_DIR}/Registered.txt")
  14. # Create a custom command whose output should be cleaned.
  15. ADD_CUSTOM_COMMAND(OUTPUT ${ToClean_BINARY_DIR}/generated.txt
  16. DEPENDS ${ToClean_SOURCE_DIR}/toclean.cxx
  17. COMMAND ${CMAKE_COMMAND}
  18. ARGS -E copy ${ToClean_SOURCE_DIR}/toclean.cxx
  19. ${ToClean_BINARY_DIR}/generated.txt
  20. )
  21. ADD_CUSTOM_TARGET(generate ALL DEPENDS ${ToClean_BINARY_DIR}/generated.txt)
  22. SET(TOCLEAN_FILES ${TOCLEAN_FILES} "${ToClean_BINARY_DIR}/generated.txt")
  23. # Configure a file listing these build-time-generated files.
  24. CONFIGURE_FILE(${ToClean_SOURCE_DIR}/ToCleanFiles.cmake.in
  25. ${ToClean_BINARY_DIR}/ToCleanFiles.cmake @ONLY IMMEDIATE)