Merge pull request #2436 from gnattu/autorelease-caedrmetadata
[KhronosGroup/MoltenVK.git] / Makefile
blob5fe349503e8d7db3a03cc979b4e76ee6b2590f54
1 XC_PROJ := MoltenVKPackaging.xcodeproj
2 XC_SCHEME := MoltenVK Package
4 XCODEBUILD := set -o pipefail && $(shell command -v xcodebuild)
5 # Used to determine if xcpretty is available
6 XCPRETTY_PATH := $(shell command -v xcpretty 2> /dev/null)
8 OUTPUT_FMT_CMD =
9 ifdef XCPRETTY_PATH
10 # Pipe output to xcpretty, while preserving full log as xcodebuild.log
11 OUTPUT_FMT_CMD = | tee "xcodebuild.log" | xcpretty -c
12 else
13 # Use xcodebuild -quiet parameter
14 OUTPUT_FMT_CMD = -quiet
15 endif
17 # Collect all build settings defined on the command-line (eg: MVK_HIDE_VULKAN_SYMBOLS=1, MVK_CONFIG_LOG_LEVEL=3...)
18 MAKEARGS := $(strip \
19 $(foreach v,$(.VARIABLES),\
20 $(if $(filter command\ line,$(origin $(v))),\
21 $(v)=$(value $(v)) ,)))
23 # Specify individually (not as dependencies) so the sub-targets don't run in parallel
24 # visionos and visionossim are currently excluded from `all` because they require
25 # Xcode 15+ and will abort a multi-platform build on earlier Xcode versions.
26 .PHONY: all
27 all:
28 @$(MAKE) macos
29 @$(MAKE) ios
30 @$(MAKE) iossim
31 @$(MAKE) maccat
32 @$(MAKE) tvos
33 @$(MAKE) tvossim
34 # @$(MAKE) visionos # Requires Xcode 15+
35 # @$(MAKE) visionossim # Requires Xcode 15+
37 .PHONY: all-debug
38 all-debug:
39 @$(MAKE) macos-debug
40 @$(MAKE) ios-debug
41 @$(MAKE) iossim-debug
42 @$(MAKE) maccat-debug
43 @$(MAKE) tvos-debug
44 @$(MAKE) tvossim-debug
45 # @$(MAKE) visionos-debug # Requires Xcode 15+
46 # @$(MAKE) visionossim-debug # Requires Xcode 15+
48 .PHONY: macos
49 macos:
50 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
52 .PHONY: macos-debug
53 macos-debug:
54 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
56 .PHONY: ios
57 ios:
58 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
60 .PHONY: ios-debug
61 ios-debug:
62 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
64 .PHONY: iossim
65 iossim:
66 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS Simulator" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
68 .PHONY: iossim-debug
69 iossim-debug:
70 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS Simulator" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
72 .PHONY: maccat
73 maccat:
74 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (MacCat only)" -destination "generic/platform=macOS,variant=Mac Catalyst" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
76 .PHONY: maccat-debug
77 maccat-debug:
78 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (MacCat only)" -destination "generic/platform=macOS,variant=Mac Catalyst" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
80 .PHONY: tvos
81 tvos:
82 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
84 .PHONY: tvos-debug
85 tvos-debug:
86 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
88 .PHONY: tvossim
89 tvossim:
90 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS Simulator" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
92 .PHONY: tvossim-debug
93 tvossim-debug:
94 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS Simulator" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
96 .PHONY: visionos
97 visionos:
98 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (visionOS only)" -destination "generic/platform=xrOS" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
100 .PHONY: visionos-debug
101 visionos-debug:
102 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (visionOS only)" -destination "generic/platform=xrOS" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
104 .PHONY: visionossim
105 visionossim:
106 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (visionOS only)" -destination "generic/platform=xrOS Simulator" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
108 .PHONY: visionossim-debug
109 visionossim-debug:
110 $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (visionOS only)" -destination "generic/platform=xrOS Simulator" -configuration "Debug" GCC_PREPROCESSOR_DEFINITIONS='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD)
112 .PHONY: clean
113 clean:
114 $(XCODEBUILD) clean -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" $(OUTPUT_FMT_CMD)
115 rm -rf Package
117 # Usually requires 'sudo make install'
118 .PHONY: install
119 install:
120 $ rm -f /usr/local/lib/libMoltenVK.dylib
121 $ cp -p Package/Latest/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib /usr/local/lib