From d984d403bfe7aad3e8cde0fbad52d664e5463c83 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 22 Jun 2020 15:56:22 -0400 Subject: [PATCH] Makefile supports building fat iOS and tvOS libraries from command line. --- Makefile | 15 +++++++++++++-- README.md | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 7f6bcb1b..bd6ac45b 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,12 @@ XCODE_PROJ := MoltenVKPackaging.xcodeproj XCODE_SCHEME_BASE := MoltenVK Package +# Specify individually (not as dependencies) so the sub-targets don't run in parallel .PHONY: all all: - xcodebuild -quiet -project "$(XCODE_PROJ)" -scheme "$(XCODE_SCHEME_BASE)" build + @$(MAKE) macos + @$(MAKE) iosfat + @$(MAKE) tvosfat .PHONY: macos macos: @@ -13,16 +16,24 @@ macos: ios: xcodebuild -quiet -project "$(XCODE_PROJ)" -scheme "$(XCODE_SCHEME_BASE) (iOS only)" build +.PHONY: iosfat +iosfat: ios + xcodebuild -quiet -project "$(XCODE_PROJ)" -scheme "$(XCODE_SCHEME_BASE) (iOS only)" -destination "generic/platform=iOS Simulator" build + .PHONY: tvos tvos: xcodebuild -quiet -project "$(XCODE_PROJ)" -scheme "$(XCODE_SCHEME_BASE) (tvOS only)" build +.PHONY: tvosfat +tvosfat: tvos + xcodebuild -quiet -project "$(XCODE_PROJ)" -scheme "$(XCODE_SCHEME_BASE) (tvOS only)" -destination "generic/platform=tvOS Simulator" build + .PHONY: clean clean: xcodebuild -quiet -project "$(XCODE_PROJ)" -scheme "$(XCODE_SCHEME_BASE)" clean rm -rf Package -#Usually requires 'sudo make install' +# Usually requires 'sudo make install' .PHONY: install install: rm -rf /Library/Frameworks/MoltenVK.framework diff --git a/README.md b/README.md index f5bc27cb..39c39c1a 100644 --- a/README.md +++ b/README.md @@ -158,9 +158,9 @@ platforms, or just one platform (in **_Release_** configuration): - **MoltenVK Package** - **MoltenVK Package (Debug)** +- **MoltenVK Package (macOS only)** - **MoltenVK Package (iOS only)** - **MoltenVK Package (tvOS only)** -- **MoltenVK Package (macOS only)** Each of these`MoltenVKPackaging.xcodeproj` *Xcode* project *Schemes* puts the resulting packages in the `Package` directory, creating it if necessary. This directory contains separate `Release` and `Debug`