[CMake] Output other then to Makefile

Eric Noulard eric.noulard at gmail.com
Thu May 10 10:34:16 EDT 2007


2007/5/10, Mielcarek, Donn <Donn.Mielcarek at wylelabs.com>:
> We create binary releases for many different Linux
>  distributions.  The guy who creates the releases
>  compiles them all from the same source tree, compiling
>  on different machines at the same time!  So all the
>  Makefiles must be separate.

yep good scheme :))

Then I think separate build_tree would be really SIMPLE, nice AND effcicient.
Separate build tree does not prevent you
from building below the source tree.

If your local source tree is rooted at: <src_root>/
You may try

mkdir <src_root>/<buildname>
cd <src_root>/<buildname>
cmake <src_root>
make

You may perfectly do this on as many target machines as you want
as long as the <buildname> build dir is differents for each target.

It should even be easily scriptable like:

>>>>>>> buildit.sh <<<<<
#!/bin/sh
BUILDNAME=$1
SRCDIR=$2
mkdir -p $(SRCDIR)/$(BUILDNAME)
cd $(SRCDIR)/$(BUILDNAME)
cmake $(SRCDIR)
make
>>>>>>>

then  locally you may

buildit.sh DebianEtch /path/to/src

or remotely (if you deployed the buildit script)

ssh user@<FC4host>  buildit.sh FC4 /path/to/src

>  Ideally, I could use cmake to create a makefile
>  called Makefile.FC4, for Fedora core 4 for example.
>  Then Makefile would have only one line,
>  include Makefile.$(SYS)
>  Then multiple compiles could take place at the
>  same time. All object file/binaries are also
>  put into their own $(SYS)/ directory.

Since you MUST have several separate build dirs I don't understand
why you don't wan't ti use separate build tree?

You'll have no CMake modif with really minimal user impact.
Unless I miss something about your specific user requirement?

-- 
Erk


More information about the CMake mailing list