blob: fe173c28257d97fa516df98cc771390aa14ebbc5 [file] [log] [blame]
# Maintainer: David Grayson <davidegrayson@gmail.com>
_realname=usbview
pkgbase=mingw-w64-${_realname}-git
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git"
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}")
replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=42.c4ba9c6
pkgrel=1
pkgdesc='GUI for browsing all USB controllers and connected USB devices on your computer (mingw-w64)'
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
url=''
license=('custom')
makedepends=(
"${MINGW_PACKAGE_PREFIX}-gcc"
'patch'
)
options=('strip')
source=("wds::git+https://github.com/Microsoft/Windows-driver-samples"
'my_xmlhelper.c'
'01-uvcview-includes.patch'
'03-resource-fix.patch'
'04-redefinition.patch'
'05-connection-statuses.patch'
)
sha256sums=('SKIP'
'c753691eea14e4cd267cc9a8e1afbf97648e9fda57cf68011384e4a5b1421c2e'
'36173cc353ca4901c23f971980a1ff59c007b952dd602d4faa5a34c7d7fc3518'
'2be3167e95f8d5d8abf91e43a49fac4593b8264df5c20478f476bdbe1bae89a3'
'017bcb16508f6496e227dce96bd547ed1be20f2712742a05bafd4460924d3aad'
'edcbf4392677934b21234e57a0094ce46f34053b51509719b186a18d7bdddc8e')
pkgver() {
cd "${srcdir}/wds"
printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
prepare() {
cd "${srcdir}/wds/usb/usbview"
# strsafe.h must be after tchar.h in mingw-w64.
# sal.h and usbspec.h are needed.
patch -p1 -i "${srcdir}/01-uvcview-includes.patch"
# We exclude the XML stuff because it requires Visual C++ (.NET).
rm usbschema.hpp xmlhelper.cpp
cp "${srcdir}/my_xmlhelper.c" .
# Fix some syntax errors that windres complains about
patch -p1 -i "${srcdir}/03-resource-fix.patch"
# Fix warnings about macro redefinitions.
patch -p1 -i "${srcdir}/04-redefinition.patch"
# Fix bad definition of array without a length.
patch -p1 -i "${srcdir}/05-connection-statuses.patch"
}
build() {
cd "${srcdir}"
mkdir -p "build-${MINGW_CHOST}/include"
cd "build-${MINGW_CHOST}"
# Make sure mingw-w64's usb.h takes precedence over libusb-compat's.
cp ${MINGW_PREFIX}/${MINGW_CHOST}/include/usb.h include
windres ../wds/usb/usbview/uvcview.rc rc.so
gcc -mwindows --std=c99 ${CFLAGS} ${LDFLAGS} \
-Iinclude \
-DNTDDI_VERSION=0x06020000 -D_WIN32_WINNT=0x0602 \
-DSTRSAFE_NO_DEPRECATE \
../wds/usb/usbview/*.c rc.so \
-lcomctl32 -lcomdlg32 -lsetupapi -lshell32 -lshlwapi -lole32 -lgdi32 \
-o usbview.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 usbview.exe "${pkgdir}${MINGW_PREFIX}/bin"
}