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
)
10 # Pipe output to xcpretty, while preserving full log as xcodebuild.log
11 OUTPUT_FMT_CMD
= | tee
"xcodebuild.log" | xcpretty
-c
13 # Use xcodebuild -quiet parameter
14 OUTPUT_FMT_CMD
= -quiet
17 # Collect all build settings defined on the command-line (eg: MVK_HIDE_VULKAN_SYMBOLS=1, MVK_CONFIG_LOG_LEVEL=3...)
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.
34 # @$(MAKE) visionos # Requires Xcode 15+
35 # @$(MAKE) visionossim # Requires Xcode 15+
44 @
$(MAKE
) tvossim-debug
45 # @$(MAKE) visionos-debug # Requires Xcode 15+
46 # @$(MAKE) visionossim-debug # Requires Xcode 15+
50 $(XCODEBUILD
) build
-project
"$(XC_PROJ)" -scheme
"$(XC_SCHEME) (macOS only)" -destination
"generic/platform=macOS" GCC_PREPROCESSOR_DEFINITIONS
='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD
)
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
)
58 $(XCODEBUILD
) build
-project
"$(XC_PROJ)" -scheme
"$(XC_SCHEME) (iOS only)" -destination
"generic/platform=iOS" GCC_PREPROCESSOR_DEFINITIONS
='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD
)
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
)
66 $(XCODEBUILD
) build
-project
"$(XC_PROJ)" -scheme
"$(XC_SCHEME) (iOS only)" -destination
"generic/platform=iOS Simulator" GCC_PREPROCESSOR_DEFINITIONS
='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD
)
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
)
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
)
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
)
82 $(XCODEBUILD
) build
-project
"$(XC_PROJ)" -scheme
"$(XC_SCHEME) (tvOS only)" -destination
"generic/platform=tvOS" GCC_PREPROCESSOR_DEFINITIONS
='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD
)
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
)
90 $(XCODEBUILD
) build
-project
"$(XC_PROJ)" -scheme
"$(XC_SCHEME) (tvOS only)" -destination
"generic/platform=tvOS Simulator" GCC_PREPROCESSOR_DEFINITIONS
='$${inherited} $(MAKEARGS)' $(OUTPUT_FMT_CMD
)
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
)
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
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
)
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
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
)
114 $(XCODEBUILD
) clean -project
"$(XC_PROJ)" -scheme
"$(XC_SCHEME) (macOS only)" -destination
"generic/platform=macOS" $(OUTPUT_FMT_CMD
)
117 # Usually requires 'sudo make install'
120 $ rm -f
/usr
/local
/lib
/libMoltenVK.dylib
121 $ cp
-p Package
/Latest
/MoltenVK
/dynamic
/dylib
/macOS
/libMoltenVK.dylib
/usr
/local
/lib