Skip to content

Commit

Permalink
Add 'make uninstall' support using CMake. Typically must be run as ro…
Browse files Browse the repository at this point in the history
…ot from build dir.
  • Loading branch information
liftoff-sr committed Oct 31, 2013
1 parent bab0258 commit 44c39c9
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 3 deletions.
17 changes: 14 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
22 changes: 22 additions & 0 deletions CMakeModules/cmake_uninstall.cmake.in
Original file line number Diff line number Diff line change
@@ -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()

0 comments on commit 44c39c9

Please sign in to comment.