Skip to content

Commit

Permalink
wxWidgets: Convert to split package
Browse files Browse the repository at this point in the history
  • Loading branch information
stahta01 committed Jul 25, 2022
1 parent 42997a4 commit 09b3746
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 20 deletions.
84 changes: 64 additions & 20 deletions mingw-w64-wxWidgets/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,24 @@

_realname=wxWidgets
_wx_basever=3.0
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
provides=("${MINGW_PACKAGE_PREFIX}-wxmsw${_wx_basever}" "${MINGW_PACKAGE_PREFIX}-wxconfig")
pkgname=("${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-msw"
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-msw-libs")
pkgbase=mingw-w64-${_realname}
pkgver=${_wx_basever}.5.1
pkgrel=12
pkgrel=13
pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
license=("spdx:GPL-2.0-or-later AND WxWindows-exception-3.1")
url="https://www.wxwidgets.org/"
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-expat"
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
"${MINGW_PACKAGE_PREFIX}-libpng"
"${MINGW_PACKAGE_PREFIX}-libtiff"
"${MINGW_PACKAGE_PREFIX}-xz"
"${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-python"
"${MINGW_PACKAGE_PREFIX}-autotools")
"${MINGW_PACKAGE_PREFIX}-autotools"
"${MINGW_PACKAGE_PREFIX}-expat"
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
"${MINGW_PACKAGE_PREFIX}-libpng"
"${MINGW_PACKAGE_PREFIX}-libtiff"
"${MINGW_PACKAGE_PREFIX}-xz")
checkdepends=("${MINGW_PACKAGE_PREFIX}-cppunit")
options=('strip' 'staticlibs' 'buildflags')
source=(https://github.com/wxWidgets/wxWidgets/releases/download/v${pkgver}/wxWidgets-${pkgver}.tar.bz2
Expand Down Expand Up @@ -160,28 +158,74 @@ build() {
make #VERBOSE=1
}

package() {
package_wxwidgets3.0-msw() {
pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)"
depends=("${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-msw-libs")
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}${_wx_basever}"
"${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-wxmsw${_wx_basever}"
"${MINGW_PACKAGE_PREFIX}-wxwidgets-common"
"${MINGW_PACKAGE_PREFIX}-wxconfig")
conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}${_wx_basever}"
"${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-wxwidgets-common"
"${MINGW_PACKAGE_PREFIX}-wxconfig")

cd "${srcdir}"/build-${MSYSTEM}-static
make DESTDIR="${pkgdir}" install
mv ${pkgdir}${MINGW_PREFIX}/bin/wx-config{,-static}

cd "${srcdir}"/build-${MSYSTEM}
make DESTDIR="${pkgdir}" install

mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin

# create wx-config copy with version file suffix
cp ${pkgdir}${MINGW_PREFIX}/bin/wx-config{,-${_wx_basever}}

# Add missing file with exe extension (Likely bug in wxWidgets makefile)
cp -f ${pkgdir}${MINGW_PREFIX}/bin/wxrc-${_wx_basever} ${pkgdir}${MINGW_PREFIX}/bin/wxrc-${_wx_basever}.exe

rm "$pkgdir"${MINGW_PREFIX}/lib/*.dll
}

package_wxwidgets3.0-msw-libs() {
pkgdesc="wxMSW shared libraries for wxwidgets ${_wx_basever} (mingw-w64)"
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-expat"
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
"${MINGW_PACKAGE_PREFIX}-libpng"
"${MINGW_PACKAGE_PREFIX}-libtiff"
"${MINGW_PACKAGE_PREFIX}-xz"
"${MINGW_PACKAGE_PREFIX}-zlib")

cd "${srcdir}"/build-${MSYSTEM}
make DESTDIR="${pkgdir}" install

mv ${pkgdir}${MINGW_PREFIX}/lib/*.dll ${pkgdir}${MINGW_PREFIX}/bin

rm "$pkgdir"${MINGW_PREFIX}/bin/wx-config
rm "$pkgdir"${MINGW_PREFIX}/bin/wxrc-${_wx_basever}
rm "$pkgdir"${MINGW_PREFIX}/bin/*.exe
rm -r "$pkgdir"${MINGW_PREFIX}/share
rm -r "$pkgdir"${MINGW_PREFIX}/include
rm -r "$pkgdir"${MINGW_PREFIX}/lib

# License files
cd "${srcdir}"/${_realname}-${pkgver}/docs
install -Dm644 preamble.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/preamble.txt"
install -Dm644 licence.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/licence.txt"
install -Dm644 licendoc.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/licendoc.txt"
install -Dm644 lgpl.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/lgpl.txt"
install -Dm644 gpl.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/gpl.txt"
install -Dm644 xserver.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/xserver.txt"
install -Dm644 preamble.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}${_wx_basever}/preamble.txt"
install -Dm644 licence.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}${_wx_basever}/licence.txt"
install -Dm644 licendoc.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}${_wx_basever}/licendoc.txt"
install -Dm644 lgpl.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}${_wx_basever}/lgpl.txt"
install -Dm644 gpl.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}${_wx_basever}/gpl.txt"
install -Dm644 xserver.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}${_wx_basever}/xserver.txt"
}

# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
# vim: set ft=bash :

# generate wrappers
for _name in "${pkgname[@]}"; do
_short="package_${_name#${MINGW_PACKAGE_PREFIX}-}"
_func="$(declare -f "${_short}")"
eval "${_func/#${_short}/package_${_name}}"
done
# template end;
14 changes: 14 additions & 0 deletions mingw-w64-wxWidgets/wxMSW_usage_notes.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Suggested usage notes:

${MINGW_PACKAGE_PREFIX}-wxwidgets3.0-msw-libs installs the wxMSW DLLs.
And, when creating an MinGW package, this package should be added to
depends, unless the package only needs static wxMSW libraries.

${MINGW_PACKAGE_PREFIX}-wxwidgets3.0-msw installs the wxMSW packages.
And, when creating an MinGW package, this package should be
added to makedepends.

${MINGW_PACKAGE_PREFIX}-wxmsw3.0 is an alias for
${MINGW_PACKAGE_PREFIX}-wxwidgets3.0-msw please as you update any
package replace it with ${MINGW_PACKAGE_PREFIX}-wxwidgets3.0-msw and/or
${MINGW_PACKAGE_PREFIX}-wxwidgets3.0-msw-libs.

0 comments on commit 09b3746

Please sign in to comment.