From ec1a586a5fc5f318d1f98df354f2e5a1f8f9fa8e Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 17 May 2007 11:48:30 +0000 Subject: [PATCH] From David Callu, "I have added the uninstall command at the end of the first file, and the configuration file template use by the command is the second file. The command use the cmake_install.cmake file which list all file installed by the install target. this issue come from the CMake FAQ" --- CMakeLists.txt | 10 ++++++++++ CMakeModules/cmake_uninstall.cmake.in | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 CMakeModules/cmake_uninstall.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 848d3d941..b6e0dd509 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -371,3 +371,13 @@ IF(NOT OSG_CONFIG_HAS_BEEN_RUN_BEFORE) ENDIF(NOT OSG_CONFIG_HAS_BEEN_RUN_BEFORE) +#----------------------------------------------------------------------------- +### uninstall target +#----------------------------------------------------------------------------- +CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/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") + diff --git a/CMakeModules/cmake_uninstall.cmake.in b/CMakeModules/cmake_uninstall.cmake.in new file mode 100644 index 000000000..bcf2437c7 --- /dev/null +++ b/CMakeModules/cmake_uninstall.cmake.in @@ -0,0 +1,22 @@ +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(EXISTS "${file}") + EXEC_PROGRAM( + "@CMAKE_COMMAND@" ARGS "-E remove \"${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VALUE rm_retval + ) + IF("${rm_retval}" STREQUAL 0) + ELSE("${rm_retval}" STREQUAL 0) + MESSAGE(FATAL_ERROR "Problem when removing \"${file}\"") + ENDIF("${rm_retval}" STREQUAL 0) + ELSE(EXISTS "${file}") + MESSAGE(STATUS "File \"${file}\" does not exist.") + ENDIF(EXISTS "${file}") +ENDFOREACH(file) \ No newline at end of file