add new and init to toolchain
This commit is contained in:
@@ -13,6 +13,32 @@ append_owned :: proc(command: ^[dynamic]string, value: string, allocator: mem.Al
|
||||
append(command, strings.clone(value, allocator))
|
||||
}
|
||||
|
||||
macos_sdk_root :: proc(allocator := context.allocator) -> (string, bool) {
|
||||
candidates := []string{
|
||||
"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk",
|
||||
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk",
|
||||
}
|
||||
for path in candidates {
|
||||
if os.exists(path) {
|
||||
return strings.clone(path, allocator), true
|
||||
}
|
||||
}
|
||||
return "", false
|
||||
}
|
||||
|
||||
append_macos_sdk_paths :: proc(command: ^[dynamic]string, selected: target.Target, allocator: mem.Allocator) {
|
||||
if selected.kind != .Aarch64_Macos {
|
||||
return
|
||||
}
|
||||
sdk, ok := macos_sdk_root(allocator)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
defer delete(sdk, allocator)
|
||||
append(command, fmt.aprintf("-F%s/System/Library/Frameworks", sdk, allocator=allocator))
|
||||
append(command, fmt.aprintf("-L%s/usr/lib", sdk, allocator=allocator))
|
||||
}
|
||||
|
||||
build_command :: proc(
|
||||
llvm_path, output_path: string,
|
||||
link_arguments: []linker.Argument,
|
||||
@@ -29,6 +55,7 @@ build_command :: proc(
|
||||
append_owned(&command, target.name(selected), allocator)
|
||||
append_owned(&command, "-Wno-override-module", allocator)
|
||||
append_owned(&command, "-Wno-unused-command-line-argument", allocator)
|
||||
append_macos_sdk_paths(&command, selected, allocator)
|
||||
append_owned(&command, llvm_path, allocator)
|
||||
for path in c_options.include_paths {
|
||||
append(&command, fmt.aprintf("-I%s", path, allocator=allocator))
|
||||
|
||||
Reference in New Issue
Block a user