[CMake] Scope of imported targets

Bill Hoffman bill.hoffman at kitware.com
Fri Jul 27 21:20:49 EDT 2012


On 7/27/2012 7:43 PM, James Bigler wrote:
> Is there are particular reason why imported targets don't have global
> scope (doc says current directory and below), but regular targets do
> (seen everywhere)?
>
> This seems really inconsistent to me.
>
> I'm trying to build a custom library from other pieces using my own set
> of commands.  I can't use add_custom_target directly since I can't use
> the resulting target in target_link_libraries.  I then found a link
> where it suggested to use add_library(IMPORTED) and set the file with
> the results of my custom target.  Unfortunately, this library lives in a
> sub directory and it can't be seen outside like the original library
> used to.
>
> Now, I'm kind of stuck.  I want a library type target, but IMPORTED
> doesn't provide the correct scoping (i.e. global).
>
This was fixed in 2.8.8

- Optionally allow IMPORTED targets to be globally visible

Something like this:

  add_library(${lib} SHARED IMPORTED GLOBAL)

-Bill




More information about the CMake mailing list