-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
88 lines (70 loc) · 2.71 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
# swift version used in realm framework dir
SWIFT_VERSION := 3.1
REALM_VERSION := 2.8.0
XCODE_PROJ_DIR := $(shell pwd)/SnapScan/SnapScan
XC_FRAMEWORKS_DIR := $(XCODE_PROJ_DIR)/Frameworks
VENDOR_DIR := $(shell pwd)/vendor
REALM_ZIP_NAME := realm-swift-$(REALM_VERSION).zip
REALM_DOWNLOAD_URL := https://static.realm.io/downloads/swift/$(REALM_ZIP_NAME)
vendored_realm := $(VENDOR_DIR)/realm-swift-$(REALM_VERSION)
.PHONY: all
all: submodulestatus realm_frameworks tess_training_data
$(MAKE) -C vendor
.PHONY : submodulestatus
submodulestatus :
gitdescribe='basename `git rev-parse --show-toplevel` | tr "\n" "@"; \
git rev-parse --abbrev-ref HEAD | tr "\n" "@"; \
git rev-parse --short HEAD' \
$(info ======= Submodule status: =======)
@git submodule foreach --quiet $(gitdescribe) | column -t -s"@"; echo
########################
# Realm.io dependencies
########################
# Copy downloaded frameworks to Xcode project
.PHONY : realm_frameworks
realm_frameworks : $(XC_FRAMEWORKS_DIR)/Realm $(XC_FRAMEWORKS_DIR)/RealmSwift
$(XC_FRAMEWORKS_DIR)/Realm : $(vendored_realm)
cp -R $(vendored_realm)/ios/swift-$(SWIFT_VERSION)/Realm.framework $(XC_FRAMEWORKS_DIR)
$(XC_FRAMEWORKS_DIR)/RealmSwift : $(vendored_realm)
cp -R $(vendored_realm)/ios/swift-$(SWIFT_VERSION)/RealmSwift.framework $(XC_FRAMEWORKS_DIR)
# Download pre-built realm frameworks
$(vendored_realm) :
cd $(VENDOR_DIR); \
(curl $(REALM_DOWNLOAD_URL) > $(REALM_ZIP_NAME)) && \
unzip $(REALM_ZIP_NAME) && \
rm $(REALM_ZIP_NAME) && \
########################
# OCR training data
########################
OUTPUT_DATA_DIR := $(XCODE_PROJ_DIR)/tessdata
TESS_LANGUAGES := eng
SOURCE_DATA := $(foreach lang, $(TESS_LANGUAGES), $(addprefix $(VENDOR_DIR)/tessdata, /$(lang).*) )
tess_font := $(OUTPUT_DATA_DIR)/pdf.ttf
.PHONY : tess_training_data
tess_training_data: $(OUTPUT_DATA_DIR) $(tess_font)
cp $(SOURCE_DATA) $(OUTPUT_DATA_DIR)
$(tess_font) : $(OUTPUT_DATA_DIR)
cp $(VENDOR_DIR)/tesseract-ocr/tessdata/pdf.ttf $(OUTPUT_DATA_DIR)
$(OUTPUT_DATA_DIR) :
test -d $(OUTPUT_DATA_DIR) || mkdir $(OUTPUT_DATA_DIR)
########################
# Test
########################
# Note only simulator supported
TEST_SDK = 10.3
SIM_DEVICE = iPhone 6s
XCBUILD := $(shell which xcodebuild)
SCHEME = SnapScan
.PHONY : test
test : test_preflight test_build
.PHONY : test_preflight
test_preflight:
ifndef XCBUILD
$(error "xcodebuild not found")
endif
.PHONY : test_build
test_build:
xcodebuild -scheme $(SCHEME) build-for-testing
.PHONY : test_run
test_run:
xcodebuild -scheme $(SCHEME) -sdk iphonesimulator$(TEST_SDK) -destination 'platform=iOS Simulator,name=$(SIM_DEVICE),OS=$(TEST_SDK)' test