forked from flutter/engine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gen_objcdoc.sh
executable file
·71 lines (63 loc) · 2.13 KB
/
gen_objcdoc.sh
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
#!/usr/bin/env bash
# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Generates objc docs for Flutter iOS libraries.
FLUTTER_UMBRELLA_HEADER=$(find ../out -maxdepth 4 -type f -name Flutter.h | grep 'ios_' | head -n 1)
if [[ ! -f "$FLUTTER_UMBRELLA_HEADER" ]]
then
echo "Error: This script must be run at the root of the Flutter source tree with at least one built Flutter.framework in ../out/ios*/Flutter.framework."
exit 1
fi
if [[ $# -eq 0 ]]
then
echo "Error: Argument specifying output directory required."
exit 1
fi
# If GEM_HOME is set, prefer using its copy of jazzy.
# LUCI will put jazzy here instead of on the path.
if [[ -n "${GEM_HOME}" ]]
then
PATH="${GEM_HOME}/bin:$PATH"
fi
# Use iPhoneSimulator SDK
# See: https://github.com/realm/jazzy/issues/791
jazzy \
--objc\
--sdk iphonesimulator\
--clean\
--author Flutter Team\
--author_url 'https://flutter.io'\
--github_url 'https://github.com/flutter'\
--github-file-prefix 'http://github.com/flutter/engine/blob/master'\
--module-version 1.0.0\
--xcodebuild-arguments --objc,"$FLUTTER_UMBRELLA_HEADER",--,-x,objective-c,-isysroot,"$(xcrun --show-sdk-path --sdk iphonesimulator)",-I,"$(pwd)"\
--module Flutter\
--root-url https://docs.flutter.io/objc/\
--output "$1"
EXPECTED_CLASSES="FlutterAppDelegate.html
FlutterBasicMessageChannel.html
FlutterCallbackCache.html
FlutterCallbackInformation.html
FlutterDartProject.html
FlutterEngine.html
FlutterError.html
FlutterEventChannel.html
FlutterHeadlessDartRunner.html
FlutterMethodCall.html
FlutterMethodChannel.html
FlutterPluginAppLifeCycleDelegate.html
FlutterStandardMessageCodec.html
FlutterStandardMethodCodec.html
FlutterStandardReader.html
FlutterStandardReaderWriter.html
FlutterStandardTypedData.html
FlutterStandardWriter.html
FlutterViewController.html"
ACTUAL_CLASSES=$(ls "$1/Classes" | sort)
if [[ $EXPECTED_CLASSES != $ACTUAL_CLASSES ]]; then
echo "Expected classes did not match actual classes"
echo
diff <(echo "$EXPECTED_CLASSES") <(echo "$ACTUAL_CLASSES")
exit -1
fi