Initial release

This commit is contained in:
civ
2026-08-16 18:24:52 +07:00
commit 876886a39a
13244 changed files with 2353959 additions and 0 deletions
@@ -0,0 +1,54 @@
// This file is part of VSTGUI. It is subject to the license terms
// in the LICENSE file found in the top-level directory of this
// distribution and at http://github.com/steinbergmedia/vstgui/LICENSE
#ifndef __getpluginbundle__
#define __getpluginbundle__
//-----------------------------------------------------------------------------
/// @cond ignore
//-----------------------------------------------------------------------------
#if MAC
#include <dlfcn.h>
#include <CoreFoundation/CFBundle.h>
#include <string>
//-----------------------------------------------------------------------------
static CFBundleRef GetPluginBundle ()
{
CFBundleRef pluginBundle = 0;
Dl_info info;
if (dladdr ((const void*)GetPluginBundle, &info))
{
if (info.dli_fname)
{
std::string name;
name.assign (info.dli_fname);
for (int i = 0; i < 3; i++)
{
size_t delPos = name.find_last_of ('/');
if (delPos == std::string::npos)
{
fprintf (stdout, "Could not determine bundle location.\n");
return 0; // unexpected
}
name.erase (delPos, name.length () - delPos);
}
CFURLRef bundleUrl = CFURLCreateFromFileSystemRepresentation (0, (const UInt8*)name.c_str (), name.length (), true);
if (bundleUrl)
{
pluginBundle = CFBundleCreate (0, bundleUrl);
CFRelease (bundleUrl);
}
}
}
return pluginBundle;
}
#endif
//-----------------------------------------------------------------------------
/// @endcond
//-----------------------------------------------------------------------------
#endif // __getpluginbundle__