ENH: Add uninstall. This is not really a feature but more of an example on how to do it.

This commit is contained in:
Andy Cedilnik 2005-01-18 08:58:27 -05:00
parent 3e7366e5c2
commit 1540067e20
2 changed files with 29 additions and 0 deletions

View File

@ -130,3 +130,11 @@ IF(WIN32)
ENDIF(NOT BORLAND) ENDIF(NOT BORLAND)
ENDIF(NOT UNIX) ENDIF(NOT UNIX)
ENDIF(WIN32) ENDIF(WIN32)
CONFIGURE_FILE(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
ADD_CUSTOM_TARGET(uninstall
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")

21
cmake_uninstall.cmake.in Normal file
View File

@ -0,0 +1,21 @@
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
STRING(REGEX REPLACE "\n" ";" files "${files}")
FOREACH(file ${files})
MESSAGE(STATUS "Uninstalling \"${file}\"")
IF(NOT EXISTS "${file}")
MESSAGE(FATAL_ERROR "File \"${file}\" does not exists.")
ENDIF(NOT EXISTS "${file}")
EXEC_PROGRAM("@CMAKE_COMMAND@" ARGS "-E remove \"${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VARIABLE rm_retval)
IF("${rm_retval}" GREATER 0)
MESSAGE(FATAL_ERROR "Problem when removing \"${file}\"")
ENDIF("${rm_retval}" GREATER 0)
ENDFOREACH(file)