diff --git a/mingw-w64-mnxdom/PKGBUILD b/mingw-w64-mnxdom/PKGBUILD new file mode 100644 index 0000000000000..16b3fad1cb528 --- /dev/null +++ b/mingw-w64-mnxdom/PKGBUILD @@ -0,0 +1,61 @@ +# Maintainer: Jing Yufei + +_realname=mnxdom +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=3.0 +pkgrel=1 +pkgdesc=" MNX Document Object Model for C++17 (mingw-w64)" +arch=('any') +mingw_arch=('ucrt64' 'clang64' 'clangarm64') +url='https://rpatters1.github.io/mnxdom/' +msys2_repository_url='https://github.com/rpatters1/mnxdom' +license=('spdx:MIT') +msys2_references=() +depends=("${MINGW_PACKAGE_PREFIX}-cc-libs" + "${MINGW_PACKAGE_PREFIX}-json-schema-validator") +makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-ninja" + "${MINGW_PACKAGE_PREFIX}-cc" + "${MINGW_PACKAGE_PREFIX}-nlohmann-json" + 'vim') +source=("https://github.com/rpatters1/mnxdom/archive/refs/tags/v${pkgver}.tar.gz" + 'fix-template-ambiguity.patch') +sha256sums=('5ba67216c0de69ab14d8f28724d1e37e9727d4a649eb80930770e8e39a71a5f7' + 'bbc2d665aa1cc8efaf03caed25d146cc176fed765e7bf9f27df0e1fcca1989bc') + +prepare() { + cd "${srcdir}"/${_realname}-${pkgver} + patch -p1 -i "${srcdir}/fix-template-ambiguity.patch" +} + +build() { + 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=" \ + cmake \ + -GNinja \ + -Wno-dev \ + -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ + "${extra_config[@]}" \ + -DBUILD_SHARED_LIBS=ON \ + -DUSE_SYSTEM_NLOHMANN_JSON=ON \ + -DUSE_SYSTEM_JSON_SCHEMA_VALIDATOR=ON \ + -Dmnxdom_BUILD_TESTING=OFF \ + -S ${_realname}-${pkgver} \ + -B "build-${MSYSTEM}" + + cmake --build "build-${MSYSTEM}" +} + +package() { + DESTDIR="${pkgdir}" cmake --install "build-${MSYSTEM}" + mkdir "${pkgdir}${MINGW_PREFIX}/bin/" + cp ${srcdir}/build-${MSYSTEM}/libmnxdom.dll "${pkgdir}${MINGW_PREFIX}/bin/" + install -Dm644 ${_realname}-${pkgver}/LICENSE -t "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/" +} diff --git a/mingw-w64-mnxdom/fix-template-ambiguity.patch b/mingw-w64-mnxdom/fix-template-ambiguity.patch new file mode 100644 index 0000000000000..c6f184ae75638 --- /dev/null +++ b/mingw-w64-mnxdom/fix-template-ambiguity.patch @@ -0,0 +1,7 @@ +--- a/src/BaseTypes.h ++++ b/src/BaseTypes.h +@@ -1029,3 +1029,3 @@ + // Lookup the string in the specialized map. + const auto& map = ::mnx::EnumStringMapping::stringToEnum(); +- auto it = map.find(j.get()); ++ auto it = map.find(j.template get());