Projucer, Xcode Macros and Escaping


#1

So I’ve started implementing AAX PageTables on our plug-ins.
In order to use it you must have a define and make sure you add the file to your Resources*.
(might be worth handling this nicer for Win/Mac & AAX but that’s another story…)

When I define:
JucePlugin_AAXPageTableFile=“PluginNameAAXPageTable.xml”

  • Xcode, this WON’T work! the quotes being used by Xcode itself.
  • VS2015, works as expected.

When I define:
JucePlugin_AAXPageTableFile=“PluginNameAAXPageTable.xml”

  • Xcode Yells since it actually breaks the xcode-xml file…

When I define:
JucePlugin_AAXPageTableFile=\“PluginNameAAXPageTable.xml\”
(I’ve edited this as discourse escaped me :slight_smile: )

  • It works for Xcode! yay!
  • It’s broken for VS :frowning:

Summary:
For now I need to DoRY instead of DRY.

Might be nice to fix this…


#2

We’ll have a look at this.

Do you want the definition of JucePlugin_AAXPageTableFile to include the surrounding “”?


#3

@t0m I didn’t find any documentation of JucePlugin_AAXPageTableFile

However looking at the code and testing shows the following:

  1. The actual use of JucePlugin_AAXPageTableFile is to a const char* which is the filename to be used for mapping…
    So… just as JUCE plug-in name #define is quoted this also must be quoted.
  2. You also need to add it to .aaxplugin/Contents/Resources
    (btw, with current JUCE separate plug-in builds this isn’t trivial. You add Resources in Projucer, but which show up on ALL targets. might be nice adding AAXPageTable to the projucer settings as a filename/path value)

#4

I’ve pushed a fix for this to develop. The following should now work on OS X too:

JucePlugin_AAXPageTableFile="PluginNameAAXPageTable.xml"

#5

Hi @t0m,
Well… close enough :wink: Xcode needs escaping so the export for Xcode should be:
JucePlugin_AAXPageTableFile="\PluginNameAAXPageTable.xml\"

:frowning:
In order to avoid multiple defines for each platform…


#6

Does this escaping still work? I was trying to add a page table for a plugin and I ended up having to have a definition like:

JucePlugin_AAXPageTableFile="\"PluginNameAAXPageTable.xml\""

…to get it to compile (but doesn’t work for runtime). My solution right now is to write the definition into the user section of AppConfig.h:

#define JucePlugin_AAXPageTableFile "PluginNameAAXPageTable.xml"