Pascal Fleury wrote:
In a move to avoid convenience libraries, I have tried to store a list of files into a variable ("utils_SRCS"), and reuse this var in each target that would normally link to the convenience lib (potentially compiling these source files multiple times, but that is not the issue here).
[snip file list]
---src/CMakeLists.txt---------
ADD_SUBDIRECTORY( utils )
ADD_SUBDIRECTORY( mylib )

---src/utils/CMakeLists.txt---------
SET(utils_SRCS a.cpp b.cpp)

---src/mylib/CMakeLists.txt---------
ADD_LIBRARY(mylib l1.cpp l2.cpp main.cpp ${utils_SRCS} )

But now, in src/mylib/CMakeLists.txt, the ${utils_SRCS} is always empty, resulting in missing symbols when linking. I have tried to print some STATUS messages, and the control flow between the cmake scripts is what I expect, but the variable is defined only in the src/utils/CMakeLists.txt, after that, it's gone. What is the logic behind this ?

WAG: variables only propogate to children, not siblings (i.e. 'not to later CMakeLists.txt's that are not children)? IOW, try moving your SET() up to a common parent.

(hmm, an appropriate .sig...)
                       |
                      \|/
                       V
--
Matthew
This e-mail may have been sent in haste; if any of its contents are offensive, inappropriate, inaccurate, ungrammatical, misspelled, or incomplete, too bad.

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to