buzzinglight / IanniX

IanniX is a graphical open-source sequencer, based on Iannis Xenakis works, for digital art. IanniX syncs via Open Sound Control (OSC) events and curves to your real-time environment.
http://www.iannix.org
GNU General Public License v3.0
353 stars 41 forks source link

Qreal on arm #27

Closed umlaeute closed 7 years ago

umlaeute commented 7 years ago

This PR attempts to fix the build-problems with arm-architectures, where qreal is not double.

The first patch homogenizes the argument types for template functions (so all values are of type qreal, rather than some being native double, and others being qreal).

The second patch allows to set the base-type of the muparser (which defaults to double), as this must be the same as qreal. This is done by making the #define MUP_BASETYPE optional (only if no MUP_BASETYPE has been defined beforehnd, e.g. on the cmdline). The second patch does not enforce MUP_BASETYPE == float on arm architectures (or MUP_BASETYPE == qreal) in order to keep the patch minimal (and more likely to be applied up-upstream, if that applies).

This means, that when compiling IanniX for arm architectures, one still has to (manually) add something like -DMUP_BASETYPE=float to the preprocesser flags, which is good enough for me. There might be a way to detect arm-builds in the qmakefile, and automatically add the CPPFLAG, but I haven't dug into this.

Closes https://github.com/buzzinglight/IanniX/issues/26

gjacquemin commented 7 years ago

Whoo, thanks a lot again!