Hi,

I was solving a similar problem in our setup at work. The problem was
that the parent couldn't know in advance which libraries will be
imported by children. Conceptually speaking, I solved this by creating
my own set of global properties which contain all necessary details
about the libraries imported. These properties are appended to when a
child imports a library, and then scanned once more in the parent and
imported again:

child CMakeLists.txt:
...
ADD_LIBRARY(someLib IMPORTED)
SET_PROPERTY(GLOBAL APPEND PROPERTY imported_libraries someLib)
# more SET_PROPERTY calls to store lib's location etc.
...


parent CMakeLists.txt:
...
DEFINE_PROPERTY(GLOBAL PROPERTY imported_libraries ...)
...
ADD_SUBDIRECTORY(child)
...
GET_PROPERTY(GLOBAL PROPERTY imported_libraries impLibs)
# more GET_PROPERTY calls to retrieve libs' locations etc.
FOREACH(lib IN LISTS impLibs)
  ADD_LIBRARY({$lib} IMPORTED)
ENDFOREACH()
...

Petr



On Fri, Mar 9, 2012 at 8:42 AM, Andreas Pakulat <ap...@gmx.de> wrote:
> On 08.03.12 19:24:00, Cong Ma wrote:
>> Hi,
>>
>> Imported library has scope in the directory in which it is created and
>> below.
>>
>> If I want to use this library in parent scope, what should I do?
>
> Add the imported library in the top-level cmake file, not a
> subdirectory.
>
> 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