1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- cmake_minimum_required (VERSION 2.6)
- project(MakeClean)
- # Build the to-clean project.
- try_compile(TOCLEAN_BUILT
- ${MakeClean_BINARY_DIR}/ToClean
- ${MakeClean_SOURCE_DIR}/ToClean
- ToClean
- OUTPUT_VARIABLE OUTPUT
- )
- if(TOCLEAN_BUILT)
- message(
- "Building ToClean succeeded with the following output:\n"
- "[${OUTPUT}]"
- )
- else()
- message(FATAL_ERROR
- "Building ToClean failed with the following output:\n"
- "[${OUTPUT}]"
- )
- endif()
- # Get the set of files to check from the ToClean project.
- include(${MakeClean_BINARY_DIR}/ToClean/ToCleanFiles.cmake)
- # Check for the existence of the files.
- foreach(f ${TOCLEAN_FILES})
- if(EXISTS "${f}")
- else()
- message(FATAL_ERROR "File \"${f}\" does not exist!")
- endif()
- endforeach()
- # Configure an executable to check that all the files are missing.
- set(CHECK_FILES)
- foreach(f ${TOCLEAN_FILES})
- string(APPEND CHECK_FILES " \"${f}\",\n")
- endforeach()
- configure_file(${MakeClean_SOURCE_DIR}/check_clean.c.in
- ${MakeClean_BINARY_DIR}/check_clean.c @ONLY)
- add_executable(check_clean ${MakeClean_BINARY_DIR}/check_clean.c)
- # After the executable builds, clean the files.
- add_custom_command(
- TARGET check_clean
- POST_BUILD
- COMMAND ${CMAKE_COMMAND} --build ${MakeClean_BINARY_DIR}/ToClean
- --target clean
- COMMENT "Clean the ToClean Project"
- )
|