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