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).
My files are as follows:
src/CMakeLists.txt
src/utils/CMakeLists.txt
src/utils/a.cpp
src/utils/b.cpp
src/mylib/CMakeLists.txt
src/mylib/l1.cpp
src/mylib/l2.cpp
src/mylib/main.cpp
---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 ?
If I set a FILE(GLOB tils_SRCS "utils/*.cpp" ) in src/CMakeLists.txt, then
the variable is defined... Is this explained somewhere on the wiki/doc/book ?
Thanks,
--paf
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake