Можем ли мы использовать Ninja для создания приложений UWP и, следовательно, создать для них пакет appx? Я не думаю, что есть онлайн-статья об этом. Я знаю, как это сделать с помощью VS и Make.
вы можете создавать приложения uwp следующими способами:
C# и xaml
веб-технологии, такие как html, css и js. и вы можете использовать любой сторонние js-библиотеки с ним. вы даже можете использовать размещенные веб-приложения как приложения uwp или новейшие технологии, такие как pwas, также могут поставляться как uwp apps. подробнее здесь: https://developer.microsoft.com/en-us/windows/pwa
C++ и xaml: с этим подходом вы можете использовать библиотеки C++ (если они соответствуют платформе uwp). Причина, по которой у вас нет большой поддержки в Интернете, заключается в том, что большинство разработчиков uwp используют подход C# и xaml.
Для этого есть некоторая работа, и одна из них - создать настольное приложение, а затем упаковать его в упаковку MSIX, которая упаковывает настольное приложение Windows в приложение uwp, и вы даже можете распространять его через магазин Microsoft.
CMake нельзя использовать для создания пакета UWP. Однако вы можете использовать make.exe
или Visual Studio
для создания пакета UWP. Для получения дополнительной информации вы можете обратиться к Create an app package with the MakeAppx.exe tool
и Пакетирование приложения UWP с помощью Visual Studio.
Дико вводит в заблуждение. Вы можете (возможно, даже должны) создавать приложения UWP с помощью C++. Поскольку Ниндзя (и CMake) предназначены для создания собственных приложений, это довольно важно, и этот предлагаемый ответ ничего из этого не подтверждает.
Это все еще неверно. Вы можете писать приложения UWP на C++ без использования XAML. И вы не можешь тоже используете "любая библиотека C++". Библиотеки, которые вы используете, по-прежнему должны соответствовать требованиям, предъявляемым UWP или Microsoft Store. И до сих пор не решается вопрос о том, можно ли использовать Ninja в качестве системы сборки для создания приложений UWP, и если да, то как это сделать. Учитывая ограниченную поддержку UWP, предоставляемую CMake, маловероятно, что Ninja сделает это без настройки значительный.
Спасибо за исправление. Я снова отредактировал свой вопрос.
Это все еще не решает вопрос. Ninja - это система сборки, такая как MSBuild, которую вы используете (сознательно или иначе) для преобразования кода и ресурсов в развертываемые пакеты. MSBuild анализирует файлы * .sln и * .csproj, чтобы настроить среду для управления конвейером сборки. Ниндзя берет на себя те же обязанности в естественной обстановке. Вопрос не в том, можете ли вы писать собственные приложения UWP (да, можете и должны!), А в том, можно ли использовать Ninja для настройки процесса сборки, и если да, то как.
При копирование другого ответа дословно обычно (даже требуется) указывать авторство. Поскольку утверждение доказуемо неверно (вы можете выполнить команду любой в CMake, используя add_custom_command), вы можете по крайней мере указывать пальцем на других. Похоже, вы изо всех сил пытаетесь дать ответ, требуя знакомства с инструментами и системами, которых вы не знаете или не понимаете. Иногда лучше просто отпустить.
Теоретически: да
Примечательно одно: Ninja только официально поддерживает C++, я не могу найти никакого результата Ninja поддерживает другие языки программирования
С C++ у нас есть 2 варианта:
/ZW
для метаданных WindowsC++ / CX: у нас долгая история разработки среды выполнения Windows до того, как C++ 11/14 стал официальным, поэтому Microsoft добавляет свои собственные функции реализации в MSVC. Таким образом, с C++ / CX вы можете скомпилировать очень старый SDK, такой как 10240, 10586, ... и теоретически он также работает с Windows 8.0 / 8.1 SDK, Windows Phone 8.0 / 8.1 SDK. Еще одна попытка скомпилировать UWP с C++ / CX на FastBuild (системная сборка, такая как Ninja) успешна, вы можете прочитать здесь ссылку: https://github.com/fastbuild/fastbuild/issues/623
C++ / WinRT - это попытка воссоединения среды выполнения Windows со стандартом C++ 17. C++ / WinRT также может компилироваться с Clang / GCC. Основываясь на ответе Кенни Керра (создателя C++ / WinRT): C++ / WinRT не ограничивается старым SDK, но он рекомендовал использовать более новый SDK, такой как 17134
. Свяжите его ответ https://stackoverflow.com/a/53193711/8707331.
Некоторые полезные ссылки для C++ UWP:
https://modernwindows.wordpress.com/2015/05/28/modern-c-and-clang/
Вы можете попробовать настроить проект CMake для приложения UWP и использовать генератор Ninja (
-GNinja
). Это генерирует входные файлы для Ninja, если вы хотите поиграть с этим.