get xcode sdk

This commit is contained in:
Henry Hiles 2026-07-07 18:51:27 -04:00
commit 4c90fbd7d1
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
3 changed files with 18 additions and 1 deletions

View file

@ -1,6 +1,7 @@
import "dart:io"; import "dart:io";
import "package:hooks/hooks.dart"; import "package:hooks/hooks.dart";
import "package:code_assets/code_assets.dart"; import "package:code_assets/code_assets.dart";
import "package:nexus/helpers/extensions/get_xcode_sdk.dart";
Future<void> main(List<String> args) => build(args, (input, output) async { Future<void> main(List<String> args) => build(args, (input, output) async {
if (!input.config.buildCodeAssets) return; if (!input.config.buildCodeAssets) return;
@ -16,6 +17,7 @@ Future<void> main(List<String> args) => build(args, (input, output) async {
break; break;
case OS.macOS: case OS.macOS:
libFileName = "libgomuks.dylib"; libFileName = "libgomuks.dylib";
env = {"SDKROOT": await getXCodeSDK()};
break; break;
case OS.windows: case OS.windows:
libFileName = "libgomuks.dll"; libFileName = "libgomuks.dll";

View file

@ -0,0 +1,11 @@
import "dart:io";
Future<String> getXCodeSDK() async {
final result = await Process.run("xcrun", ["--show-sdk-path"]);
if (result.exitCode != 0) {
throw Exception("Failed to get XCode SDK\n${result.stderr}");
}
return result.stdout;
}

View file

@ -1,6 +1,7 @@
import "dart:io"; import "dart:io";
import "package:ffigen/ffigen.dart"; import "package:ffigen/ffigen.dart";
import "package:path/path.dart"; import "package:path/path.dart";
import "package:nexus/helpers/extensions/get_xcode_sdk.dart";
void main(List<String> args) async { void main(List<String> args) async {
final repoDir = Directory.fromUri(Platform.script.resolve("../gomuks")); final repoDir = Directory.fromUri(Platform.script.resolve("../gomuks"));
@ -14,7 +15,10 @@ void main(List<String> args) async {
), ),
headers: Headers( headers: Headers(
entryPoints: [File(join(repoDir.path, "pkg", "ffi", "gomuksffi.h")).uri], entryPoints: [File(join(repoDir.path, "pkg", "ffi", "gomuksffi.h")).uri],
compilerOptions: ["--no-warnings"], compilerOptions: [
"--no-warnings",
if (Platform.isMacOS) "${await getXCodeSDK()}/usr/include",
],
), ),
functions: Functions.includeAll, functions: Functions.includeAll,
).generate( ).generate(