← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Crash Reporter

 

On 30/07/2019 20:03, Nick Østergaard wrote:
> I get the same error. :(
> 

Hi Nick,

We had two problems:
- wrong check macro (I removed it in the last commit from my branch)
- wrong build of wx (must be configured with --enable-backtrace - fixed
PKGBUILD in the attachment).

Latest code here:
https://github.com/twlostow/kicad-dev/tree/tom-crash-reporter-aug01

Cheers,
Tom
####
#
# Based on packages found at these URLs
#     https://www.archlinux.org/packages/extra/i686/wxgtk-common/
#     https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-wxWidgets
#
# Maintainer: Tim S <stahta01@xxxxxxxxx>
#
####

# Packages that are assumed to be installed when building this package.
#   pacman -S --needed mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain

_basename=wxWidgets
_realname=wxmsw
_wx_basever=3.1
# Example _wx_buildver value is "-rc"
_wx_buildver=

pkgbase=mingw-w64-${_basename}${_wx_basever}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}${_wx_basever}"
pkgver=${_wx_basever}.2
pkgrel=1
pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)"
arch=('any')
url="http://wxwidgets.org";
license=('custom:wxWindows')
makedepends=(
  "make"
  "patch"
  "${MINGW_PACKAGE_PREFIX}-libpng"
  "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
  "${MINGW_PACKAGE_PREFIX}-libtiff"
)
options=('strip' 'staticlibs' 'buildflags')
source=(
  https://github.com/wxWidgets/wxWidgets/releases/download/v${pkgver}${_wx_buildver}/${_basename}-${pkgver}${_wx_buildver}.tar.bz2

  # This patch is a MSys2 run-time patch
  "001-wxWidgets-3.0.2-relocate-prefix-in-bin-wx-config.patch"

  "002-wxWidgets-3.0.3-make-abicheck-non-fatal.patch"

  # the wxTeam rejected this patch
  "005-wxWidgets-3.0.2-Remove-WX_LIBS_STATIC-from-m4.patch"

  011-wxWidgets-3.1.2-Enable-wxUSE_GRAPHICS_DIRECT2D.patch
)
sha256sums=('4cb8d23d70f9261debf7d6cfeca667fc0a7d2b6565adb8f1c484f9b674f1f27a'
            '7c3b8f6ba275a448a5e82d64c4914acd5aefb8bbb952389688f3e7167a787c56'
            '8e1eb9d6a13c7c52ffaec6093e40d1f3c397a220fd881274ce3ef54fc39525d9'
            '6ae8ab869c091019f62a15de788a2b9c5d326bfac6be7f247e4c82426d41e4ef'
            'a0079d43c0c0308060578318ee979af3ecc400cca537e9378dc9021fe4b5a371')
prepare() {
  cd "${srcdir}"/${_basename}-${pkgver}${_wx_buildver}

  # Fix MSys2 Run-Time wx-config bug.
  patch -p1 -i "${srcdir}"/001-wxWidgets-3.0.2-relocate-prefix-in-bin-wx-config.patch

  patch -p1 -i "${srcdir}"/002-wxWidgets-3.0.3-make-abicheck-non-fatal.patch

  # This patch is not really needed; but, WX_LIBS_STATIC does not work correctly under MSys2
  # Removed it to see if anything breaks or if anything is fixed.
  patch -p1 -i "${srcdir}"/005-wxWidgets-3.0.2-Remove-WX_LIBS_STATIC-from-m4.patch

  patch -p1 -i "${srcdir}"/011-wxWidgets-3.1.2-Enable-wxUSE_GRAPHICS_DIRECT2D.patch
}

