#!/bin/sh # # Copyright 2010-present Facebook. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # This script builds the API documentation from source-level comments. # This script requires appledoc be installed: https://github.com/tomaz/appledoc . ${FB_SDK_SCRIPT:-$(dirname $0)}/common.sh test -x "$APPLEDOC" || die 'Could not find appledoc in $PATH - run git clone git://github.com/tomaz/appledoc.git && appledoc/install-appledoc.sh' # ----------------------------------------------------------------------------- # Build pre-requisites # if is_outermost_build; then . $FB_SDK_SCRIPT/build_framework.sh -n fi progress_message Building Documentation. # ----------------------------------------------------------------------------- # Build docs # test -d $FB_SDK_BUILD \ || mkdir -p $FB_SDK_BUILD \ || die "Could not create directory $FB_SDK_BUILD" cd $FB_SDK_SRC DOCSET="$FB_SDK_BUILD"/"$FB_SDK_DOCSET_NAME" rm -rf $DOCSET hash $APPLEDOC &>/dev/null if [ "$?" -eq "0" ]; then APPLEDOC_DOCSET_NAME="Facebook SDK 3.8 for iOS" $APPLEDOC --project-name "$APPLEDOC_DOCSET_NAME" \ --project-company "Facebook" \ --company-id "com.facebook" \ --output "$DOCSET" \ --preprocess-headerdoc \ --docset-bundle-name "$APPLEDOC_DOCSET_NAME" \ --docset-feed-name "$APPLEDOC_DOCSET_NAME" \ --exit-threshold 2 \ --no-install-docset \ --search-undocumented-doc \ --keep-undocumented-members \ --keep-undocumented-objects \ --explicit-crossref \ $FB_SDK_FRAMEWORK/Headers \ || die 'appledoc execution failed' else die "appledoc not installed, unable to build documentation" fi # Temporary workaround to an appledoc bug that drops protocol names. function replace_string() { perl -pi -e "s/$1/$2/" $3 } DOCSDIR="$DOCSET"/docset/Contents/Resources/Documents replace_string 'id<> delegate' 'id<FBFriendPickerDelegate> delegate' "$DOCSDIR"/Classes/FBFriendPickerViewController.html replace_string 'id<> delegate' 'id<FBPlacePickerDelegate> delegate' "$DOCSDIR"/Classes/FBPlacePickerViewController.html replace_string 'id<> selection' 'id<FBGraphPlace> selection' "$DOCSDIR"/Classes/FBPlacePickerViewController.html replace_string 'id<> graphObject' 'id<FBGraphObject> graphObject' "$DOCSDIR"/Classes/FBRequest.html replace_string 'id<> application' 'id<FBGraphObject> application' "$DOCSDIR"/Protocols/FBOpenGraphAction.html replace_string 'id<> from' 'id<FBGraphUser> from' "$DOCSDIR"/Protocols/FBOpenGraphAction.html replace_string 'id<> place' 'id<FBGraphPlace> place' "$DOCSDIR"/Protocols/FBOpenGraphAction.html replace_string 'id<> location' 'id<FBGraphLocation> location' "$DOCSDIR"/Protocols/FBGraphUser.html replace_string 'id<> location' 'id<FBGraphLocation> location' "$DOCSDIR"/Protocols/FBGraphPlace.html # ----------------------------------------------------------------------------- # Done # common_success