darwin: resource_path()
parent
223032f0ce
commit
39cfb1d6a6
|
@ -1,6 +1,8 @@
|
|||
module darwin
|
||||
|
||||
#include <Cocoa/Cocoa.h>
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
|
||||
#flag -framework Cocoa
|
||||
|
||||
struct C.NSString { }
|
||||
|
@ -17,3 +19,22 @@ pub fn nsstring(s string) *C.NSString {
|
|||
//encoding: NSUTF8StringEncoding, freeWhenDone: false)
|
||||
}
|
||||
|
||||
// returns absolute path to folder where your resources should / will reside
|
||||
// for .app packages: .../my.app/Contents/Resources
|
||||
// for cli: .../parent_folder/Resources
|
||||
pub fn resource_path() string {
|
||||
|
||||
main_bundle := C.CFBundleGetMainBundle()
|
||||
resource_dir_url := C.CFBundleCopyResourcesDirectoryURL(main_bundle)
|
||||
assert !isnil(resource_dir_url)
|
||||
buffer_size := 4096
|
||||
mut buffer := malloc(buffer_size)
|
||||
buffer[0] = 0
|
||||
conv_result := C.CFURLGetFileSystemRepresentation(resource_dir_url, true, buffer, buffer_size)
|
||||
assert conv_result
|
||||
result := string(buffer)
|
||||
C.CFRelease(resource_dir_url)
|
||||
free(buffer)
|
||||
return result
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue