[CMake] Having design issues implementing Xbox360 Generator support

David Genest david.genest at ubisoft.com
Wed Jan 20 09:40:40 EST 2010


> Ok, so it is definitely cross compiling.
> In the sense that CMAKE_CROSSCOMPILING needs to be set (which indicates
> e.g.
> to TRY_RUN() that it cannot run the executables).

Ok, so can I hard-code this in the generator? Because the only place which I see that the CMAKE_CROSSCOMPILING  variable is set is in the CMakeDetermineSystem.cmake file. Paraphrasing comments: This is set only if a toolchain set it or that it was specified on the cmake commandline. I know I will always be cross-compiling.
 
> What's the operating system on the XBox ?

It is a derivative of NT. It's programmed almost exactly like windows, with specific console APIs. 
 
> In which way do you think doesn't it match the cross compiling
> philosopy of
> cmake ?

I was wrong in my understanding. Since the cross compiling was enabled only when CMAKE_SYSTEM_NAME is set and in this case (Xbox360) it is still "Windows" and the cross compiling is wholly taken in charge by Visual Studio, I had the impression that cmake did not have to know about it. But as you say, the TRY_RUN() would definitively fail. I may be mistaken, but TRY_RUN() is not going to be used a whole lot when building xbox360 projects.

> Windows-cl.cmake needs to be refactored in order to support cross
> compiling,
> XBox, Win CE etc. It will look different afterwards.

Ok. So Windows-cl can be the fallback if other scripts have not set the _INIT variables. So I can conclude that a form of IF(NOT VariableSet) SET Variable ENDIF() will be needed in this file.

> > Also, the issue talks about nmake generator, and I have not
> implemented
> > that yet. I am not yet sure if it is possible.
> 
> I would assume it is :-)

I will try it out.


More information about the CMake mailing list