[ObjC] use xcpretty if installed to reduce output Include option to skip it if it was installed. https://github.com/tuist/xcbeautify would also be an option (it supports bazel to), but we'd have to install it. PiperOrigin-RevId: 507852912
diff --git a/objectivec/DevTools/full_mac_build.sh b/objectivec/DevTools/full_mac_build.sh index 89c80f7..d091a95 100755 --- a/objectivec/DevTools/full_mac_build.sh +++ b/objectivec/DevTools/full_mac_build.sh
@@ -49,6 +49,9 @@ Skip the invoke of Xcode to test the runtime on tvOS. --skip-objc-conformance Skip the Objective C conformance tests (run on OS X). + --skip-xcpretty + By default, if xcpretty is installed, it will be used, this option will + skip it even it it is installed. --xcode-quiet Pass -quiet to xcodebuild. @@ -62,6 +65,16 @@ echo "========================================================================" } +xcodebuild_xcpretty() { + set -o pipefail && xcodebuild "${@}" | xcpretty +} + +if hash xcpretty >/dev/null 2>&1 ; then + XCODEBUILD=xcodebuild_xcpretty +else + XCODEBUILD=xcodebuild +fi + DO_CLEAN=no REGEN_DESCRIPTORS=no FULL_BUILD=no @@ -110,6 +123,9 @@ --skip-objc-conformance ) DO_OBJC_CONFORMANCE_TESTS=no ;; + --skip-xcpretty ) + XCODEBUILD=xcodebuild + ;; --xcode-quiet ) XCODE_QUIET=yes ;; @@ -210,7 +226,7 @@ if [[ "${DO_XCODE_IOS_TESTS}" == "yes" ]] ; then XCODEBUILD_TEST_BASE_IOS=( - xcodebuild + "${XCODEBUILD}" -project objectivec/ProtocolBuffers_iOS.xcodeproj -scheme ProtocolBuffers ) @@ -241,18 +257,18 @@ esac if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then header "Doing Xcode iOS build/tests - Debug" - time "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Debug test + "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Debug test fi if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then header "Doing Xcode iOS build/tests - Release" - time "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Release test + "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Release test fi # Don't leave the simulator in the developer's face. killall Simulator 2> /dev/null || true fi if [[ "${DO_XCODE_OSX_TESTS}" == "yes" ]] ; then XCODEBUILD_TEST_BASE_OSX=( - xcodebuild + "${XCODEBUILD}" -project objectivec/ProtocolBuffers_OSX.xcodeproj -scheme ProtocolBuffers # Since the ObjC 2.0 Runtime is required, 32bit OS X isn't supported. @@ -269,16 +285,16 @@ esac if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then header "Doing Xcode OS X build/tests - Debug" - time "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Debug test + "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Debug test fi if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then header "Doing Xcode OS X build/tests - Release" - time "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Release test + "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Release test fi fi if [[ "${DO_XCODE_TVOS_TESTS}" == "yes" ]] ; then XCODEBUILD_TEST_BASE_TVOS=( - xcodebuild + "${XCODEBUILD}" -project objectivec/ProtocolBuffers_tvOS.xcodeproj -scheme ProtocolBuffers ) @@ -305,11 +321,11 @@ fi if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then header "Doing Xcode tvOS build/tests - Debug" - time "${XCODEBUILD_TEST_BASE_TVOS[@]}" -configuration Debug test + "${XCODEBUILD_TEST_BASE_TVOS[@]}" -configuration Debug test fi if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then header "Doing Xcode tvOS build/tests - Release" - time "${XCODEBUILD_TEST_BASE_TVOS[@]}" -configuration Release test + "${XCODEBUILD_TEST_BASE_TVOS[@]}" -configuration Release test fi fi