Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Side by Side Diff: third_party/protobuf/objectivec/DevTools/full_mac_build.sh

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # 2 #
3 # Helper to do build so you don't have to remember all the steps/args. 3 # Helper to do build so you don't have to remember all the steps/args.
4 4
5 5
6 set -eu 6 set -eu
7 7
8 # Some base locations. 8 # Some base locations.
9 readonly ScriptDir=$(dirname "$(echo $0 | sed -e "s,^\([^/]\),$(pwd)/\1,")") 9 readonly ScriptDir=$(dirname "$(echo $0 | sed -e "s,^\([^/]\),$(pwd)/\1,")")
10 readonly ProtoRootDir="${ScriptDir}/../.." 10 readonly ProtoRootDir="${ScriptDir}/../.."
(...skipping 19 matching lines...) Expand all
30 Run generate_descriptor_proto.sh to regenerate all the checked in 30 Run generate_descriptor_proto.sh to regenerate all the checked in
31 proto sources. 31 proto sources.
32 -j #, --jobs # 32 -j #, --jobs #
33 Force the number of parallel jobs (useful for debugging build issues). 33 Force the number of parallel jobs (useful for debugging build issues).
34 --core-only 34 --core-only
35 Skip some of the core protobuf build/checks to shorten the build time. 35 Skip some of the core protobuf build/checks to shorten the build time.
36 --skip-xcode 36 --skip-xcode
37 Skip the invoke of Xcode to test the runtime on both iOS and OS X. 37 Skip the invoke of Xcode to test the runtime on both iOS and OS X.
38 --skip-xcode-ios 38 --skip-xcode-ios
39 Skip the invoke of Xcode to test the runtime on iOS. 39 Skip the invoke of Xcode to test the runtime on iOS.
40 --skip-xcode-debug
41 Skip the Xcode Debug configuration.
42 --skip-xcode-release
43 Skip the Xcode Release configuration.
40 --skip-xcode-osx 44 --skip-xcode-osx
41 Skip the invoke of Xcode to test the runtime on OS X. 45 Skip the invoke of Xcode to test the runtime on OS X.
42 --skip-objc-conformance 46 --skip-objc-conformance
43 Skip the Objective C conformance tests (run on OS X). 47 Skip the Objective C conformance tests (run on OS X).
48 --xcode-quiet
49 Pass -quiet to xcodebuild.
44 50
45 EOF 51 EOF
46 } 52 }
47 53
48 header() { 54 header() {
49 echo "" 55 echo ""
50 echo "======================================================================== " 56 echo "======================================================================== "
51 echo " ${@}" 57 echo " ${@}"
52 echo "======================================================================== " 58 echo "======================================================================== "
53 } 59 }
54 60
55 # Thanks to libtool, builds can fail in odd ways and since it eats some output 61 # Thanks to libtool, builds can fail in odd ways and since it eats some output
56 # it can be hard to spot, so force error output if make exits with a non zero. 62 # it can be hard to spot, so force error output if make exits with a non zero.
57 wrapped_make() { 63 wrapped_make() {
58 set +e # Don't stop if the command fails. 64 set +e # Don't stop if the command fails.
59 make $* 65 make $*
60 MAKE_EXIT_STATUS=$? 66 MAKE_EXIT_STATUS=$?
61 if [ ${MAKE_EXIT_STATUS} -ne 0 ]; then 67 if [ ${MAKE_EXIT_STATUS} -ne 0 ]; then
62 echo "Error: 'make $*' exited with status ${MAKE_EXIT_STATUS}" 68 echo "Error: 'make $*' exited with status ${MAKE_EXIT_STATUS}"
63 exit ${MAKE_EXIT_STATUS} 69 exit ${MAKE_EXIT_STATUS}
64 fi 70 fi
65 set -e 71 set -e
66 } 72 }
67 73
68 NUM_MAKE_JOBS=$(/usr/sbin/sysctl -n hw.ncpu) 74 NUM_MAKE_JOBS=$(/usr/sbin/sysctl -n hw.ncpu)
69 if [[ "${NUM_MAKE_JOBS}" -lt 4 ]] ; then 75 if [[ "${NUM_MAKE_JOBS}" -lt 2 ]] ; then
70 NUM_MAKE_JOBS=4 76 NUM_MAKE_JOBS=2
71 fi 77 fi
72 78
73 DO_AUTOGEN=no 79 DO_AUTOGEN=no
74 DO_CLEAN=no 80 DO_CLEAN=no
75 REGEN_DESCRIPTORS=no 81 REGEN_DESCRIPTORS=no
76 CORE_ONLY=no 82 CORE_ONLY=no
77 DO_XCODE_IOS_TESTS=yes 83 DO_XCODE_IOS_TESTS=yes
78 DO_XCODE_OSX_TESTS=yes 84 DO_XCODE_OSX_TESTS=yes
85 DO_XCODE_DEBUG=yes
86 DO_XCODE_RELEASE=yes
79 DO_OBJC_CONFORMANCE_TESTS=yes 87 DO_OBJC_CONFORMANCE_TESTS=yes
88 XCODE_QUIET=no
80 while [[ $# != 0 ]]; do 89 while [[ $# != 0 ]]; do
81 case "${1}" in 90 case "${1}" in
82 -h | --help ) 91 -h | --help )
83 printUsage 92 printUsage
84 exit 0 93 exit 0
85 ;; 94 ;;
86 -c | --clean ) 95 -c | --clean )
87 DO_CLEAN=yes 96 DO_CLEAN=yes
88 ;; 97 ;;
89 -a | --autogen ) 98 -a | --autogen )
(...skipping 12 matching lines...) Expand all
102 --skip-xcode ) 111 --skip-xcode )
103 DO_XCODE_IOS_TESTS=no 112 DO_XCODE_IOS_TESTS=no
104 DO_XCODE_OSX_TESTS=no 113 DO_XCODE_OSX_TESTS=no
105 ;; 114 ;;
106 --skip-xcode-ios ) 115 --skip-xcode-ios )
107 DO_XCODE_IOS_TESTS=no 116 DO_XCODE_IOS_TESTS=no
108 ;; 117 ;;
109 --skip-xcode-osx ) 118 --skip-xcode-osx )
110 DO_XCODE_OSX_TESTS=no 119 DO_XCODE_OSX_TESTS=no
111 ;; 120 ;;
121 --skip-xcode-debug )
122 DO_XCODE_DEBUG=no
123 ;;
124 --skip-xcode-release )
125 DO_XCODE_RELEASE=no
126 ;;
112 --skip-objc-conformance ) 127 --skip-objc-conformance )
113 DO_OBJC_CONFORMANCE_TESTS=no 128 DO_OBJC_CONFORMANCE_TESTS=no
114 ;; 129 ;;
130 --xcode-quiet )
131 XCODE_QUIET=yes
132 ;;
115 -*) 133 -*)
116 echo "ERROR: Unknown option: ${1}" 1>&2 134 echo "ERROR: Unknown option: ${1}" 1>&2
117 printUsage 135 printUsage
118 exit 1 136 exit 1
119 ;; 137 ;;
120 *) 138 *)
121 echo "ERROR: Unknown argument: ${1}" 1>&2 139 echo "ERROR: Unknown argument: ${1}" 1>&2
122 printUsage 140 printUsage
123 exit 1 141 exit 1
124 ;; 142 ;;
(...skipping 19 matching lines...) Expand all
144 162
145 if [[ "${DO_CLEAN}" == "yes" ]] ; then 163 if [[ "${DO_CLEAN}" == "yes" ]] ; then
146 header "Cleaning" 164 header "Cleaning"
147 wrapped_make clean 165 wrapped_make clean
148 if [[ "${DO_XCODE_IOS_TESTS}" == "yes" ]] ; then 166 if [[ "${DO_XCODE_IOS_TESTS}" == "yes" ]] ; then
149 XCODEBUILD_CLEAN_BASE_IOS=( 167 XCODEBUILD_CLEAN_BASE_IOS=(
150 xcodebuild 168 xcodebuild
151 -project objectivec/ProtocolBuffers_iOS.xcodeproj 169 -project objectivec/ProtocolBuffers_iOS.xcodeproj
152 -scheme ProtocolBuffers 170 -scheme ProtocolBuffers
153 ) 171 )
154 "${XCODEBUILD_CLEAN_BASE_IOS[@]}" -configuration Debug clean 172 if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then
155 "${XCODEBUILD_CLEAN_BASE_IOS[@]}" -configuration Release clean 173 "${XCODEBUILD_CLEAN_BASE_IOS[@]}" -configuration Debug clean
174 fi
175 if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then
176 "${XCODEBUILD_CLEAN_BASE_IOS[@]}" -configuration Release clean
177 fi
156 fi 178 fi
157 if [[ "${DO_XCODE_OSX_TESTS}" == "yes" ]] ; then 179 if [[ "${DO_XCODE_OSX_TESTS}" == "yes" ]] ; then
158 XCODEBUILD_CLEAN_BASE_OSX=( 180 XCODEBUILD_CLEAN_BASE_OSX=(
159 xcodebuild 181 xcodebuild
160 -project objectivec/ProtocolBuffers_OSX.xcodeproj 182 -project objectivec/ProtocolBuffers_OSX.xcodeproj
161 -scheme ProtocolBuffers 183 -scheme ProtocolBuffers
162 ) 184 )
163 "${XCODEBUILD_CLEAN_BASE_OSX[@]}" -configuration Debug clean 185 if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then
164 "${XCODEBUILD_CLEAN_BASE_OSX[@]}" -configuration Release clean 186 "${XCODEBUILD_CLEAN_BASE_OSX[@]}" -configuration Debug clean
187 fi
188 if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then
189 "${XCODEBUILD_CLEAN_BASE_OSX[@]}" -configuration Release clean
190 fi
165 fi 191 fi
166 fi 192 fi
167 193
168 if [[ "${REGEN_DESCRIPTORS}" == "yes" ]] ; then 194 if [[ "${REGEN_DESCRIPTORS}" == "yes" ]] ; then
169 header "Regenerating the descriptor sources." 195 header "Regenerating the descriptor sources."
170 ./generate_descriptor_proto.sh -j "${NUM_MAKE_JOBS}" 196 ./generate_descriptor_proto.sh -j "${NUM_MAKE_JOBS}"
171 fi 197 fi
172 198
173 if [[ "${CORE_ONLY}" == "yes" ]] ; then 199 if [[ "${CORE_ONLY}" == "yes" ]] ; then
174 header "Building core Only" 200 header "Building core Only"
(...skipping 15 matching lines...) Expand all
190 216
191 header "Checking on the ObjC Runtime Code" 217 header "Checking on the ObjC Runtime Code"
192 objectivec/DevTools/pddm_tests.py 218 objectivec/DevTools/pddm_tests.py
193 if ! objectivec/DevTools/pddm.py --dry-run objectivec/*.[hm] objectivec/Tests/*. [hm] ; then 219 if ! objectivec/DevTools/pddm.py --dry-run objectivec/*.[hm] objectivec/Tests/*. [hm] ; then
194 echo "" 220 echo ""
195 echo "Update by running:" 221 echo "Update by running:"
196 echo " objectivec/DevTools/pddm.py objectivec/*.[hm] objectivec/Tests/*.[hm] " 222 echo " objectivec/DevTools/pddm.py objectivec/*.[hm] objectivec/Tests/*.[hm] "
197 exit 1 223 exit 1
198 fi 224 fi
199 225
226 readonly XCODE_VERSION_LINE="$(xcodebuild -version | grep Xcode\ )"
227 readonly XCODE_VERSION="${XCODE_VERSION_LINE/Xcode /}" # drop the prefix.
228
200 if [[ "${DO_XCODE_IOS_TESTS}" == "yes" ]] ; then 229 if [[ "${DO_XCODE_IOS_TESTS}" == "yes" ]] ; then
201 XCODEBUILD_TEST_BASE_IOS=( 230 XCODEBUILD_TEST_BASE_IOS=(
202 xcodebuild 231 xcodebuild
203 -project objectivec/ProtocolBuffers_iOS.xcodeproj 232 -project objectivec/ProtocolBuffers_iOS.xcodeproj
204 -scheme ProtocolBuffers 233 -scheme ProtocolBuffers
205 ) 234 )
235 if [[ "${XCODE_QUIET}" == "yes" ]] ; then
236 XCODEBUILD_TEST_BASE_IOS+=( -quiet )
237 fi
206 # Don't need to worry about form factors or retina/non retina; 238 # Don't need to worry about form factors or retina/non retina;
207 # just pick a mix of OS Versions and 32/64 bit. 239 # just pick a mix of OS Versions and 32/64 bit.
208 # NOTE: Different Xcode have different simulated hardware/os support. 240 # NOTE: Different Xcode have different simulated hardware/os support.
209 readonly XCODE_VERSION_LINE="$(xcodebuild -version | grep Xcode\ )"
210 readonly XCODE_VERSION="${XCODE_VERSION_LINE/Xcode /}" # drop the prefix.
211 IOS_SIMULATOR_NAME="Simulator"
212 case "${XCODE_VERSION}" in 241 case "${XCODE_VERSION}" in
213 6.* ) 242 6.* )
214 echo "ERROR: Xcode 6.3/6.4 no longer supported for building, please use 7. 0 or higher." 1>&2 243 echo "ERROR: Xcode 6.3/6.4 no longer supported for building, please use 8. 0 or higher." 1>&2
215 exit 10 244 exit 10
216 ;; 245 ;;
217 7.1* ) 246 7.* )
247 echo "ERROR: The unittests include Swift code that is now Swift 3.0." 1>&2
248 echo "ERROR: Xcode 8.0 or higher is required to build the test suite, but the library works with Xcode 7.x." 1>&2
249 exit 11
250 ;;
251 8.0* )
252 # The 8.* device seem to hang and never start under Xcode 8.
253 XCODEBUILD_TEST_BASE_IOS+=(
254 -destination "platform=iOS Simulator,name=iPhone 4s,OS=9.0" # 32bit
255 -destination "platform=iOS Simulator,name=iPhone 7,OS=10.0" # 64bit
256 -destination "platform=iOS Simulator,name=iPad 2,OS=9.0" # 32bit
257 -destination "platform=iOS Simulator,name=iPad Pro (9.7 inch),OS=10.0" # 64bit
258 )
259 ;;
260 8.1* )
218 XCODEBUILD_TEST_BASE_IOS+=( 261 XCODEBUILD_TEST_BASE_IOS+=(
219 -destination "platform=iOS Simulator,name=iPhone 4s,OS=8.1" # 32bit 262 -destination "platform=iOS Simulator,name=iPhone 4s,OS=8.1" # 32bit
220 -destination "platform=iOS Simulator,name=iPhone 6,OS=9.0" # 64bit 263 -destination "platform=iOS Simulator,name=iPhone 7,OS=10.1" # 64bit
221 -destination "platform=iOS Simulator,name=iPad 2,OS=8.1" # 32bit 264 -destination "platform=iOS Simulator,name=iPad 2,OS=8.1" # 32bit
222 -destination "platform=iOS Simulator,name=iPad Air,OS=9.0" # 64bit 265 -destination "platform=iOS Simulator,name=iPad Pro (9.7 inch),OS=10.1" # 64bit
223 )
224 ;;
225 7.3* )
226 XCODEBUILD_TEST_BASE_IOS+=(
227 -destination "platform=iOS Simulator,name=iPhone 4s,OS=8.1" # 32bit
228 -destination "platform=iOS Simulator,name=iPhone 6,OS=9.3" # 64bit
229 -destination "platform=iOS Simulator,name=iPad 2,OS=8.1" # 32bit
230 -destination "platform=iOS Simulator,name=iPad Air,OS=9.3" # 64bit
231 )
232 ;;
233 7.* )
234 XCODEBUILD_TEST_BASE_IOS+=(
235 -destination "platform=iOS Simulator,name=iPhone 4s,OS=8.1" # 32bit
236 -destination "platform=iOS Simulator,name=iPhone 6,OS=9.2" # 64bit
237 -destination "platform=iOS Simulator,name=iPad 2,OS=8.1" # 32bit
238 -destination "platform=iOS Simulator,name=iPad Air,OS=9.2" # 64bit
239 ) 266 )
240 ;; 267 ;;
241 * ) 268 * )
242 echo "Time to update the simulator targets for Xcode ${XCODE_VERSION}" 269 echo "Time to update the simulator targets for Xcode ${XCODE_VERSION}"
243 exit 2 270 exit 2
244 ;; 271 ;;
245 esac 272 esac
246 header "Doing Xcode iOS build/tests - Debug" 273 if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then
247 "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Debug test 274 header "Doing Xcode iOS build/tests - Debug"
248 header "Doing Xcode iOS build/tests - Release" 275 "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Debug test
249 "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Release test 276 fi
277 if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then
278 header "Doing Xcode iOS build/tests - Release"
279 "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Release test
280 fi
250 # Don't leave the simulator in the developer's face. 281 # Don't leave the simulator in the developer's face.
251 killall "${IOS_SIMULATOR_NAME}" 282 killall Simulator
252 fi 283 fi
253 if [[ "${DO_XCODE_OSX_TESTS}" == "yes" ]] ; then 284 if [[ "${DO_XCODE_OSX_TESTS}" == "yes" ]] ; then
254 XCODEBUILD_TEST_BASE_OSX=( 285 XCODEBUILD_TEST_BASE_OSX=(
255 xcodebuild 286 xcodebuild
256 -project objectivec/ProtocolBuffers_OSX.xcodeproj 287 -project objectivec/ProtocolBuffers_OSX.xcodeproj
257 -scheme ProtocolBuffers 288 -scheme ProtocolBuffers
258 # Since the ObjC 2.0 Runtime is required, 32bit OS X isn't supported. 289 # Since the ObjC 2.0 Runtime is required, 32bit OS X isn't supported.
259 -destination "platform=OS X,arch=x86_64" # 64bit 290 -destination "platform=OS X,arch=x86_64" # 64bit
260 ) 291 )
261 header "Doing Xcode OS X build/tests - Debug" 292 if [[ "${XCODE_QUIET}" == "yes" ]] ; then
262 "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Debug test 293 XCODEBUILD_TEST_BASE_OSX+=( -quiet )
263 header "Doing Xcode OS X build/tests - Release" 294 fi
264 "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Release test 295 case "${XCODE_VERSION}" in
296 6.* )
297 echo "ERROR: Xcode 6.3/6.4 no longer supported for building, please use 8. 0 or higher." 1>&2
298 exit 10
299 ;;
300 7.* )
301 echo "ERROR: The unittests include Swift code that is now Swift 3.0." 1>&2
302 echo "ERROR: Xcode 8.0 or higher is required to build the test suite, but the library works with Xcode 7.x." 1>&2
303 exit 11
304 ;;
305 esac
306 if [[ "${DO_XCODE_DEBUG}" == "yes" ]] ; then
307 header "Doing Xcode OS X build/tests - Debug"
308 "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Debug test
309 fi
310 if [[ "${DO_XCODE_RELEASE}" == "yes" ]] ; then
311 header "Doing Xcode OS X build/tests - Release"
312 "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Release test
313 fi
265 fi 314 fi
266 315
267 if [[ "${DO_OBJC_CONFORMANCE_TESTS}" == "yes" ]] ; then 316 if [[ "${DO_OBJC_CONFORMANCE_TESTS}" == "yes" ]] ; then
317 header "Running ObjC Conformance Tests"
268 cd conformance 318 cd conformance
269 wrapped_make -j "${NUM_MAKE_JOBS}" test_objc 319 wrapped_make -j "${NUM_MAKE_JOBS}" test_objc
270 cd .. 320 cd ..
271 fi 321 fi
OLDNEW
« no previous file with comments | « third_party/protobuf/objectivec/DevTools/compile_testing_protos.sh ('k') | third_party/protobuf/objectivec/GPBArray.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698