On Thu, Jan 29, 2009 at 11:38 PM, ankit jain <ankitgu...@gmail.com> wrote:
> > > 2009/1/29 Pau Garcia i Quiles <pgqui...@elpauer.org> > >> On Thu, Jan 29, 2009 at 1:12 PM, ankit jain <ankitgu...@gmail.com> >> wrote: >> > hi all, >> > >> > Problem: >> > >> > libA : A/foo.cc >> > libB : B/bar.cc >> > and a 3rd library: >> > libC : A/foo.cc B/bar.cc >> > ? >> > >> > here i build the libraries for A and B but not able to build lib for C . >> > Guide me to do that. What should be the content of cmakelist file of C >> to >> > create lib C >> > >> > here A and B are sub folders of C >> >> Do you ean you are trying this but it's not working? >> >> ADD_LIBRARY (libA A/foo.cc ) >> ADD_LIBRARY (libB B/bar.cc ) >> ADD_LIBRARY (libC libA libB ) >> >> That fails because CMake does not support convenience libraries: >> >> http://www.cmake.org/Wiki/CMake_FAQ#Does_CMake_support_.22convenience.22_libraries.3F >> >> You need to do this: >> >> ADD_LIBRARY (libA A/foo.cc ) >> ADD_LIBRARY (libB B/bar.cc ) >> ADD_LIBRARY (libC A/foo.cc B/bar.cc ) >> >> I. e. list the source files for libC >> >> Is that what you want to do? >> > > Dont you think so it will be too hectic if there are 10 folders inside > folder C and each folder has around 10 C files each. then listing all will > be really cumbersome. > What should be the alternative for it. > Here's one idea, in A and B set a variable with all of the source files and add them to the PARENT_SCOPE. set(A_SRCS a.cc) set(A_SRCS ${A_SRCS} PARENT_SCOPE) add_library(A ${A_SRCS}) Then in the higher directory, use a foreach() loop to construct a proper relative path to each source file: foreach(fname ${A_SRCS}) list(APPEND C_SRCS A/${fname}) endforeach() foreach(fname ${B_SRCS}) list(APPEND C_SRCS B/${fname}) endforeach() add_library(both ${C_SRCS}) -- Philip Lowman
_______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake