[waffle] [PATCHv2 02/19] pkg/archlinux: add mingw-w64-waffle package
Emil Velikov
emil.l.velikov at gmail.com
Mon Aug 4 09:26:37 PDT 2014
- Remove explicit build options (waffle has autodetection).
- Correct the destination directories.
- Bump mingw64-crt requirement 3.1.0-3 (fixes the strerror_s issue).
- Build twice - once for cross-builds and second time for win32 usage.
TODO:
- Get CPack to amend the install prefix - fix the "build twice" issue.
- Strip some/all of the binaries ?
- Current package works of a local git repo. Rename to -git or
convert to a release one ?
v2:
- Use single leading underscore for local variables.
- Read user _srcroot if available.
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
Reviewed-by: Jose Fonseca <jfonseca at vmware.com>
---
Chad,
I believe I've addressed your comments, and I think that the remaining
TODO's can be addressed with follow up commits.
-Emil
pkg/archlinux/mingw-w64-waffle/PKGBUILD | 86 +++++++++++++++++++++++++++++++++
1 file changed, 86 insertions(+)
create mode 100644 pkg/archlinux/mingw-w64-waffle/PKGBUILD
diff --git a/pkg/archlinux/mingw-w64-waffle/PKGBUILD b/pkg/archlinux/mingw-w64-waffle/PKGBUILD
new file mode 100644
index 0000000..c563948
--- /dev/null
+++ b/pkg/archlinux/mingw-w64-waffle/PKGBUILD
@@ -0,0 +1,86 @@
+# Maintainer: Chad Versace <chad.versace at linux.intel.com>
+
+pkgname='mingw-w64-waffle'
+pkgver='1.3.0'
+pkgrel=1
+pkgdesc='a library for choosing window system and OpenGL API at runtime (mingw-w64)'
+arch=('any')
+url='http://waffle-gl.github.io'
+license=('BSD')
+
+depends=(
+ 'mingw-w64-crt>=3.1.0-3'
+ )
+makedepends=(
+ 'mingw-w64-cmake'
+
+ # For building the docs.
+# XXX: Add as soon as we enable docs/manpages
+# 'libxslt'
+# 'docbook-xsl'
+
+ )
+
+options=('!strip' '!buildflags' 'staticlibs')
+_architectures="i686-w64-mingw32 x86_64-w64-mingw32"
+
+if [[ ! -v _srcroot ]]; then
+ msg "Environment variable _srcroot is unset"
+ msg "Fall back to using git worktree for _srcroot ..."
+ _srcroot="$(git rev-parse --show-toplevel)" || exit
+ msg "Using _srcroot=$_srcroot"
+fi
+
+build() {
+ unset LDFLAGS
+ cd "${_srcroot}"
+ msg "Building mingw-w64-waffle for cross-building"
+ for _arch in ${_architectures}; do
+ mkdir -p build-${_arch} && pushd build-${_arch}
+ ${_arch}-cmake .. \
+ -DCMAKE_INSTALL_PREFIX=/usr/${_arch} \
+ -DCMAKE_INSTALL_LIBDIR=/usr/${_arch}/lib \
+ -DCMAKE_BUILD_TYPE=Release \
+ \
+ -Dwaffle_build_tests=0 \
+ -Dwaffle_build_manpages=0 \
+ -Dwaffle_build_htmldocs=0 \
+ -Dwaffle_build_examples=1
+ make
+ popd
+ done
+
+ # There should be a better way to do this
+ msg "Building mingw-w64-waffle for native builds"
+ for _arch in ${_architectures}; do
+ mkdir -p "build-${_arch}-win" && pushd "build-${_arch}-win"
+ ${_arch}-cmake .. \
+ -DCMAKE_INSTALL_PREFIX="" \
+ -DCMAKE_INSTALL_LIBDIR="lib" \
+ -DCMAKE_BUILD_TYPE=Release \
+ \
+ -Dwaffle_build_tests=0 \
+ -Dwaffle_build_manpages=0 \
+ -Dwaffle_build_htmldocs=0 \
+ -Dwaffle_build_examples=1
+ make
+ popd
+ done
+}
+
+package() {
+ for _arch in ${_architectures}; do
+ cd "${_srcroot}/build-${_arch}"
+ make DESTDIR="${pkgdir}" install
+# ${_arch}-strip --strip-unneeded "$pkgdir"/usr/${_arch}/bin/*.dll
+# ${_arch}-strip -g "$pkgdir"/usr/${_arch}/lib/*.a
+ done
+
+ for _arch in ${_architectures}; do
+ cd "${_srcroot}/build-${_arch}-win"
+ # Create Windows zip archives
+ make package
+ done
+}
+
+# vim:set ts=2 sw=2 et:
--
2.0.2
More information about the waffle
mailing list