소스 검색

add uninstall target in cmake

Alanscut 5 년 전
부모
커밋
bb059dc2e1
2개의 변경된 파일30개의 추가작업 그리고 0개의 파일을 삭제
  1. 3 0
      CMakeLists.txt
  2. 27 0
      library_config/uninstall.cmake

+ 3 - 0
CMakeLists.txt

@@ -253,6 +253,9 @@ if(ENABLE_CJSON_TEST)
         DEPENDS ${TEST_CJSON})
 endif()
 
+#Create the uninstall target
+add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${PROJECT_SOURCE_DIR}/library_config/uninstall.cmake")
+
 # Enable the use of locales
 option(ENABLE_LOCALES "Enable the use of locales" ON)
 if(ENABLE_LOCALES)

+ 27 - 0
library_config/uninstall.cmake

@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 2.8.5)
+
+set(MANIFEST "${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt")
+
+if(NOT EXISTS ${MANIFEST})
+    message(FATAL_ERROR "Cannot find install mainfest: ${MANIFEST}")
+endif()
+
+file(STRINGS ${MANIFEST} files)
+foreach(file ${files})
+    if(EXISTS ${file} OR IS_SYMLINK ${file})
+        message(STATUS "Removing: ${file}")
+
+	execute_process(COMMAND rm -f ${file}
+            RESULT_VARIABLE result
+            OUTPUT_QUIET
+            ERROR_VARIABLE stderr
+            ERROR_STRIP_TRAILING_WHITESPACE
+        )
+
+        if(NOT ${result} EQUAL 0)
+            message(FATAL_ERROR "${stderr}")
+        endif()
+    else()
+        message(STATUS "Does-not-exist: ${file}")
+    endif()
+endforeach(file)