Compiling and distributing plugins/apps for several CPU architectures

+1 to what Tom wrote. Most compilers support some form of enabling/disabling machine target options for specific functions, but support for this is limited and sometimes a bit unpredictable (for example, what happens when these functions are inlined).

I find that it more reliable to simply compile the processing part (basically the processBlock part) of the plug-in several times with different target flags. Each time you compile, you also change a template parameter of your top-level entry class (for example via a pre-processor define that you provide to the compiler command-line) so that you don’t get any symbol clashes when linking everything together. You then figure out which CPU your plug-in is running on when prepareToPlay is called and instantiate the processing part with the correct template parameter.