cmake_uninstall.cmake.in
author Ryan C. Gordon
Mon, 05 Jan 2015 01:41:42 -0500
changeset 9306 817656bd36ec
parent 8874 48d4f2d74d67
child 11605 b914622c734e
permissions -rw-r--r--
Clang static analysis builds should use C runtime directly.

This is a little macro magic to use malloc() directly instead of SDL_malloc(),
etc, so static analysis tests that know about the C runtime can function
properly, and understand that we are dealing with heap allocations, etc.

This changed our static analysis report from 5 outstanding bugs to 30.

5x as many bugs were hidden by SDL_malloc() not being recognized as malloc()
by the static analyzer!
wander@8874
     1
if (NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
wander@8874
     2
    message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
wander@8874
     3
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
wander@8874
     4
wander@8874
     5
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
wander@8874
     6
string(REGEX REPLACE "\n" ";" files "${files}")
wander@8874
     7
foreach (file ${files})
wander@8874
     8
    message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
wander@8874
     9
    execute_process(
wander@8874
    10
        COMMAND @CMAKE_COMMAND@ -E remove "$ENV{DESTDIR}${file}"
wander@8874
    11
        OUTPUT_VARIABLE rm_out
wander@8874
    12
        RESULT_VARIABLE rm_retval
wander@8874
    13
    )
wander@8874
    14
    if(NOT ${rm_retval} EQUAL 0)
wander@8874
    15
        message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
wander@8874
    16
    endif (NOT ${rm_retval} EQUAL 0)
wander@8874
    17
endforeach(file)
wander@8874
    18