-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
133 lines (116 loc) · 2.92 KB
/
Makefile
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# Paths
FRAMEWORK_PATH=.
APP_PATH=Demo/$(APP_PROJECT_NAME)
# Commands
BUILD_COMMAND=xcodebuild
HOMEBREW_COMMAND=brew
GEM_COMMAND=sudo gem
BUNDLE_COMMAND=bundle
CARTHAGE_COMMAND=carthage
FASTLANE_COMMAND=bundle exec fastlane
FRAMEWORK_PROJECT_NAME=OperantKit
WORKSPACE_FILENAME=$(FRAMEWORK_PROJECT_NAME).xcworkspace
APP_PROJECT_NAME=OperantApp
TARGET_MACOS=macOS
TARGET_IOS=iOS
TARGET_TVOS=tvOS
TARGET_WATCHOS=watchOS
SCHEME_FRAMEWORK_MACOS=$(FRAMEWORK_PROJECT_NAME) $(TARGET_MACOS)
SCHEME_FRAMEWORK_IOS=$(FRAMEWORK_PROJECT_NAME) $(TARGET_IOS)
SCHEME_FRAMEWORK_TVOS=$(FRAMEWORK_PROJECT_NAME) $(TARGET_TVOS)
SCHEME_FRAMEWORK_WATCHOS=$(FRAMEWORK_PROJECT_NAME) $(TARGET_WATCHOS)
SCHEME_APP_IOS=$(APP_PROJECT_NAME)
# Open
open:
open $(WORKSPACE_FILENAME)
# Dependencies
deps-all:
make deps
make install
deps:
make deps-brew
make deps-bundler
deps-brew:
if ! type $(HOMEBREW_COMMAND) > /dev/null 2>&1; then /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"; fi
deps-bundler:
$(GEM_COMMAND) install bundler
# Install
install:
make install-all
install-all:
make install-gems
make install-frameworks
install-gems:
$(BUNDLE_COMMAND) install
install-frameworks:
make install-framework-all
install-framework-all:
make install-framework-carthage
install-framework-carthage:
cd $(FRAMEWORK_PATH); $(CARTHAGE_COMMAND) bootstrap --no-use-binaries
# Update
update:
make update-all
update-all:
make update-gems
make update-frameworks
update-gems:
cd $(FRAMEWORK_PATH); $(BUNDLE_COMMAND) update
update-frameworks:
make update-framework-all
update-framework-all:
make update-framework-carthage
update-framework-carthage:
cd $(FRAMEWORK_PATH); $(CARTHAGE_COMMAND) update --no-use-binaries
# Build
build-all:
make build-carthage
make build-release-frameworks
build-carthage:
carthage build --no-skip-current
build-release-frameworks:
make build-release-framework-all
build-release-framework-all:
$(BUILD_COMMAND) \
-workspace $(WORKSPACE_FILENAME) \
-configuration Release \
-verbose \
-scheme "$(SCHEME_FRAMEWORK_MACOS)"
$(BUILD_COMMAND) \
-workspace $(WORKSPACE_FILENAME) \
-configuration Release \
-verbose \
-scheme "$(SCHEME_FRAMEWORK_IOS)"
$(BUILD_COMMAND) \
-workspace $(WORKSPACE_FILENAME) \
-configuration Release \
-verbose \
-scheme "$(SCHEME_FRAMEWORK_TVOS)"
$(BUILD_COMMAND) \
-workspace $(WORKSPACE_FILENAME) \
-configuration Release \
-verbose \
-scheme "$(SCHEME_FRAMEWORK_WATCHOS)"
# Test
test:
make test-all
test-all:
make test-framework-all
make test-app-all
test-framework-all:
make test-framework-macos
make test-framework-ios
make test-framework-tvos
test-app-all:
make test-app-ios
test-framework-macos:
$(FASTLANE_COMMAND) test_framework_macos
test-framework-ios:
$(FASTLANE_COMMAND) test_framework_ios
test-framework-tvos:
$(FASTLANE_COMMAND) test_framework_tvos
test-app-ios:
$(FASTLANE_COMMAND) test_app_ios
# Clean
clean:
$(BUILD_COMMAND) clean