Skip to content

8.0.0 fails to build with MuParser 2.3.3

Description

As reported in Debian Bug #1009413, OTB 8.0.0 fails to build with muparser (2.3.3-0.1) in Debian unstable:

> CMake Error at CMake/FindMuParser.cmake:62 (math):
>   math cannot parse the expression: "((/*

include/muParserDef.h changed from:

#define MUP_VERSION _T("2.2.6")

to:

  static const string_type ParserVersion = string_type(_T("2.3.3 (Release)"));

Both should be supported by CMake/FindMuParser.cmake, but it seems that the (Release) bit is not handled by the regex:

  # Try to find the version for muparser >= 2.3
  string(REGEX REPLACE ".*static *const *string_type *ParserVersion *= *string_type\\(_T\\(\"([0-9.]+)\"\\)\\);.*"
      "\\1" MUPARSER_VERSION "${MUPARSER_VERSION_OLD_STYLE}")

This patch fixes the issue: muparser.patch

Steps to reproduce

Build OTB with -DOTB_USE_MUPARSER:BOOL=ON on Debian unstable.

Configuration information

  • Debian unstable amd64
  • OTB 8.0.0
  • muparser (2.3.3-0.1)