[CMake] How to delete a link with "make uninstall" ?
Kermit Mei
kermit.mei at gmail.com
Fri Dec 12 04:34:35 EST 2008
Philip Lowman wrote:
> On Wed, Dec 10, 2008 at 2:13 PM, Kermit Mei <kermit.mei at gmail.com
> <mailto:kermit.mei at gmail.com>> wrote:
>
> http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
>
>
> Hello, I config my project as the above told.
> Everything is OK when I "make uninstall". But the only thing I
> can't deal
> with is that I can't delete some links which point to some libraries.
> My output is like this:
>
>
> Have you checked to make sure you have permissions to delete the
> affected files?
>
> What version of CMake are you using?
>
> Have you tried this with CMake 2.6.2?
>
> Can you create and send to the list a small example which reproduces
> the problem you're having?
>
> --
> Philip Lowman
Ok, Philip Lowman. I'd like to give you some details:
$ cmake --version
cmake version 2.6-patch 2
$ cmake -DCMAKE_INSTALL_PREFIX=~/usr ..
<Everything goes well, snip the details.>
$ make
<Everything goes well, snip the details.>
$ tree ~/usr
/home/kermit/usr [error opening dir]
0 directories, 0 files
$ make install
[ 10%] Built target FreeReciteUi
[ 90%] Built target FreeReciteCore
[100%] Built target FreeRecite-core
Install the project...
-- Install configuration: ""
-- Installing: /home/kermit/usr/share/FreeRecite
-- Installing: /home/kermit/usr/share/FreeRecite/freeRecite.dict
-- Installing: /home/kermit/usr/share/FreeRecite/freeRecite.mgr
-- Installing: /home/kermit/usr/share/FreeRecite/tasks
-- Installing: /home/kermit/usr/share/FreeRecite/tasks/freeRecite.dict
-- Installing: /home/kermit/usr/bin/FreeRecite
-- Installing: /home/kermit/usr/bin/FreeRecite-core
-- Installing: /home/kermit/usr/lib/libFreeReciteCore.so.1.0
-- Installing: /home/kermit/usr/lib/libFreeReciteCore.so
-- Installing: /home/kermit/usr/lib/libFreeReciteUi.so.1.0
-- Installing: /home/kermit/usr/lib/libFreeReciteUi.so
$ tree ~/usr
/home/kermit/usr
|-- bin
| |-- FreeRecite
| `-- FreeRecite-core
|-- lib
| |-- libFreeReciteCore.so -> libFreeReciteCore.so.1.0
| |-- libFreeReciteCore.so.1.0
| |-- libFreeReciteUi.so -> libFreeReciteUi.so.1.0
| `-- libFreeReciteUi.so.1.0
`-- share
`-- FreeRecite
|-- freeRecite.dict
|-- freeRecite.mgr
`-- tasks
`-- freeRecite.dict
5 directories, 9 files
$ make uninstall
Scanning dependencies of target uninstall
-- Uninstalling "/home/kermit/usr/share/FreeRecite/freeRecite.dict"
-- Uninstalling "/home/kermit/usr/share/FreeRecite/freeRecite.mgr"
-- Uninstalling "/home/kermit/usr/share/FreeRecite/tasks/freeRecite.dict"
-- Uninstalling "/home/kermit/usr/bin/FreeRecite"
-- Uninstalling "/home/kermit/usr/bin/FreeRecite-core"
-- Uninstalling "/home/kermit/usr/lib/libFreeReciteCore.so.1.0"
-- Uninstalling "/home/kermit/usr/lib/libFreeReciteCore.so"
-- File "/home/kermit/usr/lib/libFreeReciteCore.so" does not exist.
-- Uninstalling "/home/kermit/usr/lib/libFreeReciteUi.so.1.0"
-- Uninstalling "/home/kermit/usr/lib/libFreeReciteUi.so"
-- File "/home/kermit/usr/lib/libFreeReciteUi.so" does not exist.
Built target uninstall
$ tree ~/usr
/home/kermit/usr
|-- bin
|-- lib
| |-- libFreeReciteCore.so -> libFreeReciteCore.so.1.0
| `-- libFreeReciteUi.so -> libFreeReciteUi.so.1.0
`-- share
`-- FreeRecite
`-- tasks
5 directories, 2 files
Now, as you see, the link also exists. I can't delete it automatically.
The lib core's CMakeLists.txt I wrote like this:
SET(LIBFREERECITECORE_SRC ConfigHolder.cpp DictItem.cpp Reciter.cpp
ForgetCurve.cpp Task.cpp Dict.cpp Manager.cpp WordList.cpp)
ADD_LIBRARY(FreeReciteCore SHARED ${LIBFREERECITECORE_SRC})
SET_TARGET_PROPERTIES(FreeReciteCore PROPERTIES VERSION 1.0 SOVERSION 1.0)
INSTALL(TARGETS FreeReciteCore LIBRARY DESTINATION lib)
Is there something wrong? And I don't know why "make install" will
create the links for
the library. They do nothing for me. Can I avoid it?
Thank you, very much!
More information about the CMake
mailing list