Hi,

On Wed, Nov 14, 2012 at 12:34 PM, Andrea Galeazzi <[email protected]> wrote:
> I'm using cmake_policy(SET CMP0015 NEW) to link external libraries (I don't
> have the sources of them) in order to avoid to specify the absolute path of
> each library. So I wrote the following commands:
> link_directories(path1 path2 ...)
> target_link_libraries(${my_TARGET_NAME} lib1 lib2)
>
> but when lib1 or lib2 changes, my_TARGET_NAME doesn't rebuild the
> executable. On the other hand if I use the absolute path in
> target_link_libraries (path1/lib1.a) everything works fine.
> Is this behavior a bug of CMake or is not possible to detect this kind of
> dependencies at all?

That is not a bug in CMake. When you specify only library names CMake
cannot setup dependencies in the generated makefiles (or whatever
generator you use), since it has no clue where the library file is as
you leave the knowledge about that to the linker. So you either need
to specify the absolute path to lib1 and lib2 or trigger a clean build
of the target when the libs change.

Since it seems you already setup the paths to the libraries via
link_directories it should actually be rather easy for you to drop
that and simply use the absolute path in target_link_libraries I'd
say.

Andreas
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to