cmake_uninstall.cmake.in
author Sam Lantinga <slouken@libsdl.org>
Thu, 12 Oct 2017 08:44:45 -0700
changeset 11605 b914622c734e
parent 8874 48d4f2d74d67
permissions -rw-r--r--
Fixed bug 3867 - Can't find install_manifest.txt when running 'uninstall' target

Steve Robinson

When I try to build the 'uninstall' target in CMake when SDL2 is added to a subdirectory of my project, I get this error:

1>CMake Error at cmake_uninstall.cmake:2 (message):
1> Cannot find install manifest:
1> "D:/Code/sdl2-tutorial/_build/3rdparty/SDL2/SDL2-2.0.6/install_manifest.txt"

The install_manifest.txt is actually in the top-level binary directory, not the project-specific binary directory.

To fix it, change all instances of:
CMAKE_CURRENT_BINARY_DIR

To:
CMAKE_BINARY_DIR

In:
cmake_uninstall.cmake.in
     1 if (NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
     2     message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_BINARY_DIR@/install_manifest.txt\"")
     3 endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
     4 
     5 file(READ "@CMAKE_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     execute_process(
    10         COMMAND @CMAKE_COMMAND@ -E remove "$ENV{DESTDIR}${file}"
    11         OUTPUT_VARIABLE rm_out
    12         RESULT_VARIABLE rm_retval
    13     )
    14     if(NOT ${rm_retval} EQUAL 0)
    15         message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
    16     endif (NOT ${rm_retval} EQUAL 0)
    17 endforeach(file)
    18