Add 'make uninstall' support using CMake. Typically must be run as root from build dir.

This commit is contained in:
Dick Hollenbeck 2013-10-31 13:38:35 -05:00
parent bab0258828
commit 44c39c95d3
2 changed files with 36 additions and 3 deletions

View File

@ -32,9 +32,20 @@ if(WIN32)
set(KICAD_TEMPLATES template)
endif(WIN32)
mark_as_advanced(KICAD_DATA
KICAD_MODULES
KICAD_LIBRARY)
mark_as_advanced( KICAD_DATA KICAD_MODULES KICAD_LIBRARY )
#================================================
# "make uninstall" rules
#================================================
configure_file(
"${PROJECT_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" )
# CMake will look in these dirs for nested 'CMakeLists.txt' files.
# Resources.

View File

@ -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()
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( STATUS "Problem when removing \"$ENV{DESTDIR}${file}\"" )
endif()
else()
message( STATUS "File \"$ENV{DESTDIR}${file}\" does not exist." )
endif()
endforeach()