RTAS not created on OSX?


#1

Building on OSX, I have all 4 formats (AU, VST, RTAS, AAX) checked in the introjucer.
Everything builds fine.
Post-build script runs, but does not copy RTAS.

Do I need to select a set of particular settings (Base SDK? Compatibility SDK? OSX Architecture?) to get RTAS compiling or is this just the post-build script that is failing?

  • bram

#2

It’s probably just the script that’s failing… Could it just be that the target folder is read-only or something?


#3

Nope, actually if I try out the nm -g | grep myself I can see that the result is zero…
So even though introjucer has RTAS set to “on” and XCode does seem to be compiling the RTAS headers there is no function called “CProcess” in my binary…
In a second I’ll try if copying the plugin anyway and try running it in PT works…

  • bram

#4

Ah… This could actually be the ‘nm’ command itself that’s broken.

I had a confusing experience the other day when I tried to use it and it didn’t work at all - turns out that Xcode contains its own version of ‘nm’, hidden in the Xcode package, which does work, but the one in /usr/bin doesn’t seem to work on some newer binaries!


#5

Yup, copying the plugin by hand works fine, so it’s nm that is not reporting correctly.
I’ll just remove the check.
By the way, using something like this instead of hardwired paths would be much better - especially as the script is created automatically by the Introjucer:

# This script takes the build product and copies it to the AU, VST, and RTAS folders, depending on 
# which plugin types you've built

original=$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME

# this looks inside the binary to detect which platforms are needed.. 
copyAU=1
copyVST=1
copyRTAS=1
copyAAX=1

if [ $copyAU -gt 0 ]; then
  echo "Copying to AudioUnit folder..."
  mkdir -p $AUPluginsPath
  AU=$AUPluginsPath/$PRODUCT_NAME.component
  if [ -d "$AU" ]; then 
    rm -r "$AU"
  fi

  cp -r "$original" "$AU"
  sed -i "" -e 's/TDMwPTul/BNDLPTul/g' "$AU/Contents/PkgInfo"
  sed -i "" -e 's/TDMw/BNDL/g' "$AU/Contents/$INFOPLIST_FILE"
fi

if [ $copyVST -gt 0 ]; then
  echo "Copying to VST folder..."
  mkdir -p $VSTPluginsPath
  VST=$VSTPluginsPath/$PRODUCT_NAME.vst
  if [ -d "$VST" ]; then 
    rm -r "$VST"
  fi

  cp -r "$original" "$VST"
  sed -i "" -e 's/TDMwPTul/BNDLPTul/g' "$VST/Contents/PkgInfo"
  sed -i "" -e 's/TDMw/BNDL/g' "$VST/Contents/$INFOPLIST_FILE"
fi

if [ $copyRTAS -gt 0 ]; then
  echo "Copying to RTAS folder..."
  mkdir -p $RTASPluginsPath
  RTAS=$RTASPluginsPath/$PRODUCT_NAME.dpm
  if [ -d "$RTAS" ]; then
    rm -r "$RTAS"
  fi
  cp -r "$original" "$RTAS"
fi

if [ $copyAAX -gt 0 ]; then
  echo "Copying to AAX folder..."
  mkdir -p $AAXPluginsPath
  AAX=$AAXPluginsPath/$PRODUCT_NAME.aaxplugin
  if [ -d "$AAX" ]; then
    rm -r "$AAX"
  fi
  cp -r "$original" "$AAX"
fi

Notice the use of the environment variables…

  • bram

#6

A better solution might be to copy everything in Applications/Xcode.app/Contents/Developer/usr/bin into your /usr/bin directory, to avoid any surprises in future. A bunch of their other tools are also broken.

And yes, env variables might be neater, although I seem to remember I had problems getting them to work. Can’t remember why now…


#7

I also had trouble, but the bottom line is that you edit /etc/launchd.conf (and reboot)

Mine looks like this:

setenv RTAS80SDKPath /Users/bram/Development/PT_80_SDK
setenv AAXSDKPath /Users/bram/Development/AAX_SDK
setenv VSTPluginsPath /Users/bram/Library/Audio/Plug-Ins/VST
setenv RTASPluginsPath /Users/bram/Applications/PT9/Plug-Ins
setenv AUPluginsPath /Users/bram/Library/Audio/Plug-Ins/Components
setenv AAXPluginsPath /Users/bram/Applications/PT9/Plug-Ins

#8

With new introjucer and juce 2.1.8 there's a little problem building RTAS.

VST, AU and AAX are building great, but Xcode is "ignoring" flag:
#define JucePlugin_Build_RTAS    1

So there's no copying RTAS to defualt folder.

 

If I uncheck all formats (VST, AU and AAX) in introjucer, and only make RTAS build I get #error something like this:

"no audio format enabled"
 

To work properly I have to put
#define JucePlugin_Build_RTAS 1 in few other headers than normally
and make 

if [ $copyRTAS -gt 0 ]; then

 

to 

if [ 1 ]; then

in postscript.

There wasn't such problem in earlier versions.


#9

I haven't changed anything, and it seems to work ok for me.. The JucePlugin_Build_RTAS definitely gets set correctly.

Perhaps you've not got the juce_audio_plugin_client module enabled in your build?