> On 09/02/2014 11:27 AM, Bach, Pascal wrote:
> >> we should now be able to activate cross-compiling
> >> with -DCMAKE_SYSTEM_NAME=WindowsCE or -
> >> DCMAKE_TOOLCHAIN_FILE=...
> >> while still using -G "Visual Studio 12 2013" as the generator.
> >
> > I think proposal would make things cleaner.
> 
> Great.  It should be able to work for VS 2010 and greater.
> 
> > I think specifying only -DCMAKE_SYSTEM_NAME=WindowsCE wouldn't be
> > enough or how does VS know what compiler to use?
> 
> Correct.  We would need another variable to specify the SDK.
> It could be added to the command line or set in a toolchain file.
> 
> > I would like it if we had a toolchain file for each SDK but
> > then I'm not clear what it contains. In this toolchain file do
> > we specify compiler etc like it is done for gcc for example,
> > or would the toolchain file contain a variable like CMAKE_VS_SDK
> > pointing to one of the installed SDKs?
> 
> The following block in Modules/CMakeDetermineSystem.cmake:
> 
>  elseif(CMAKE_VS_WINCE_VERSION)
>    set(CMAKE_SYSTEM_NAME      "WindowsCE")
>    set(CMAKE_SYSTEM_VERSION   "${CMAKE_VS_WINCE_VERSION}")
>    set(CMAKE_SYSTEM_PROCESSOR "${MSVC_C_ARCHITECTURE_ID}")

Do we need to preserve the current behavior?
CMAKE_VS_WINCE_VERSION seems to be undocumented.
The new way would be to set CMAKE_SYSTEM_NAME and CMAKE_SYSTEM_VERSION in a 
toolchain file.

> 
> is basically a mini toolchain file.  A real toolchain file would
> explicitly specify the values.  We would also need a new variable
> to tell the generator which SDK to use.  Currently the info is
> in the internal CMAKE_VS_PLATFORM_NAME variable that corresponds
> to the platform component of the generator name.

So do you agree that the right thing would be to add a CMAKE_VS_PLATFORM_SDK 
(or CMAKE_GENERATOR_SDK ?) variable that the user can set?

A resulting toolchain file would look something like this:

set(CMAKE_SYSTEM_NAME "WindowsCE")
set(CMAKE_SYSTEM_VERSION "8.0") 
set(CMAKE_SYSTEM_PROCESSOR "arm" )
set(CMAKE_GENERATOR_TOOLSET "CE800") # I still don't know if this is needed ;)
set(CMAKE_GENERATOR_SDK "MYSDK01")

I don't understand the purpose of CMAKE_GENERATOR_TOOLSET resp. 
CMAKE_VS_PLATFORM_TOOLSET.
As far as I understand they are independent of the SDK selected?

> 
> >> I can help guide anyone interested in making the needed changes.
> >
> > I might be able to invest some time into this so some guidance
> > would be welcome ;)
> 
> Take a look at cmGlobalVisualStudio10Generator::InitializeSystem
> in recent 'master' versions.  That is likely the place to hook
> in to recognize the "WindowsCE" name and look up the SDK variable.
> 

Thanks I will have a look there.

Pascal
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to