| # Maintainer: David Grayson <davidegrayson@gmail.com> |
| |
| _realname=hclient |
| pkgbase=mingw-w64-${_realname} |
| pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git" |
| provides=("${MINGW_PACKAGE_PREFIX}-${_realname}") |
| conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}") |
| pkgver=233.8b17cf3 |
| pkgrel=1 |
| pkgdesc='Sample GUI for communicating with HIDs (mingw-w64)' |
| arch=('any') |
| mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64') |
| url='https://github.com/Microsoft/Windows-driver-samples/tree/master/hid/hclient' |
| license=('custom') |
| makedepends=("${MINGW_PACKAGE_PREFIX}-gcc") |
| depends=() |
| options=('strip') |
| source=("wds::git+https://github.com/Microsoft/Windows-driver-samples" |
| '01-includes.patch' |
| '02-intsafe.patch' |
| '03-read-thread-proc.patch' |
| '04-bad-comparison.patch' |
| '05-other-bad-comparison.patch' |
| '06-size-t.patch' |
| '07-dialog-proc.patch') |
| sha256sums=('SKIP' |
| 'c5e16ddaa76e5d2dbcf3d8b5083f9a2dfca74f869419c2e5be9b7444b05a72db' |
| '6c73b234ff46a20cae7de86e6d96f53629624c9b3d005d72030500e95616b826' |
| '6f2f2ffe160cf71c43fb0224efabf045490ef0202921600f79c45b0bab527e45' |
| '8c879599a1cf95ed838be8030acb2d74d85989de10a61c7ac1e9243266d1c361' |
| 'e673215729689b21fd4b6b246e70ed4a8d75fea871dac6b0ec410bf4fc87d60c' |
| '94b4ebd39a372cf105d45daa1be9c5286dc307a82325273c9925253985c736c8' |
| 'c2caed5841c2212ec43b7799b0140fcdd5e217b0488f8cfe9318a19841e0eb32') |
| |
| pkgver() { |
| cd "${srcdir}/wds" |
| printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" |
| } |
| |
| prepare() { |
| cd "${srcdir}/wds/hid/${_realname}" |
| |
| patch -p1 -i "${srcdir}/01-includes.patch" |
| |
| # GCC distinguishes between unsigned long and unsigned int. |
| patch -p1 -i "${srcdir}/02-intsafe.patch" |
| |
| # GCC distinguishes between void pointers and other pointers. |
| patch -p1 -i "${srcdir}/03-read-thread-proc.patch" |
| |
| # GCC warns about this because sizeof() for an array parameter |
| # just returns the size of a pointer. |
| patch -p1 -i "${srcdir}/04-bad-comparison.patch" |
| |
| # Fix a compile warning from comparing two different pointer types without a |
| # cast. |
| patch -p1 -i "${srcdir}/05-other-bad-comparison.patch" |
| |
| # size_t is different from SIZE_T |
| patch -p1 -i "${srcdir}/06-size-t.patch" |
| |
| # DlgProcs are supposed to return INT_PTR, which is different from LRESULT. |
| patch -p1 -i "${srcdir}/07-dialog-proc.patch" |
| } |
| |
| build() { |
| cd "${srcdir}" |
| rm -rf "build-${MINGW_CHOST}" |
| mkdir -p "build-${MINGW_CHOST}" |
| cd "build-${MINGW_CHOST}" |
| |
| windres ../wds/hid/hclient/hclient.rc rc.so |
| |
| gcc -mwindows --std=c99 ${CFLAGS} ${LDFLAGS} \ |
| ../wds/hid/hclient/*.c rc.so \ |
| -lsetupapi -lhid \ |
| -o hclient.exe |
| } |
| |
| package() { |
| cd "${srcdir}/wds" |
| install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE" |
| cd "${srcdir}/build-${MINGW_CHOST}" |
| mkdir "${pkgdir}${MINGW_PREFIX}/bin" |
| install -Dm755 hclient.exe "${pkgdir}${MINGW_PREFIX}/bin" |
| } |