----- "Vikas Chauhan" <vikas.chau...@anritsu.com> wrote: > > -----Original Message----- > > From: Alexander Neundorf [mailto:a.neundorf-w...@gmx.net] > > Sent: 06 January 2010 21:24 > > To: cmake@cmake.org > > Cc: Chauhan, Vikas > > Subject: Re: [CMake] using cmake on windows - query on existing > targets > > > > On Wednesday 06 January 2010, Chauhan, Vikas wrote: > > > Hi, > > > > > > I am quite new to using cmake and at the moment I am trying to > find > my > > > way through it. > > > I was wondering how we can query different targets on windows > when > using > > > cmake. > > > For example: I may have a set of separate directories(each > containing a > > > project) and from the top level root directory, I want to > selectively > > > build a subset of projects. > > > > in KDE we have the macro > > macro_optional_add_subdirectory() > > > http://websvn.kde.org/trunk/KDE/kdelibs/cmake/modules/MacroOptionalAddSu > > bdirectory.cmake?revision=940658&view=markup > > > > E.g. if you do > > macro_optional_add_subdirectory(project1) > > > > the subdir project1/ will be added like with normal > add_subdirectory(), but > > additionally you'll have a cmake option "BUILD_project1", which you > can > > enable and disable, and when disabled, the directory will not be > added. > > > > > How can I do it on the command line ? Also, can I query the list > of > > > targets/projects from the command line? > > > > E.g. with the approach above, you can use cmake-gui or ccmake to > have > a look > > at the available options. > > > > Does that help ? > > > > Alex > > Actually, when I used the macro I found that though this macro gives > a > useful functionality it is not exactly what I wanted. > > What I want to do can be illustrated the following example: > I have a main project/dir - projectSystem > I have three component/dir - projectcomponent1, projectcomponent2, > projectcomponent3. > > Now on windows from the directory where the cmake generated files are > present, at present I issue a command : > cmake --build PATH_TO_PROJECTSYSTEM > This builds the projectSystem alongwith projectComponent1, > projectComponent2 & projectComponent3. > > Now, I want to do two things on command window(from the dir where > cmake > build files are generated): > 1. Query the list of sub-targets(components) available. In this case > the > result is a list > projectComponent1 > projectComponent2 > projectComponent3 > 2. Now based on the list in 1, optionally build any component. For > example issue a command: > > cmake --build projectComponent1 > > Can we achieve this? Or is it asking for too much :) > > Thanks, > Vikas
I'm new to CMake too, but it looks like you could do what you want with the option() directive. So I would have in my CMakeLists.txt something like: option(ProjectComponent1 "Builds the first project component" OFF) etc. And later on: if(ProjectComponent1) add_subdirectory(${ProjectComponent1_DIR}) endif(ProjectComponent1) etc. and then in ccmake set the option to ON when you want to build with it. I'd be surprised if there wasn't a way to define separate make targets somewhere instead though, so you could do "make projectComponent1", but I'm not sure about how to do that. _______________________________________________ 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