diff --git a/.gitignore b/.gitignore index 30b56f91c..cfdfd83cb 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,5 @@ Quicksilver*.dmg *.pyc Quicksilver/SharedSupport/Changes*.html Quicksilver/Code-External/VDKQueue -Quicksilver/Code-External/DisableSubviews \ No newline at end of file +Quicksilver/Code-External/DisableSubviews +Quicksilver/Docs \ No newline at end of file diff --git a/Quicksilver/Quicksilver.xcodeproj/project.pbxproj b/Quicksilver/Quicksilver.xcodeproj/project.pbxproj index cf4452785..a6baad915 100644 --- a/Quicksilver/Quicksilver.xcodeproj/project.pbxproj +++ b/Quicksilver/Quicksilver.xcodeproj/project.pbxproj @@ -7,6 +7,18 @@ objects = { /* Begin PBXAggregateTarget section */ + 4DD757111647D2A90095F55B /* Build Documentation */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 4DD757141647D2A90095F55B /* Build configuration list for PBXAggregateTarget "Build Documentation" */; + buildPhases = ( + 4DD757151647D2AF0095F55B /* ShellScript */, + ); + dependencies = ( + 4DAF38491846972B00461CBF /* PBXTargetDependency */, + ); + name = "Build Documentation"; + productName = "Build Documentation"; + }; 66D11CE115022DCF002EE6E5 /* Run All Tests */ = { isa = PBXAggregateTarget; buildConfigurationList = 66D11CF015022DF5002EE6E5 /* Build configuration list for PBXAggregateTarget "Run All Tests" */; @@ -823,6 +835,13 @@ remoteGlobalIDString = 8D1107260486CEB800E47090; remoteInfo = Quicksilver; }; + 4DAF38481846972B00461CBF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7F039992080EE210001A9FA3; + remoteInfo = "Quicksilver Distribution"; + }; 66448D9B14F42796000FA2E2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -4134,6 +4153,7 @@ 66D11C8A15022B08002EE6E5 /* QSInterfaceTests */, 66D11CB315022C82002EE6E5 /* QuicksilverTests */, 66D11CE115022DCF002EE6E5 /* Run All Tests */, + 4DD757111647D2A90095F55B /* Build Documentation */, ); }; /* End PBXProject section */ @@ -4418,6 +4438,19 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 4DD757151647D2AF0095F55B /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "$SRCROOT/Tools/build_docs.sh -d"; + }; 66448D9414F42790000FA2E2 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -4987,6 +5020,11 @@ target = 8D1107260486CEB800E47090 /* Quicksilver */; targetProxy = 4DAAEB9E0E0BBF720088C72D /* PBXContainerItemProxy */; }; + 4DAF38491846972B00461CBF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 7F039992080EE210001A9FA3 /* Quicksilver Distribution */; + targetProxy = 4DAF38481846972B00461CBF /* PBXContainerItemProxy */; + }; 66448D9C14F42796000FA2E2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = E1E5F97107B1FCFC0044D6EF /* QuickStep Foundation */; @@ -5853,6 +5891,20 @@ }; name = Release; }; + 4DD757121647D2A90095F55B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 4DD757131647D2A90095F55B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; 66448D9814F42791000FA2E2 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 4DC3DD0D0E0BB27B009902EF /* Debug.xcconfig */; @@ -6424,6 +6476,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 4DD757141647D2A90095F55B /* Build configuration list for PBXAggregateTarget "Build Documentation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4DD757121647D2A90095F55B /* Debug */, + 4DD757131647D2A90095F55B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; 66448D9A14F42791000FA2E2 /* Build configuration list for PBXNativeTarget "QSFoundationTests" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Quicksilver/Tools/build_docs.sh b/Quicksilver/Tools/build_docs.sh new file mode 100755 index 000000000..5d459da26 --- /dev/null +++ b/Quicksilver/Tools/build_docs.sh @@ -0,0 +1,61 @@ +#!/bin/sh +# +# Install Homebrew then "brew install appledoc" +# + +PATH=$PATH:/usr/local/bin + +PWD=`basename \`dirname $0\`` + +APPLEDOC_LOGFORMAT="0" +if [ "x$SRCROOT" != "x" ]; then + # Use Xcode env var for the source root + PROJECT_ROOT=$SRCROOT + APPLEDOC_LOGFORMAT="xcode" +elif [ "x$PWD" != "x." ]; then + # Running from source root + PROJECT_ROOT="$(pwd)" +else + # Running from ./Tools + PROJECT_ROOT="$(pwd)/.." +fi + +# cd $PROJECT_ROOT + +DOCUMENTATION_SEARCH_PATHS="$PROJECT_ROOT/Code-QuickStep* $PROJECT_ROOT/Code-App" +DOCSET_URL="http://qsapp.com/docs" +OUTPUT_DIRECTORY="$PROJECT_ROOT/Docs" +PROJECT_NAME="Quicksilver" +COMPANY_ID="com.qsapp" + +APPLEDOC_ARGUMENTS=" --exit-threshold 2 \ + --no-warn-undocumented-object \ + --warn-undocumented-member \ + --warn-empty-description \ + --warn-unknown-directive \ + --warn-invalid-crossref \ + --warn-missing-arg \ + --keep-undocumented-objects \ + --print-information-block-titles \ + --use-code-order \ + --project-name $PROJECT_NAME \ + --project-company $PROJECT_NAME \ + --company-id $COMPANY_ID \ + --output "$OUTPUT_DIRECTORY" \ + --logformat $APPLEDOC_LOGFORMAT \ +" + +# -d or --docset enables docset creation +if [ "x$1" = "x-d" -o "x$1" = "x--docset" ]; then + DOCSET_ARGUMENTS="--docset-feed-url \"$DOCSET_URL/%DOCSETATOMFILENAME\" --docset-package-url \"$DOCSET_URL/%DOCSETPACKAGEFILENAME\" --create-docset --keep-intermediate-files" +else + DOCSET_ARGUMENTS="--no-create-docset" +fi + +echo "appledoc $APPLEDOC_ARGUMENTS $DOCSET_ARGUMENTS $DOCUMENTATION_SEARCH_PATHS" + +# --logformat xcode \ +appledoc \ + $APPLEDOC_ARGUMENTS \ + $DOCSET_ARGUMENTS \ +$DOCUMENTATION_SEARCH_PATHS