diff --git a/mingw-w64-cppwinrt/0001-cppwinrt-include-vector.patch b/mingw-w64-cppwinrt/0001-cppwinrt-include-vector.patch new file mode 100644 index 0000000000..5c39ed087d --- /dev/null +++ b/mingw-w64-cppwinrt/0001-cppwinrt-include-vector.patch @@ -0,0 +1,10 @@ +--- a/cppwinrt/text_writer.h ++++ b/cppwinrt/text_writer.h +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + + namespace cppwinrt + { diff --git a/mingw-w64-cppwinrt/0002-cppwinrt-patch-winmd.patch b/mingw-w64-cppwinrt/0002-cppwinrt-patch-winmd.patch new file mode 100644 index 0000000000..dafc66a38f --- /dev/null +++ b/mingw-w64-cppwinrt/0002-cppwinrt-patch-winmd.patch @@ -0,0 +1,10 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -153,6 +153,7 @@ + ExternalProject_Add(winmd + URL https://github.com/microsoft/winmd/releases/download/1.0.210629.2/Microsoft.Windows.WinMD.1.0.210629.2.nupkg + URL_HASH SHA256=4c5f29d948f5b3d724d229664c8f8e4823250d3c9f23ad8067b732fc7076d8c7 ++ PATCH_COMMAND patch -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/0003-winmd-include-utility.patch + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" diff --git a/mingw-w64-cppwinrt/0003-winmd-include-utility.patch b/mingw-w64-cppwinrt/0003-winmd-include-utility.patch new file mode 100644 index 0000000000..39038e25a7 --- /dev/null +++ b/mingw-w64-cppwinrt/0003-winmd-include-utility.patch @@ -0,0 +1,7 @@ +--- a/impl/winmd_reader/view.h ++++ b/impl/winmd_reader/view.h +@@ -1,3 +1,4 @@ ++#include + + namespace winmd::reader + { diff --git a/mingw-w64-cppwinrt/PKGBUILD b/mingw-w64-cppwinrt/PKGBUILD new file mode 100644 index 0000000000..a2ac4fddd9 --- /dev/null +++ b/mingw-w64-cppwinrt/PKGBUILD @@ -0,0 +1,65 @@ +# Maintainer: Biswapriyo Nath + +_realname=cppwinrt +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=2.0.221117.1 +pkgrel=1 +pkgdesc="C++ language projection for Windows Runtime (WinRT) APIs (mingw-w64)" +arch=('any') +mingw_arch=('clang64' 'clang32') +url='https://aka.ms/cppwinrt' +license=('spdx:MIT') +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-ninja" + "${MINGW_PACKAGE_PREFIX}-cc") +source=("${_realname}-${pkgver}.tar.gz::https://github.com/microsoft/cppwinrt/archive/refs/tags/${pkgver}.tar.gz" + 0001-cppwinrt-include-vector.patch + 0002-cppwinrt-patch-winmd.patch + 0003-winmd-include-utility.patch) +sha256sums=('f43e3c2df6617fe4fdce22d2abfcfe2b4168c30dc6df7aa0851d68d7169eaf70' + 'cd97d82a047efaf72c13a32b919ca55d2168a44740759c26ef9f3fd3e0c060c0' + '35610fdedf92cafcffa92049f8cd634d8150ad43899a9e215c3ef5bcf03eaa80' + 'cd9aa15bb9116dcfd37c2507b47809b9edf53b74e8f9fb59f0ad32fa3db27c88') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + patch -p1 -i "${srcdir}"/0001-cppwinrt-include-vector.patch + patch -p1 -i "${srcdir}"/0002-cppwinrt-patch-winmd.patch + cp -v "${srcdir}"/0003-winmd-include-utility.patch ./ +} + +build() { + mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" + + declare -a extra_config + if check_option "debug" "n"; then + extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + "${MINGW_PREFIX}"/bin/cmake.exe \ + -GNinja \ + -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ + "${extra_config[@]}" \ + -DCPPWINRT_BUILD_VERSION="${pkgver}" \ + ../${_realname}-${pkgver} + + "${MINGW_PREFIX}"/bin/cmake.exe --build . +} + +check() { + cd "${srcdir}/build-${MSYSTEM}" + + "${MINGW_PREFIX}"/bin/ctest.exe . || warning "Tests failed" +} + +package() { + cd "${srcdir}/build-${MSYSTEM}" + + install -Dm755 cppwinrt.exe "${pkgdir}${MINGW_PREFIX}/bin/cppwinrt.exe" + + install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" +}