diff options
Diffstat (limited to 'cmake/cmake_uninstall.cmake.in')
-rw-r--r-- | cmake/cmake_uninstall.cmake.in | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in new file mode 100644 index 0000000..c780c8d --- /dev/null +++ b/cmake/cmake_uninstall.cmake.in @@ -0,0 +1,82 @@ +# 'delete_empty_folder' function +function(delete_empty_folder DIR) + if(NOT EXISTS ${DIR}) + return() + endif() + + # check if folder is empty + file(GLOB RESULT "${DIR}/*") + list(LENGTH RESULT RES_LEN) + if(RES_LEN EQUAL 0) + if(WITH_CLEANUP) + message(STATUS "Deleting empty folder ${DIR}") + file(REMOVE_RECURSE ${DIR}) + else() + message(STATUS " ${DIR}") + endif() + else() + #message(STATUS "${DIR} is not empty! It won't be removed.") + # message(STATUS "FILES = ${RESULT}") + endif() +endfunction(delete_empty_folder) + +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 \"$ENV{DESTDIR}${file}\"") + if(EXISTS "$ENV{DESTDIR}${file}") + + exec_program( "@CMAKE_COMMAND@" + ARGS "-E remove \"$ENV{DESTDIR}${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VALUE rm_retval + ) + if( NOT "${rm_retval}" STREQUAL 0 ) + message( FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"" ) + endif( NOT "${rm_retval}" STREQUAL 0 ) + + else(EXISTS "$ENV{DESTDIR}${file}") + + message( STATUS "File \"$ENV{DESTDIR}${file}\" does not exist." ) + + endif(EXISTS "$ENV{DESTDIR}${file}") + + get_filename_component(FOLDER $ENV{DESTDIR}${file} DIRECTORY) + set(FOLDERS ${FOLDERS} ${FOLDER}) + +endforeach(file) + +# remove empty folders +message(STATUS "") +if(WITH_CLEANUP) + message(STATUS "Removing empty folders") +else() + message(STATUS "Empty folders that may be safely removed:") +endif() + +list(APPEND FOLDERS + "@INSTALL_LIB_DIR@/CMake" + "@CMAKE_INSTALL_FULL_LIBDIR@/remmina" + "@REMMINA_DATADIR@/remmina" + ) + +list(REMOVE_DUPLICATES FOLDERS) +foreach(dir ${FOLDERS}) + # message(STATUS ${dir}) + delete_empty_folder(${dir}) + # message(STATUS "") +endforeach(dir) + +# delete_empty_folder("@INSTALL_INCLUDE_DIR@") +# delete_empty_folder("@INSTALL_BIN_DIR@") +# delete_empty_folder("@INSTALL_LIB_DIR@/CMake") +# delete_empty_folder("@INSTALL_LIB_DIR@") +# delete_empty_folder("@CMAKE_INSTALL_FULL_LIBDIR@/remmina") +# delete_empty_folder("@REMMINA_DATADIR@/remmina") +message(STATUS "") |