On Fri, May 29, 2009 at 01:45:45AM +0430, Dmytro Ovdiienko wrote: > I prefer encapsulation of all library related information into the library. > Only library know where it is located, where are public headers are located, > where lib file is located. The way you proposed violates this encapsulation.
Fair enough. What I actually do is I have a separate file CMakeVars.txt where I define variable (such as source directories). This file is include()d both by the subproject (libA) and by any top-level projects that add_subdirectory() that subproject. You could do the same thing with [set|get]_target_properties(). I do this in a few spots where my CMakeVars pattern doesn't work. This doesn't help with your ordering problem. > I expected CMake to replace B_SOURCE_DIR with <root>/B and A_SOURCE_DIR with > <root>/A. Thats all. Well as you concisely stated at the beginning of this discussion, you have a circular dependency. Software is bad at handling circular dependencies, so it is your job as the human to jump in and decide how to break it up. We have discussed a number of strategies for doing this. tyler _______________________________________________ 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
