Fwd: [CMake] Adding cross-compiler support to CMake ...

William A. Hoffman billlist at nycap.rr.com
Fri Sep 8 16:22:48 EDT 2006


At 04:06 PM 9/8/2006, sonicmctails at aol.com wrote:
> 
> 
> 
>-----Original Message-----
>From: sonicmctails at aol.com
>To: a.neundorf-work at gmx.net
>Sent: Fri, 8 Sep 2006 4:06 PM
>Subject: Re: [CMake] Adding cross-compiler support to CMake ...
>
>lol, I actually intended to try cross-compiling KDE as a demostration of CMake's cross-compiling abilities once it was perfected.  Anyway, autotools does have a difference for the CC, try searching for HOST_CC, BUILD_CC, and TARGET_CC (you probably won't find this one). I can see both approachs being viable, and probably doable. The trick then would be creating a native Makefile for programs that need to be built first, and then create a cross Makefile. The problem here is that CMake, under normal cirmstances, allows make to handle dependancies, but if we're dealing with two seperate build trees, then I'm not sure how we can handle building programs that. CMake just passing things in order to Make, which means that with two seperate build trees - our current generator isn't advanced enough to write a makefile that depends on targets in a second makefile (and to my knowledge, only GNU Make supports this, while I believe the UNIX Makefile generator creates something all flavors of 
make can handle). Now adding that is def. possibility, but I'm not sure if its going to be easier or harder to implement then just create a single makefile that handles both possibilities - doing this would require massive changes to the makefile generator, but then we don't have to manage any dependancies in CMake itself.
>
>Also, CTest and TRY_RUN will need patches so they can run remotely, but lets get things cross-compiling first.
>Michael
> 
> 

The depend stuff is all handled from the top level Makefile right now.   Lower level makefiles just
run make back up at the top level with the right arguments.   So, it should not really care if there
are two build trees or not.   And yes, we do not want to depend on gmake.  
So, if you 

cd foo/bar
make   

CMake will actually run 
cd ../../; make -f Makefile target1 target2 ... 
(where the list of targets come from ones referenced in foo/bar)

You must have to do something special for the HOST_CC stuff. the configure script I am looking
at (the one for gmake) does not have HOST_CC.

-Bill




More information about the CMake mailing list