PDA

View Full Version : IPlug and xcode


cc_
03-16-2009, 10:36 AM
I spent a while getting IPlug/wdl compiled under XCode 3.1 (on OSX 10.5), mostly moving files around, finding missing files, making projects etc... if anyone's interested I zipped up the resulting files:

http://burbleland.com/tmp/iplug_xcode_20090316.zip

There are Xcode projects in lice , IPlug and IPlugExample - just add the 2 vstsdk files, build the projects and you should have a plugin. More details of what I had to change in the README.txt file. This is my first go with XCode, so I may have done something wrong, but the example plugins both seem to run (vst and au), so that's a good sign...

One thing I didn't figure out: when I was compiling IPlugVST.cpp it complained about the deprecated things not being in the AEffect structure, but when I preprocessed the file manually (still in XCode) they were there. Replacing IPlugVST.cpp with the manually generated preprocessed version got it to compile. Any ideas how to fix this?

olilarkin
04-03-2009, 10:17 AM
hey,

thanks for your xcode projects. unfortunately i can't get them to build. But i am confused by your instructions and so i could have done something wrong. I am using the latest xcode on 10.5.6 on an intel mac

1 - open wdl/lice/lice.xcodeproj and build the target lice (this builds
build/Release/licelib-a

should I build the release or debug version? I built the release

2- open wdl/IPlug/IPlug.xcodeproj and build the target IPlug (this
builds build/Debug/libIPlug.a)

i get an error:

/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h: At global scope:
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:61: error: expected identifier before '(' token
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:61: error: expected `}' before '(' token
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:61: error: expected `)' before '|' token
/Developer/Examples/CoreAudio/PublicUtility/CAStreamBasicDescription.h:61: error: expected declaration before '}' token

it points to here

// define Leopard specific symbols for backward compatibility if applicable
#if COREAUDIOTYPES_VERSION < 1050
typedef Float32 AudioSampleType;
enum { kAudioFormatFlagsCanonical = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked };
#endif

I can compile it if i comment out the above define but...

3 - open wdl/IPlugExample/IPlugExample.xcodeproj and build either IPlugExample (which
builds build/Debug/IPlugExample.vst) or IPlugExampleAU (which builds
build/Debug/IPlugExample.component)

doesn't build:

Undefined symbols:
"_strtod$UNIX2003", referenced from:
_png_handle_sCAL in libIPlug.a(pngrutil.o)
_png_handle_sCAL in libIPlug.a(pngrutil.o)
"_usleep$UNIX2003", referenced from:
Sleep(int) in libIPlug.a(swell.o)
WaitForSingleObject(void*, unsigned int)in libIPlug.a(swell.o)
"_pthread_cond_init$UNIX2003", referenced from:
CreateEvent(void*, signed char, signed char, char const*)in libIPlug.a(swell.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status


any ideas?

cheers

oli

schwa
04-03-2009, 10:47 AM
when I was compiling IPlugVST.cpp it complained about the deprecated things not being in the AEffect structure, but when I preprocessed the file manually (still in XCode) they were there.

I notice this in affect.h:

#if __ppc__
#ifndef VST_FORCE_DEPRECATED
#define VST_FORCE_DEPRECATED 0
#endif
#endif

I have no idea why they've done that, but my guess is that if you're compiling a universal binary, the ppc build is throwing the warnings/errors. You could try just commenting that out.

cc_
04-03-2009, 12:21 PM
Not sure about the first few things (sounds like you worked around them though).

I did get these once though:


Undefined symbols:
"_strtod$UNIX2003", referenced from:
_png_handle_sCAL in libIPlug.a(pngrutil.o)
_png_handle_sCAL in libIPlug.a(pngrutil.o)
"_usleep$UNIX2003", referenced from:
Sleep(int) in libIPlug.a(swell.o)
WaitForSingleObject(void*, unsigned int)in libIPlug.a(swell.o)
"_pthread_cond_init$UNIX2003", referenced from:
CreateEvent(void*, signed char, signed char, char const*)in libIPlug.a(swell.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status


That was when the build target was set to 10.4 (instead of 10.5) in IPlug and/or IPlugExample.

cc_
04-03-2009, 12:22 PM
I have no idea why they've done that, but my guess is that if you're compiling a universal binary, the ppc build is throwing the warnings/errors. You could try just commenting that out.

Cheers, I'll give it a go later...

olilarkin
04-03-2009, 01:45 PM
> That was when the build target was set to 10.4 (instead of 10.5) in IPlug and/or IPlugExample.

excellent both compiled now!

thanks,

oli

cc_
05-01-2009, 06:31 AM
I notice this in affect.h:

#if __ppc__
#ifndef VST_FORCE_DEPRECATED
#define VST_FORCE_DEPRECATED 0
#endif
#endif

I have no idea why they've done that, but my guess is that if you're compiling a universal binary, the ppc build is throwing the warnings/errors. You could try just commenting that out.

I finally got round to trying this, and it worked.
Thanks.