[CMake] Fwd: [PATCH] Add support for Metro apps

David Cole dlrdave at aol.com
Mon Mar 31 10:13:27 EDT 2014


Thanks for working on this. It will be cool to be able to build Metro 
apps using CMake.

One thing I think is crucial here is to include somewhere an example or 
test project that actually builds a Metro app, and shows how you have 
to construct the CMakeLists for it, and any special considerations 
needed when running CMake to generate the project. Without that, I have 
no clue where to start on evaluating whether these patches are 
sufficient or not.

Ideally, the example/test will be:
- here, use something like this CMakeLists.txt (and then show one)
- run CMake with the XXX generator
- build as usual

Could you add a test/example somewhere that shows how to use this?


And now, the following is no criticism of your patch, or your attempts 
to get this functionality into CMake, .... *but*:

- there are too many ways to "cross compile" for CMake already, and it 
would be nice if this way was like one of the other ways rather than 
something entirely different.

Right now, CMake already "supports":
- "true" cross-compiling using a makefile based generator and a 
toolchain file
- building universal binaries on OSX, but not with a toolchain file
- building iOS apps on OSX, but with special variables and properties 
that need setting
- building 32-bit and 64-bit windows apps from the same source tree, 
but with VS generators, using 2 different build trees each with a 
different generator, or with non-VS generators, using 2 different build 
trees, and different environments to define the tools

And now there's this. Which I guess is closest to the VS different 
generator approach.

It would be super awesome if somebody could come up with a coherent way 
to unify all this. (Steve and Eric: hopefully you are considering 
making the Android stuff you're about to work on blend in closely with 
one of these existing models rather than introducing yet another 
cross-compiling model....)

My 2 cents -- again: thanks for your contribution and keep up the good 
work. Overall, CMake is still squarely the best way to build 
cross-platform C++ based projects. And supporting as many platforms as 
feasible is one of the contributing factors that makes it so.


David C.


-----Original Message-----
From: Minmin Gong <minmin.gong at gmail.com>
To: cmake-developers <cmake-developers at cmake.org>; cmake 
<cmake at cmake.org>
Sent: Mon, Mar 31, 2014 2:35 am
Subject: [CMake] Fwd:  [PATCH] Add support for Metro apps




Hi cmake developers and users,
This is a extend discussion of this ticket: 
http://www.cmake.org/Bug/view.php?id=13511.



In our project, we need to build an Win8+ Metro app. Currently the 
CMake do support VS_WINRT_EXTENSIONS. However, if you want to build an 
exe instead of dll or lib, even with x86 or x64, it always fails 
because lacking of some tags in vcxproj and sln.



So I made this patch for WinRT/Metro apps, based on the master branch 
of CMake. In this patch, 


1. WinRT-ARM, WinRT-x86, WinRT-x64 generators are added for generating 
WinRT special projects. CMAKE_VS_WINRT_VERSION is defined inside.


2. Add AppContainerApplication, ApplicationType, 
MinimumVisualStudioVersion and ApplicationTypeRevision tags to vcxproj 
in WinRT project.
3. Recognize AppxManifest file type.
4. A dedicated boolean source file property "VS_WINRT_CONTENT" is 
added. Generator expressions is also supported here.
5. Add "Deploy.0" in .sln for deploy WinRT apps by default, as WinCE 
apps do.
6. Add PackageCertificateKeyFile tag to vcxproj for package 
certification.


Thanks for advices from Martell Malone, Daniel Pfeifer, Brad King, 
Patrick R. Gansterer, and other developers and users of CMake. More 
comments are welcomed.




--
Minmin Gong

--

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://www.cmake.org/mailman/listinfo/cmake

  


More information about the CMake mailing list