30 static_assert (
sizeof (
pointer_sized_int) ==
sizeof (
void*),
"Basic sanity test failed: please report!");
31 static_assert (
sizeof (
int8) == 1,
"Basic sanity test failed: please report!");
32 static_assert (
sizeof (
uint8) == 1,
"Basic sanity test failed: please report!");
33 static_assert (
sizeof (
int16) == 2,
"Basic sanity test failed: please report!");
34 static_assert (
sizeof (
uint16) == 2,
"Basic sanity test failed: please report!");
35 static_assert (
sizeof (
int32) == 4,
"Basic sanity test failed: please report!");
36 static_assert (
sizeof (
uint32) == 4,
"Basic sanity test failed: please report!");
37 static_assert (
sizeof (
int64) == 8,
"Basic sanity test failed: please report!");
38 static_assert (
sizeof (
uint64) == 8,
"Basic sanity test failed: please report!");
40 return "JUCE v" JUCE_STRINGIFY(JUCE_MAJOR_VERSION)
41 "." JUCE_STRINGIFY(JUCE_MINOR_VERSION)
42 "." JUCE_STRINGIFY(JUCE_BUILDNUMBER);
45#if JUCE_ANDROID && ! defined (JUCE_DISABLE_JUCE_VERSION_PRINTING)
46 #define JUCE_DISABLE_JUCE_VERSION_PRINTING 1
49#if JUCE_DEBUG && ! JUCE_DISABLE_JUCE_VERSION_PRINTING
58 static JuceVersionPrinter juceVersionPrinter;
77 ids.
add (address.toString());
87 CPUInformation()
noexcept { initialise(); }
89 void initialise() noexcept;
91 int numLogicalCPUs = 0, numPhysicalCPUs = 0;
93 bool hasMMX = false, hasSSE = false, hasSSE2 = false, hasSSE3 = false,
94 has3DNow = false, hasFMA3 = false, hasFMA4 = false, hasSSSE3 = false,
95 hasSSE41 = false, hasSSE42 = false, hasAVX = false, hasAVX2 = false,
96 hasAVX512F = false, hasAVX512BW = false, hasAVX512CD = false,
97 hasAVX512DQ = false, hasAVX512ER = false, hasAVX512IFMA = false,
98 hasAVX512PF = false, hasAVX512VBMI = false, hasAVX512VL = false,
99 hasAVX512VPOPCNTDQ = false,
103static const CPUInformation& getCPUInformation() noexcept
105 static CPUInformation info;
141 #if JUCE_ANDROID || JUCE_MINGW || !defined(__GLIBC__)
153 symbol->MaxNameLen = 255;
156 for (
int i = 0; i <
frames; ++i)
168 if (::SymGetModuleInfo64 (process, symbol->ModBase, &
moduleInfo))
180 for (
int i = 0; i <
frames; ++i)
195 globalCrashHandler (
ep);
199static void handleCrash (
int signum)
201 globalCrashHandler ((
void*) (pointer_sized_int) signum);
202 ::kill (getpid(), SIGKILL);
205int juce_siginterrupt (
int sig,
int flag);
218 for (
int i = 0; i < numElementsInArray (
signals); ++i)
220 ::signal (
signals[i], handleCrash);
221 juce_siginterrupt (
signals[i], 1);
228 #if JUCE_MAC || JUCE_IOS
239 bundle =
bundle.getParentDirectory().getParentDirectory();
bool isEmpty() const noexcept
void add(const ElementType &newElement)
static File JUCE_CALLTYPE getSpecialLocation(const SpecialLocationType type)
uint64 getFileIdentifier() const
static Array< MACAddress > getAllAddresses()
static String toHexString(IntegerType number)
static bool hasAVX512CD() noexcept
static String getStackBacktrace()
static bool hasMMX() noexcept
static void setApplicationCrashHandler(CrashHandlerFunction)
void(*)(void *) CrashHandlerFunction
static int getNumPhysicalCpus() noexcept
static bool hasAVX512ER() noexcept
static bool has3DNow() noexcept
static bool hasAVX2() noexcept
static bool hasAVX512VPOPCNTDQ() noexcept
static bool hasSSE() noexcept
static bool hasAVX512DQ() noexcept
static bool isRunningInAppExtensionSandbox() noexcept
static bool hasNeon() noexcept
static bool hasAVX512F() noexcept
static bool hasSSE3() noexcept
static bool hasSSE2() noexcept
static bool hasAVX() noexcept
static bool hasAVX512VBMI() noexcept
static bool hasSSSE3() noexcept
static bool hasAVX512VL() noexcept
static bool hasAVX512PF() noexcept
static bool hasSSE41() noexcept
static StringArray getDeviceIdentifiers()
static bool hasFMA4() noexcept
static String getJUCEVersion()
static bool hasSSE42() noexcept
static bool hasFMA3() noexcept
static bool hasAVX512IFMA() noexcept
static bool hasAVX512BW() noexcept
static int getNumCpus() noexcept