[CMake] Link different libraries in different targets
Matthew Woehlke
matthew.woehlke at kitware.com
Tue Apr 2 14:41:29 EDT 2013
On 2013-04-02 12:08, domenico wrote:
> I'm quite new to CMake, so please forgive me if the question seems obvious.
> My project has lines like :
>
> link_directories(/path/to/libA/)
> add_library(my_project SHARED my_file.cpp)
> target_link_libraries(my_project A)
>
> I browsed help and googled a few, but I still wonder how I could set
> "/path/to/libA/" to be different according to targets.
> Something like "/path/to/libA/Foo/" for some targets "/path/to/libA/Bar/"
> for others.
> But my targets are not the basic "Release/Debug/..." ones, more diverse.
Don't do that :-).
In general, using link_directories is discouraged. It is preferred to
give only targets or full paths to target_link_libraries(). (Use
find_library as needed to resolve 'pretty' names to full names with
platform-specific prefixes and suffixes.)
So to have B link to /path/to/Foo/libA, and C link to /path/to/Bar/libA,
just do:
target_link_libraries(B /path/to/Foo/libA)
target_link_libraries(C /path/to/Bar/libA)
--
Matthew
More information about the CMake
mailing list