mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	Add uninstall target for make and others
This commit is contained in:
		@@ -679,3 +679,14 @@ set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
 | 
				
			|||||||
set(CPACK_NSIS_MODIFY_PATH ON)
 | 
					set(CPACK_NSIS_MODIFY_PATH ON)
 | 
				
			||||||
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
 | 
					set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
 | 
				
			||||||
include(CPack)
 | 
					include(CPack)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#add uninstall target
 | 
				
			||||||
 | 
					if(NOT TARGET uninstall)
 | 
				
			||||||
 | 
					    configure_file(
 | 
				
			||||||
 | 
					        "cmake/UninstallHelper.cmake.in"
 | 
				
			||||||
 | 
					        "${CMAKE_CURRENT_BINARY_DIR}/UninstallHelper.cmake"
 | 
				
			||||||
 | 
					        IMMEDIATE @ONLY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    add_custom_target(uninstall
 | 
				
			||||||
 | 
					        COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/UninstallHelper.cmake)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										21
									
								
								cmake/UninstallHelper.cmake.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								cmake/UninstallHelper.cmake.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
 | 
				
			||||||
 | 
					  message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
 | 
				
			||||||
 | 
					string(REGEX REPLACE "\n" ";" files "${files}")
 | 
				
			||||||
 | 
					foreach(file ${files})
 | 
				
			||||||
 | 
					  message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
 | 
				
			||||||
 | 
					  if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR 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()
 | 
				
			||||||
 | 
					  else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
 | 
				
			||||||
 | 
					    message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
 | 
				
			||||||
 | 
					  endif()
 | 
				
			||||||
 | 
					endforeach()
 | 
				
			||||||
		Reference in New Issue
	
	Block a user