-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
107 lines (90 loc) · 4.2 KB
/
Makefile
File metadata and controls
107 lines (90 loc) · 4.2 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
SHELL := /bin/bash
PRESET ?= default
BUILD_DIR ?= build
OBS_INCLUDE_DIR ?=
OBS_LIBRARY ?=
OBS_SOURCE_DIR ?=
SIMDE_INCLUDE_DIR ?=
.PHONY: help setup find-obs-dev-paths configure build test coverage install run check-plugin-log dev clean reconfigure release test-pkg
help:
@echo "streamn-obs-scoreboard development targets"
@echo ""
@echo "Usage:"
@echo " make <target> [PRESET=default|debug|ninja|coverage] [OBS_INCLUDE_DIR=...] [OBS_LIBRARY=...] [OBS_SOURCE_DIR=...] [SIMDE_INCLUDE_DIR=...]"
@echo ""
@echo "Targets:"
@echo " setup Install local prerequisites"
@echo " find-obs-dev-paths Search for OBS headers/libs and print configure guidance"
@echo " configure Configure CMake (passes OBS_INCLUDE_DIR/OBS_LIBRARY if set)"
@echo " build Build plugin"
@echo " test Run tests"
@echo " coverage Run coverage preset and enforce 100% line coverage for scoreboard core"
@echo " install Install plugin artifact to OBS user plugin folder"
@echo " run Launch OBS with verbose logging"
@echo " check-plugin-log Check latest OBS log for scoreboard plugin load lines"
@echo " dev configure + build + test"
@echo " release Build macOS .pkg installer"
@echo " test-pkg Build .pkg, install it, and verify plugin loads"
@echo " clean Remove build directory"
@echo " reconfigure clean + configure"
setup:
./scripts/dev-setup-macos.sh
find-obs-dev-paths:
./scripts/find-obs-dev-paths.sh
configure:
@if [[ -n "$(OBS_INCLUDE_DIR)" && -n "$(OBS_LIBRARY)" ]]; then \
if [[ -n "$(SIMDE_INCLUDE_DIR)" && -n "$(OBS_SOURCE_DIR)" ]]; then \
./scripts/configure.sh "$(PRESET)" -DOBS_INCLUDE_DIR="$(OBS_INCLUDE_DIR)" -DOBS_LIBRARY="$(OBS_LIBRARY)" -DOBS_SOURCE_DIR="$(OBS_SOURCE_DIR)" -DSIMDE_INCLUDE_DIR="$(SIMDE_INCLUDE_DIR)"; \
elif [[ -n "$(SIMDE_INCLUDE_DIR)" ]]; then \
./scripts/configure.sh "$(PRESET)" -DOBS_INCLUDE_DIR="$(OBS_INCLUDE_DIR)" -DOBS_LIBRARY="$(OBS_LIBRARY)" -DSIMDE_INCLUDE_DIR="$(SIMDE_INCLUDE_DIR)"; \
elif [[ -n "$(OBS_SOURCE_DIR)" ]]; then \
./scripts/configure.sh "$(PRESET)" -DOBS_INCLUDE_DIR="$(OBS_INCLUDE_DIR)" -DOBS_LIBRARY="$(OBS_LIBRARY)" -DOBS_SOURCE_DIR="$(OBS_SOURCE_DIR)"; \
else \
./scripts/configure.sh "$(PRESET)" -DOBS_INCLUDE_DIR="$(OBS_INCLUDE_DIR)" -DOBS_LIBRARY="$(OBS_LIBRARY)"; \
fi; \
else \
./scripts/configure.sh "$(PRESET)"; \
fi
build:
./scripts/build.sh "$(PRESET)"
test:
./scripts/test.sh "$(PRESET)"
coverage:
@if [[ -n "$(OBS_INCLUDE_DIR)" && -n "$(OBS_LIBRARY)" ]]; then \
if [[ -n "$(SIMDE_INCLUDE_DIR)" && -n "$(OBS_SOURCE_DIR)" ]]; then \
./scripts/configure.sh coverage -DOBS_INCLUDE_DIR="$(OBS_INCLUDE_DIR)" -DOBS_LIBRARY="$(OBS_LIBRARY)" -DOBS_SOURCE_DIR="$(OBS_SOURCE_DIR)" -DSIMDE_INCLUDE_DIR="$(SIMDE_INCLUDE_DIR)"; \
elif [[ -n "$(SIMDE_INCLUDE_DIR)" ]]; then \
./scripts/configure.sh coverage -DOBS_INCLUDE_DIR="$(OBS_INCLUDE_DIR)" -DOBS_LIBRARY="$(OBS_LIBRARY)" -DSIMDE_INCLUDE_DIR="$(SIMDE_INCLUDE_DIR)"; \
elif [[ -n "$(OBS_SOURCE_DIR)" ]]; then \
./scripts/configure.sh coverage -DOBS_INCLUDE_DIR="$(OBS_INCLUDE_DIR)" -DOBS_LIBRARY="$(OBS_LIBRARY)" -DOBS_SOURCE_DIR="$(OBS_SOURCE_DIR)"; \
else \
./scripts/configure.sh coverage -DOBS_INCLUDE_DIR="$(OBS_INCLUDE_DIR)" -DOBS_LIBRARY="$(OBS_LIBRARY)"; \
fi; \
else \
./scripts/configure.sh coverage; \
fi
./scripts/build.sh coverage
./scripts/test.sh coverage
./scripts/coverage.sh build-coverage
install:
./scripts/install-dev-plugin.sh "$(BUILD_DIR)"
run:
./scripts/run-obs.sh
check-plugin-log:
./scripts/check-plugin-log.sh
dev: configure build test
release:
./scripts/package-macos.sh
test-pkg: release
@echo "Installing .pkg (requires admin password)..."
@PKG=$$(ls -t streamn-obs-scoreboard-*-macos.pkg 2>/dev/null | head -1); \
if [ -z "$$PKG" ]; then echo "Error: no .pkg found"; exit 1; fi; \
sudo installer -pkg "$$PKG" -target / && \
echo "" && \
echo "Installed. Verifying..." && \
ls -la ~/Library/Application\ Support/obs-studio/plugins/streamn-obs-scoreboard.plugin/Contents/MacOS/ && \
echo "" && \
echo "Success — restart OBS to test."
clean:
rm -rf "$(BUILD_DIR)"
reconfigure: clean configure