|
1 |
| -BUILD_TOOL = xcodebuild |
| 1 | +XCODEBUILD = xcodebuild |
2 | 2 | BUILD_SCHEME = SQLite Mac
|
3 |
| -IOS_SIMULATOR = iPhone 12 |
4 |
| -IOS_VERSION = 15.0 |
| 3 | +IOS_SIMULATOR = iPhone 14 |
| 4 | +IOS_VERSION = 16.4 |
| 5 | + |
| 6 | +# tool settings |
| 7 | +SWIFTLINT_VERSION=0.52.2 |
| 8 | +SWIFTLINT=bin/swiftlint-$(SWIFTLINT_VERSION) |
| 9 | +SWIFTLINT_URL=https://github.com/realm/SwiftLint/releases/download/$(SWIFTLINT_VERSION)/portable_swiftlint.zip |
| 10 | +XCBEAUTIFY_VERSION=0.20.0 |
| 11 | +XCBEAUTIFY=bin/xcbeautify-$(XCBEAUTIFY_VERSION) |
| 12 | +ifeq ($(shell uname), Linux) |
| 13 | + XCBEAUTIFY_PLATFORM=x86_64-unknown-linux-gnu.tar.xz |
| 14 | +else |
| 15 | + XCBEAUTIFY_PLATFORM=universal-apple-macosx.zip |
| 16 | +endif |
| 17 | +XCBEAUTIFY_URL=https://github.com/tuist/xcbeautify/releases/download/$(XCBEAUTIFY_VERSION)/xcbeautify-$(XCBEAUTIFY_VERSION)-$(XCBEAUTIFY_PLATFORM) |
| 18 | +CURL_OPTS=--fail --silent -L --retry 3 |
| 19 | + |
5 | 20 | ifeq ($(BUILD_SCHEME),SQLite iOS)
|
6 | 21 | BUILD_ARGUMENTS = -scheme "$(BUILD_SCHEME)" -destination "platform=iOS Simulator,name=$(IOS_SIMULATOR),OS=$(IOS_VERSION)"
|
7 | 22 | else
|
8 | 23 | BUILD_ARGUMENTS = -scheme "$(BUILD_SCHEME)"
|
9 | 24 | endif
|
10 | 25 |
|
11 |
| -XCPRETTY := $(shell command -v xcpretty) |
12 |
| -TEST_ACTIONS := clean build build-for-testing test-without-building |
| 26 | +test: $(XCBEAUTIFY) |
| 27 | + set -o pipefail; \ |
| 28 | + $(XCODEBUILD) $(BUILD_ARGUMENTS) test | $(XCBEAUTIFY) |
13 | 29 |
|
14 |
| -default: test |
| 30 | +build: $(XCBEAUTIFY) |
| 31 | + set -o pipefail; \ |
| 32 | + $(XCODEBUILD) $(BUILD_ARGUMENTS) | $(XCBEAUTIFY) |
15 | 33 |
|
16 |
| -build: |
17 |
| - $(BUILD_TOOL) $(BUILD_ARGUMENTS) |
| 34 | +lint: $(SWIFTLINT) |
| 35 | + $< --strict |
18 | 36 |
|
19 |
| -lint: |
20 |
| - swiftlint --strict |
21 |
| -lint-fix: |
22 |
| - swiftlint lint fix |
23 |
| - |
24 |
| -test: |
25 |
| -ifdef XCPRETTY |
26 |
| - @set -o pipefail && $(BUILD_TOOL) $(BUILD_ARGUMENTS) $(TEST_ACTIONS) | $(XCPRETTY) -c |
27 |
| -else |
28 |
| - $(BUILD_TOOL) $(BUILD_ARGUMENTS) $(TEST_ACTIONS) |
29 |
| -endif |
| 37 | +lint-fix: $(SWIFTLINT) |
| 38 | + $< lint fix |
30 | 39 |
|
31 | 40 | clean:
|
32 |
| - $(BUILD_TOOL) $(BUILD_ARGUMENTS) clean |
| 41 | + $(XCODEBUILD) $(BUILD_ARGUMENTS) clean |
33 | 42 |
|
34 | 43 | repl:
|
35 |
| - @$(BUILD_TOOL) $(BUILD_ARGUMENTS) -derivedDataPath $(TMPDIR)/SQLite.swift > /dev/null && \ |
36 |
| - swift -F '$(TMPDIR)/SQLite.swift/Build/Products/Debug' |
| 44 | + @$(XCODEBUILD) $(BUILD_ARGUMENTS) -derivedDataPath $(TMPDIR)/SQLite.swift > /dev/null && \ |
| 45 | + swift repl -F '$(TMPDIR)/SQLite.swift/Build/Products/Debug' |
37 | 46 |
|
38 | 47 | sloc:
|
39 |
| - @zsh -c "grep -vE '^ *//|^$$' Sources/**/*.{swift,h,m} | wc -l" |
| 48 | + @zsh -c "grep -vE '^ *//|^$$' Sources/**/*.{swift,h} | wc -l" |
| 49 | + |
| 50 | +$(SWIFTLINT): |
| 51 | + set -e ; \ |
| 52 | + curl $(CURL_OPTS) $(SWIFTLINT_URL) -o swiftlint.zip; \ |
| 53 | + unzip -o swiftlint.zip swiftlint; \ |
| 54 | + mkdir -p bin; \ |
| 55 | + mv swiftlint $@ && rm -f swiftlint.zip |
| 56 | + |
| 57 | +$(XCBEAUTIFY): |
| 58 | + set -e; \ |
| 59 | + FILE=$(XCBEAUTIFY_PLATFORM); \ |
| 60 | + curl $(CURL_OPTS) $(XCBEAUTIFY_URL) -o $$FILE; \ |
| 61 | + case "$${FILE#*.}" in \ |
| 62 | + "zip") \ |
| 63 | + unzip -o $$FILE xcbeautify; \ |
| 64 | + ;; \ |
| 65 | + "tar.xz") \ |
| 66 | + tar -xvf $$FILE xcbeautify; \ |
| 67 | + ;; \ |
| 68 | + *) \ |
| 69 | + echo "unknown extension $${FILE#*.}!"; \ |
| 70 | + exit 1; \ |
| 71 | + ;; \ |
| 72 | + esac; \ |
| 73 | + mkdir -p bin; \ |
| 74 | + mv xcbeautify $@ && rm -f $$FILE; |
40 | 75 |
|
41 | 76 | .PHONY: test clean repl sloc
|
0 commit comments