From 9e675c9a15b9dced29c299cb7a9cd66bfbe33ddc Mon Sep 17 00:00:00 2001 From: Etienne Samson Date: Mon, 5 Nov 2012 13:17:03 +0100 Subject: [PATCH 1/5] Use `appledoc` to build the documentation. --- .../Quicksilver.xcodeproj/project.pbxproj | 48 +++++++++++++++++ Quicksilver/Tools/build_docs.sh | 52 +++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100755 Quicksilver/Tools/build_docs.sh diff --git a/Quicksilver/Quicksilver.xcodeproj/project.pbxproj b/Quicksilver/Quicksilver.xcodeproj/project.pbxproj index 3264e98d1..f7794d1a4 100644 --- a/Quicksilver/Quicksilver.xcodeproj/project.pbxproj +++ b/Quicksilver/Quicksilver.xcodeproj/project.pbxproj @@ -7,6 +7,17 @@ objects = { /* Begin PBXAggregateTarget section */ + 4DD757111647D2A90095F55B /* Build Documentation */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 4DD757141647D2A90095F55B /* Build configuration list for PBXAggregateTarget "Build Documentation" */; + buildPhases = ( + 4DD757151647D2AF0095F55B /* ShellScript */, + ); + dependencies = ( + ); + name = "Build Documentation"; + productName = "Build Documentation"; + }; 66D11CE115022DCF002EE6E5 /* Run All Tests */ = { isa = PBXAggregateTarget; buildConfigurationList = 66D11CF015022DF5002EE6E5 /* Build configuration list for PBXAggregateTarget "Run All Tests" */; @@ -4176,6 +4187,7 @@ 66D11C8A15022B08002EE6E5 /* QSInterfaceTests */, 66D11CB315022C82002EE6E5 /* QuicksilverTests */, 66D11CE115022DCF002EE6E5 /* Run All Tests */, + 4DD757111647D2A90095F55B /* Build Documentation */, ); }; /* End PBXProject section */ @@ -4462,6 +4474,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; @@ -5972,6 +5997,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 */; @@ -6564,6 +6603,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..10a7d5df3 --- /dev/null +++ b/Quicksilver/Tools/build_docs.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# +# Install Homebrew then "brew install appledoc" +# + +PATH=$PATH:/usr/local/bin + +PWD=`basename \`dirname $0\`` + +if [ "x$SRCROOT" != "x" ]; then + # Use Xcode env var for the source root + PROJECT_ROOT=$SRCROOT +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_LOGFORMAT="html" + +# -d or --docset enables docset creation +if [ "x$1" = "x-d" -o "x$1" = "x--docset" ]; then + APPLEDOC_LOGFORMAT="xcode" + DOCSET_ARGUMENTS="--docset-feed-url \"$DOCSET_URL/%DOCSETATOMFILENAME\" --docset-package-url \"$DOCSET_URL/%DOCSETPACKAGEFILENAME\" --publish-docset --keep-intermediate-files" +else + DOCSET_ARGUMENTS="--no-create-docset" +fi + +echo "appledoc --output $OUTPUT_DIRECTORY $DOCSET_ARGUMENTS $DOCUMENTATION_SEARCH_PATHS" + +# --logformat xcode \ +appledoc \ + --exit-threshold 2 \ + --keep-undocumented-members \ + --keep-undocumented-objects \ + --print-settings \ + --project-name $PROJECT_NAME \ + --project-company $PROJECT_NAME \ + --company-id $COMPANY_ID \ + --output "$OUTPUT_DIRECTORY" \ + --logformat $APPLEDOC_LOGFORMAT \ + $DOCSET_ARGUMENTS \ +$DOCUMENTATION_SEARCH_PATHS From df70c21ea5ea7f8583089543c637b8d98b948b0c Mon Sep 17 00:00:00 2001 From: Etienne Samson Date: Tue, 24 Sep 2013 19:07:30 +0200 Subject: [PATCH 2/5] Don't try to publish the docset. Also default to --logformat 0 when running directly. --- Quicksilver/Tools/build_docs.sh | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/Quicksilver/Tools/build_docs.sh b/Quicksilver/Tools/build_docs.sh index 10a7d5df3..1eb8293d2 100755 --- a/Quicksilver/Tools/build_docs.sh +++ b/Quicksilver/Tools/build_docs.sh @@ -7,9 +7,11 @@ 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)" @@ -25,28 +27,31 @@ DOCSET_URL="http://qsapp.com/docs" OUTPUT_DIRECTORY="$PROJECT_ROOT/Docs" PROJECT_NAME="Quicksilver" COMPANY_ID="com.qsapp" -APPLEDOC_LOGFORMAT="html" + +APPLEDOC_ARGUMENTS=" --exit-threshold 2 \ + --no-warn-undocumented-object \ + --no-warn-undocumented-member \ + --keep-undocumented-members \ + --keep-undocumented-objects \ + --print-settings \ + --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 - APPLEDOC_LOGFORMAT="xcode" - DOCSET_ARGUMENTS="--docset-feed-url \"$DOCSET_URL/%DOCSETATOMFILENAME\" --docset-package-url \"$DOCSET_URL/%DOCSETPACKAGEFILENAME\" --publish-docset --keep-intermediate-files" + 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 --output $OUTPUT_DIRECTORY $DOCSET_ARGUMENTS $DOCUMENTATION_SEARCH_PATHS" +echo "appledoc $APPLEDOC_ARGUMENTS $DOCSET_ARGUMENTS $DOCUMENTATION_SEARCH_PATHS" # --logformat xcode \ appledoc \ - --exit-threshold 2 \ - --keep-undocumented-members \ - --keep-undocumented-objects \ - --print-settings \ - --project-name $PROJECT_NAME \ - --project-company $PROJECT_NAME \ - --company-id $COMPANY_ID \ - --output "$OUTPUT_DIRECTORY" \ - --logformat $APPLEDOC_LOGFORMAT \ + $APPLEDOC_ARGUMENTS \ $DOCSET_ARGUMENTS \ $DOCUMENTATION_SEARCH_PATHS From 75c8f7c6a3e57d9d75d55ea1cad0c6e3735f6c85 Mon Sep 17 00:00:00 2001 From: Etienne Samson Date: Tue, 24 Sep 2013 19:13:05 +0200 Subject: [PATCH 3/5] =?UTF-8?q?Ignore=20that=20away=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 From 7351b427908fbb25d7a54e47388dadd85e855d50 Mon Sep 17 00:00:00 2001 From: Etienne Samson Date: Wed, 27 Nov 2013 23:40:04 +0100 Subject: [PATCH 4/5] More settings. --- Quicksilver/Tools/build_docs.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Quicksilver/Tools/build_docs.sh b/Quicksilver/Tools/build_docs.sh index 1eb8293d2..5d459da26 100755 --- a/Quicksilver/Tools/build_docs.sh +++ b/Quicksilver/Tools/build_docs.sh @@ -30,10 +30,14 @@ COMPANY_ID="com.qsapp" APPLEDOC_ARGUMENTS=" --exit-threshold 2 \ --no-warn-undocumented-object \ - --no-warn-undocumented-member \ - --keep-undocumented-members \ + --warn-undocumented-member \ + --warn-empty-description \ + --warn-unknown-directive \ + --warn-invalid-crossref \ + --warn-missing-arg \ --keep-undocumented-objects \ - --print-settings \ + --print-information-block-titles \ + --use-code-order \ --project-name $PROJECT_NAME \ --project-company $PROJECT_NAME \ --company-id $COMPANY_ID \ From 91c2d1a7f6a78b4a3331129f69e9f70f40673d16 Mon Sep 17 00:00:00 2001 From: Etienne Samson Date: Wed, 27 Nov 2013 23:40:36 +0100 Subject: [PATCH 5/5] Make the Documentation target build the Distribution target. --- Quicksilver/Quicksilver.xcodeproj/project.pbxproj | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Quicksilver/Quicksilver.xcodeproj/project.pbxproj b/Quicksilver/Quicksilver.xcodeproj/project.pbxproj index f45b661cf..7c8ca140d 100644 --- a/Quicksilver/Quicksilver.xcodeproj/project.pbxproj +++ b/Quicksilver/Quicksilver.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ 4DD757151647D2AF0095F55B /* ShellScript */, ); dependencies = ( + 4DAF38491846972B00461CBF /* PBXTargetDependency */, ); name = "Build Documentation"; productName = "Build Documentation"; @@ -831,6 +832,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 */; @@ -5017,6 +5025,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 */;