diff options
-rw-r--r-- | CMakeLists.txt | 9 | ||||
-rw-r--r-- | cmake_uninstall.cmake.in | 21 |
2 files changed, 30 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 425dd0e..71ea916 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -31,6 +31,15 @@ find_package(Ffi REQUIRED) | |||
31 | 31 | ||
32 | include(EFLCheck) | 32 | include(EFLCheck) |
33 | 33 | ||
34 | # uninstall target | ||
35 | configure_file( | ||
36 | "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" | ||
37 | "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" | ||
38 | IMMEDIATE @ONLY) | ||
39 | |||
40 | add_custom_target(uninstall | ||
41 | COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) | ||
42 | |||
34 | add_subdirectory(src/lib) | 43 | add_subdirectory(src/lib) |
35 | add_subdirectory(src/bin) | 44 | add_subdirectory(src/bin) |
36 | #add_subdirectory(src/tests) | 45 | #add_subdirectory(src/tests) |
diff --git a/cmake_uninstall.cmake.in b/cmake_uninstall.cmake.in new file mode 100644 index 0000000..2037e36 --- /dev/null +++ b/cmake_uninstall.cmake.in | |||
@@ -0,0 +1,21 @@ | |||
1 | if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") | ||
2 | message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") | ||
3 | endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") | ||
4 | |||
5 | file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) | ||
6 | string(REGEX REPLACE "\n" ";" files "${files}") | ||
7 | foreach(file ${files}) | ||
8 | message(STATUS "Uninstalling $ENV{DESTDIR}${file}") | ||
9 | if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") | ||
10 | exec_program( | ||
11 | "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" | ||
12 | OUTPUT_VARIABLE rm_out | ||
13 | RETURN_VALUE rm_retval | ||
14 | ) | ||
15 | if(NOT "${rm_retval}" STREQUAL 0) | ||
16 | message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") | ||
17 | endif(NOT "${rm_retval}" STREQUAL 0) | ||
18 | else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") | ||
19 | message(STATUS "File $ENV{DESTDIR}${file} does not exist.") | ||
20 | endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") | ||
21 | endforeach(file) | ||