[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