[CMake] Variable target name visible at the top level

Vyacheslav Karamov ubuntulist at yandex.ru
Fri Oct 26 04:22:51 EDT 2012


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!

How to handle this situation in a proper way?










More information about the CMake mailing list