3471b314dd
* build: Experimentally switch to gcc on macOS * build: Corrected gcc paths * build: Enable objective c support on macOS * build: Enable ObjC and ObjC++ on macOS * build: Add ObjC and ObjC++ flags * build: Try compiling objc with clang * build: Remove invalid flags again * fix: Let's not include objc headers in C++ code * sys: Move macos utils code to its own file * fix: Missing unistd include on mac * sys: Removed loader script stuff since it's currently unused and broken * fix: Missing include * fix: Another missing include * fix: CFURLCreateWithBytes wants a pointer to mutable data * fix: Try disabling name mangling of ObjC functions * sys: Move macos utils declarations to its own header file * fix: C Linkage * fix: Move objc function prototypes to C++ headers * fix: More missing includes * fix: Warning error * sys: Call ObjC with C ABI instead of trying to use C++ * build: Update libraries * sys: Fixed build errors * sys: No const correctness I guess * sys: Fixed prototypes * sys: This is C now * sys: More nullptr -> NULL * sys: Fix crash on exit * sys: Try using proper std concepts instead of custom ones * sys: Replaced another hex::is_signed * build: Upgrade to gcc 12 and MacOS Monterey * build: Fixed MacOS runner name * build: Cache correct ccache folder on macOS
44 lines
1.4 KiB
Objective-C
44 lines
1.4 KiB
Objective-C
#if defined(OS_MACOS)
|
|
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <Foundation/Foundation.h>
|
|
|
|
char* getMacExecutableDirectoryPath() {
|
|
@autoreleasepool {
|
|
const char *pathString = [[[[[NSBundle mainBundle] executableURL] URLByDeletingLastPathComponent] path] UTF8String];
|
|
|
|
char *result = malloc(strlen(pathString) + 1);
|
|
strcpy(result, pathString);
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
char* getMacApplicationSupportDirectoryPath() {
|
|
@autoreleasepool {
|
|
NSError* error = nil;
|
|
NSURL* dirUrl = [[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory
|
|
inDomain:NSUserDomainMask
|
|
appropriateForURL:nil
|
|
create:YES
|
|
error:&error];
|
|
|
|
if (error != nil) {
|
|
return NULL;
|
|
}
|
|
|
|
const char *pathString = [[[dirUrl URLByAppendingPathComponent:(@"imhex")] path] UTF8String];
|
|
|
|
char *result = malloc(strlen(pathString) + 1);
|
|
strcpy(result, pathString);
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
void macFree(void *ptr) {
|
|
free(ptr);
|
|
}
|
|
|
|
#endif |