From a1e52501a3b23362a3639ad25b6fe8fa70f5ce87 Mon Sep 17 00:00:00 2001 From: nshaheed Date: Sat, 12 Oct 2024 15:38:38 -0700 Subject: [PATCH] add macos cross-compilation and universal binary creation --- cross/arm64-macos.txt | 20 ++++++++++++++++++++ cross/x86_64-macos.txt | 20 ++++++++++++++++++++ makefile | 19 +++++++++++++++++-- 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 cross/arm64-macos.txt create mode 100644 cross/x86_64-macos.txt diff --git a/cross/arm64-macos.txt b/cross/arm64-macos.txt new file mode 100644 index 0000000..b09e383 --- /dev/null +++ b/cross/arm64-macos.txt @@ -0,0 +1,20 @@ +[binaries] +c = ['clang'] +cpp = ['clang++'] +objc = ['clang'] +objcpp = ['clang++'] +ar = ['ar'] +strip = ['strip'] +pkg-config = ['pkg-config'] + +[host_machine] +system = 'darwin' +cpu_family = 'aarch64' +cpu = 'aarch64' +endian = 'little' + +[built-in options] +c_args = ['-arch', 'arm64'] +cpp_args = ['-arch', 'arm64'] +c_link_args = ['-arch', 'arm64'] +cpp_link_args = ['-arch', 'arm64'] diff --git a/cross/x86_64-macos.txt b/cross/x86_64-macos.txt new file mode 100644 index 0000000..d625db6 --- /dev/null +++ b/cross/x86_64-macos.txt @@ -0,0 +1,20 @@ +[binaries] +c = ['clang'] +cpp = ['clang++'] +objc = ['clang'] +objcpp = ['clang++'] +ar = ['ar'] +strip = ['strip'] +pkg-config = ['pkg-config'] + +[host_machine] +system = 'darwin' +cpu_family = 'x86_64' +cpu = 'x86_64' +endian = 'little' + +[built-in options] +c_args = ['-arch', 'x86_64'] +cpp_args = ['-arch', 'x86_64'] +c_link_args = ['-arch', 'x86_64'] +cpp_link_args = ['-arch', 'x86_64'] diff --git a/makefile b/makefile index 8139a9a..fb94db1 100644 --- a/makefile +++ b/makefile @@ -12,6 +12,18 @@ build-release: build-release-win: meson setup builddir-release --backend vs +setup-mac-x86_64: + meson setup --cross-file cross/x86_64-macos.txt builddir-x86_64 + +setup-mac-arm64: + meson setup --cross-file cross/arm64-macos.txt builddir-arm64 + +build-mac-x86_64: setup-mac-x86_64 + meson compile -C builddir-x86_64 + +build-mac-arm64: setup-mac-arm64 + meson compile -C builddir-arm64 + install: meson install -C builddir-release @@ -19,6 +31,9 @@ install: mac osx linux linux-oss linux-jack linux-alsa linux-all: build-release meson compile -C builddir-release +mac-universal: build-mac-x86_64 build-mac-arm64 + lipo -create -output chump builddir-x86-64/chump-cli/chump builddir-arm64/chump-cli/chump + .PHONY: win win32 win64 win win32 win64: build-release-win meson compile -C builddir-release @@ -35,5 +50,5 @@ ifneq ("$(wildcard builddir-debug)","") meson compile -C builddir-debug --clean endif -clean-all: - rm -rf builddir-release builddir-debug +clean-all: + rm -rf builddir-release builddir-debug builddir-x86_64 builddir-arm64