build() {
  ####
  # Configure options added to support other software:
  #   --enable-graphics_ctx     codelite
  #
  # Configure options added to check for build issues
  #   --disable-precomp-headers
  #
  # Configure options added to avoid possible future issues
  #   --with-cxx=14
  #   --enable-std_string
  #
  # Configure options added to avoid warnings:
  #   --with-regex=builtin
  #
  # Configure options known to cause build errors:
  #   --disable-regkey                                compile error
  #
  # Configure options believed to reduce code size or build time:
  #   --without-opengl
  #   --without-subdirs
  #   --disable-webview
  #   --disable-mediactrl
  ####

  [[ -d "${srcdir}"/build-${CARCH}-shared ]] && rm -rf "${srcdir}"/build-${CARCH}-shared
  mkdir -p "${srcdir}"/build-${CARCH}-shared && cd "${srcdir}"/build-${CARCH}-shared

  ../${_basename}-${pkgver}${_wx_buildver}/configure \
    --prefix=${MINGW_PREFIX} \
    --host=${MINGW_CHOST} \
    --target=${MINGW_CHOST} \
    --build=${MINGW_CHOST} \
    --enable-shared \
    --enable-std_string \
    --enable-iff \
    --enable-permissive \
    --enable-unicode \
    --enable-graphics_ctx \
    --enable-accessibility \
    --enable-backtrace \
    --disable-monolithic \
    --disable-precomp-headers \
    --with-msw \
    --with-cxx=14 \
    --with-opengl \
    --with-libpng=sys \
    --with-libjpeg=sys \
    --with-libtiff=sys \
    --with-regex=builtin

  make #VERBOSE=1


  [[ -d "${srcdir}"/build-${CARCH}-static ]] && rm -rf "${srcdir}"/build-${CARCH}-static
  mkdir -p "${srcdir}"/build-${CARCH}-static && cd "${srcdir}"/build-${CARCH}-static

  ../${_basename}-${pkgver}${_wx_buildver}/configure \
    --prefix=${MINGW_PREFIX} \
    --host=${MINGW_CHOST} \
    --target=${MINGW_CHOST} \
    --build=${MINGW_CHOST} \
    --disable-shared \
    --enable-std_string \
    --enable-iff \
    --enable-permissive \
    --enable-backtrace \
    --enable-unicode \
    --enable-graphics_ctx \
    --enable-accessibility \
    --disable-monolithic \
    --disable-precomp-headers \
    --with-msw \
    --with-cxx=14 \
    --with-opengl \
    --with-libpng=sys \
    --with-libjpeg=sys \
    --with-libtiff=sys \
    --with-regex=builtin

  make #VERBOSE=1 -j1
}

#check() {
  #cd "${srcdir}/build-${CARCH}-shared/tests"
  #make -k || true

  #cd "${srcdir}/build-${CARCH}-shared/samples"
  #make -k || true
#}

_package_wxmsw() {
  pkgdesc="A C++ library that lets developers create applications for Windows, Linux and UNIX (mingw-w64)"
  provides=("${MINGW_PACKAGE_PREFIX}-wxWidgets${_wx_basever}")
  conflicts=("${MINGW_PACKAGE_PREFIX}-wxWidgets${_wx_basever}")
  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-${CARCH}-static
  make DESTDIR="${pkgdir}" install

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

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

  # Rename files
  mv ${pkgdir}${MINGW_PREFIX}/bin/wx-config{,-${_wx_basever}}
  mv ${pkgdir}${MINGW_PREFIX}/share/aclocal/wxwin.m4 ${pkgdir}${MINGW_PREFIX}/share/aclocal/wxwin${_wx_basever}.m4

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

  # Remove conflicting files; that do NOT need to be renamed.
  rm -f ${pkgdir}${MINGW_PREFIX}/bin/wxrc.exe
  rm -f ${pkgdir}${MINGW_PREFIX}/bin/wx-config

  # Remove conflicting files; that I have no idea how to rename
  rm -fr ${pkgdir}${MINGW_PREFIX}/share/bakefile
  rm -fr ${pkgdir}${MINGW_PREFIX}/share/locale

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

package_mingw-w64-i686-wxmsw3.1() { _package_wxmsw; }
package_mingw-w64-x86_64-wxmsw3.1() { _package_wxmsw; }

Follow ups

References