Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
62 lines (51 loc) · 2.08 KB
/
Copy pathMakefile
File metadata and controls
62 lines (51 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
PLUGIN_NAME = ZoomVDIHelper
PLUGIN_BUNDLE = $(PLUGIN_NAME).bundle
BUILD_DIR = build
SWIFT_SRC = zoom_vdi_plugin.swift
BUNDLE_CONTENTS = $(BUILD_DIR)/$(PLUGIN_BUNDLE)/Contents
BUNDLE_MACOS = $(BUNDLE_CONTENTS)/MacOS
PLUGIN_BINARY = $(BUNDLE_MACOS)/ZoomVDIPlugin
SWIFTC = xcrun swiftc
SWIFT_FLAGS = -O -whole-module-optimization -target x86_64-apple-macos11.0 -sdk $(shell xcrun --show-sdk-path)
FRAMEWORKS = -framework Foundation -framework AVFoundation -framework CoreAudio -framework IOKit -framework Network -framework VideoToolbox
.PHONY: all clean install uninstall help
all: $(PLUGIN_BUNDLE)
$(PLUGIN_BUNDLE): $(PLUGIN_BINARY) $(BUNDLE_CONTENTS)/Info.plist
@echo "Plugin bundle created"
$(PLUGIN_BINARY): $(SWIFT_SRC) | $(BUNDLE_MACOS)
@echo "Compiling Swift plugin..."
$(SWIFTC) $(SWIFT_FLAGS) $(FRAMEWORKS) -emit-library -o $@ $<
@chmod +x $@
$(BUNDLE_CONTENTS)/Info.plist: | $(BUNDLE_CONTENTS)
@echo "Creating Info.plist..."
@echo '<?xml version="1.0" encoding="UTF-8"?>' > $@
@echo '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >> $@
@echo '<plist version="1.0">' >> $@
@echo '<dict>' >> $@
@echo ' <key>CFBundleExecutable</key>' >> $@
@echo ' <string>ZoomVDIPlugin</string>' >> $@
@echo ' <key>CFBundleIdentifier</key>' >> $@
@echo ' <string>com.yourcompany.zoom.vdi.helper</string>' >> $@
@echo ' <key>CFBundleName</key>' >> $@
@echo ' <string>$(PLUGIN_NAME)</string>' >> $@
@echo ' <key>CFBundlePackageType</key>' >> $@
@echo ' <string>BNDL</string>' >> $@
@echo ' <key>CFBundleVersion</key>' >> $@
@echo ' <string>1.0.0</string>' >> $@
@echo ' <key>NSPrincipalClass</key>' >> $@
@echo ' <string>ZoomVDIPluginLoader</string>' >> $@
@echo ' <key>ZoomPluginType</key>' >> $@
@echo ' <string>VDI</string>' >> $@
@echo '</dict>' >> $@
@echo '</plist>' >> $@
$(BUNDLE_CONTENTS):
@mkdir -p $(BUNDLE_CONTENTS)
$(BUNDLE_MACOS): $(BUNDLE_CONTENTS)
@mkdir -p $(BUNDLE_MACOS)
$(BUILD_DIR):
@mkdir -p $(BUILD_DIR)
clean:
@rm -rf $(BUILD_DIR)
help:
@echo "Available targets: all, clean, help"
$(BUNDLE_CONTENTS): | $(BUILD_DIR)