[GNC] GnuCash 3.2 Released
DaveC49
davidcousens at bigpond.com
Sun Jul 1 23:22:13 EDT 2018
John,
I'm using CMake v 3.5.1. Presumably the same or similar could be used to
create an uninstall target for Ninja. Their argument for providing a default
uninstall target seems a bit weak to me as you are not going to be issuing
the command in a build directory unless you really intend to uninstall those
useful files.
The cmake_uninstall.cmake file contains a reference to
# This is taken from
https://cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
which has now been moved to Kitware
https://gitlab.kitware.com/cmake/community/wikis/FAQ
which has a very slow server by the look of it but eventually i found
https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake
Can I do "make uninstall" with CMake?
By default, CMake does not provide the "make uninstall" target, so you
cannot do this. We do not want "make uninstall" to remove useful files
from the system.
If you want an "uninstall" target in your project, then nobody prevents
you from providing one. You need to delete the files listed in
install_manifest.txt file. Here is how to do it. First create file
cmake_uninstall.cmake.in in the top-level directory of the project:
if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest:
@CMAKE_BINARY_DIR@/install_manifest.txt")
endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
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(NOT "${rm_retval}" STREQUAL 0)
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
endforeach(file)
Then in the top-level CMakeLists.txt add the following logic:
# uninstall target
if(NOT TARGET uninstall)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P
${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif()
Now you will have an "uninstall" target at the top-level directory of
your build tree.
Instead of creating an "uninstall" target, Unix users could enter this
command in the shell:
xargs rm < install_manifest.txt
-----
David Cousens
--
Sent from: http://gnucash.1415818.n4.nabble.com/GnuCash-User-f1415819.html
More information about the gnucash-user
mailing list