forked from bartvdbraak/blender
Douglas Bischoff's Fix for Plugins on OSX.
Kent
This commit is contained in:
parent
efa0a97dfb
commit
9bcf2dcd1c
@ -74,7 +74,7 @@ elif ( test $UNAME = "Darwin" ) then
|
||||
CC="cc";
|
||||
CFLAGS="-fPIC -funsigned-char -O2 -fno-common";
|
||||
LD="cc";
|
||||
LDFLAGS=" -bundle -bundle_loader ../../blender.app/Contents/MacOS/blender -lm";
|
||||
LDFLAGS="-flat_namespace -bundle -bundle_loader ../../blender.app/Contents/MacOS/blender -ldl -lm";
|
||||
EXT="so";
|
||||
fi
|
||||
|
||||
|
@ -102,62 +102,7 @@ void PIL_dynlib_close(PILdynlib *lib) {
|
||||
free(lib);
|
||||
}
|
||||
|
||||
#else
|
||||
#ifdef __APPLE__
|
||||
#include <mach-o/dyld.h>
|
||||
|
||||
struct PILdynlib {
|
||||
NSModule *handle;
|
||||
};
|
||||
|
||||
PILdynlib *PIL_dynlib_open(char *name) {
|
||||
NSObjectFileImage img;
|
||||
|
||||
PILdynlib *lib= malloc(sizeof(*lib));
|
||||
if (NSCreateObjectFileImageFromFile( name, &img) ==
|
||||
NSObjectFileImageSuccess) {
|
||||
lib->handle = NSLinkModule( img, name, NSLINKMODULE_OPTION_BINDNOW);
|
||||
NSDestroyObjectFileImage(img);
|
||||
return lib;
|
||||
}
|
||||
free(lib);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void *PIL_dynlib_find_symbol(PILdynlib* lib, char *symname) {
|
||||
char *name;
|
||||
NSSymbol cr;
|
||||
int size;
|
||||
|
||||
size = strlen(symname) + 2 * sizeof(char);
|
||||
if (size < CHAR_MAX) {
|
||||
name = MEM_mallocN(size, symname);
|
||||
sprintf(&name, "_%s",symname);
|
||||
printf("\nouchie name =%s\n",name);
|
||||
cr = NSLookupSymbolInModule(lib->handle, name);
|
||||
free(name);
|
||||
return NSAddressOfSymbol(cr);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *PIL_dynlib_get_error_as_string(PILdynlib* lib) {
|
||||
char *string;
|
||||
int *errorNumber;
|
||||
NSLinkEditErrors *c;
|
||||
char *filename, *errorstr;
|
||||
|
||||
NSLinkEditError(&c,&errorNumber,&filename,&errorstr);
|
||||
sprintf(string,"%d :%s: %s",errorNumber,filename,errorstr);
|
||||
return string;
|
||||
}
|
||||
|
||||
void PIL_dynlib_close(PILdynlib *lib) {
|
||||
NSUnLinkModule(lib->handle,NSUNLINKMODULE_OPTION_NONE);
|
||||
free(lib);
|
||||
}
|
||||
|
||||
#else /* Unix */
|
||||
#else /* Unix & MacOS X */
|
||||
|
||||
#include <dlfcn.h>
|
||||
|
||||
@ -193,4 +138,3 @@ void PIL_dynlib_close(PILdynlib *lib) {
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user