2012/10/26 Vyacheslav Karamov <ubuntul...@yandex.ru>:
> Hi All!
>
> I have project with the structure similar to this
>
> worker
>  |     |
>  |     chatterbox
>  |     |    |
>  |     |    CMakeLists.txt
>  |     |
>  |     externals
>  |     |    |
>  |     |    sndlib
>  |     |       |
>  |     |       CMakeLists.txt
>  |     CMakeLists.txt
>  |
>  CMakeLists.txt
>
>
>
> $ cat worker/CMakeLists.txt
>
> cmake_minimum_required(VERSION 2.6)
>
> add_subdirectory(externals)
> add_subdirectory(chatterbox)
>
> If I set sndlib target as a variable
>
> set (snd_lib "sndlib")
> add_library(${snd_lib} SHARED ...)
>
> variable ${snd_lib} is undefined at the parent scope, i.e. I can't use
> ${snd_lib} in chatterbox/ CMakeLists.txt
>
> target_link_libraries(chatterbox  ${snd_lib})  # ${snd_lib} is empty!

>From your description this is strange because 'chatterbox'
is a subdir of 'worker' where snd_lib has been defined so it should be
visible, I guess...

unless you define the snd_lib var AFTER you
add_subdirectory(chatterbox)

since add_subdirectory process subdir first you must define
variable you need before "add_subdirectory".

> How to handle this situation in a proper way?

Define it at the scope it ought to be ?
or use
 set (snd_lib "sndlib" PARENT_SCOPE)

but again I think your problems comes from the fact
your defined your var after add_subdirectory.

-- 
Erk
Le gouvernement représentatif n'est pas la démocratie --
http://www.le-message.org
--

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