----- "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

Reply via email to