Можно ли создать проект WinRT с помощью cmake?

Для создания проекта WINRT нам нужно иметь CMake> = 2.8.10 и:

  1. Установить тип проекта как «Магазин Windows» (CMAKE: SET_TARGET_PROPERTIES (target PROPERTIES VS_WINRT_EXTENSIONS TRUE)
  2. Добавить флаг компилятора / ZW для компиляции WinRT (CMAKE: ADD_DEFINITIONS (-ZW))
  3. Добавить App.xaml.h, App.xaml.cpp
  4. Добавьте App.xaml, чтобы VS генерировал из него дополнительные файлы (CMAKE: HOW?)
  5. Добавьте Package.appxmanifest с описанием, чтобы VS использовал его (CMAKE: HOW?)

Спасибо.

ОБНОВЛЕНИЕ: отчет об ошибке CMake по этому вопросу находится здесь 0013749: Невозможно нацелить Windows 8 RT из CMake без обходных путей.

17

Решение

CMake ребята работают над этим:
Сообщение об ошибке на cmake.org

2

Другие решения

Это вполне выполнимо. С тех пор, как этот вопрос был задан, ситуация значительно изменилась. Наиболее значимые изменения:

  • Visual Studio изначально поддерживает CMake начиная с Visual Studio 2017 (см. Поддержка CMake в Visual Studio). Больше не требуется отдельно загружать CMake и генерировать файлы .sln и .vcxproj. CMake является частью установки Visual Studio и может быть проанализирован инфраструктурой управления проектами и системой сборки Visual Studio.
  • C ++ / CX больше не является единственным способом создания и использования компонентов среды выполнения Windows. C ++ / WinRT обеспечивает стандартную проекцию языка C ++ для поверхности Windows Runtime API с возможностью использования и производства компонентов среды выполнения Windows.

С этими изменениями вы можете использовать CMake для создания проекта C ++, который создает приложение времени выполнения Windows. C ++ / WinRT является стандартом C ++, а Visual Studio 2017 обеспечивает встроенную поддержку CMake.

1

CMake не полностью поддерживает Visual Studio 11.
Проверьте эти ссылки.

http://public.kitware.com/Bug/view.php?id=13498

http://public.kitware.com/Bug/view.php?id=12930

http://www.ogre3d.org/forums/viewtopic.php?f=9&т = 76388

0
По вопросам рекламы ammmcru@yandex.ru