2017-06-21 09:51:47 +02:00
#!/usr/bin/env bash
2018-11-07 12:24:35 -08:00
# Copyright 2013 The Flutter Authors. All rights reserved.
2017-06-21 09:51:47 +02:00
# 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.
2019-07-10 23:06:40 -07:00
FLUTTER_UMBRELLA_HEADER = $( find ../out -maxdepth 4 -type f -name Flutter.h | grep 'ios_' | head -n 1)
if [[ ! -f " $FLUTTER_UMBRELLA_HEADER " ]]
2017-06-21 09:51:47 +02:00
then
2019-07-10 23:06:40 -07:00
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."
2017-06-21 09:51:47 +02:00
exit 1
fi
2019-01-29 13:01:35 -08:00
if [[ $# -eq 0 ]]
2017-06-21 09:51:47 +02:00
then
echo "Error: Argument specifying output directory required."
exit 1
fi
2019-01-29 13:01:35 -08:00
# 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
2017-10-18 13:23:13 -07:00
# Use iPhoneSimulator SDK
# See: https://github.com/realm/jazzy/issues/791
2017-06-21 09:51:47 +02:00
jazzy \
--objc\
2017-10-18 13:23:13 -07:00
--sdk iphonesimulator\
2017-06-21 09:51:47 +02:00
--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\
2019-07-10 23:06:40 -07:00
--xcodebuild-arguments --objc," $FLUTTER_UMBRELLA_HEADER " ,--,-x,objective-c,-isysroot," $( xcrun --show-sdk-path --sdk iphonesimulator) " ,-I," $( pwd ) " \
2017-06-21 09:51:47 +02:00
--module Flutter\
--root-url https://docs.flutter.io/objc/\
2019-03-02 10:01:15 -08:00
--output " $1 "
2019-07-10 23:06:40 -07:00
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