(CommandList children: [ (C {(set)} {(-eu)}) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:ScriptDir) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Number "$0")}) (C {(sed)} {(-e)} { (DQ ("s,^") (EscapedLiteralPart token: <Lit_EscapedChar "\\("> ) ("[^/]") (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) (",") (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_CommandSub "$("> spids: [43 45] ) (/) (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) (",") ) } ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [26 50] ) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [22 52] ) } spids: [21] ) ] spids: [19] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:ProtoRootDir) op: Equal rhs: {(DQ (${ VSub_Name ScriptDir) (/../..))} spids: [56] ) ] spids: [54] ) (FuncDef name: printUsage body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NAME) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ (${ VSub_Number 0))})] ) left_token: <Left_CommandSub "$("> spids: [73 81] ) } spids: [72] ) ] spids: [72] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("usage: ") (${ VSub_Name NAME) (" [OPTIONS]\n") ("\n") ("This script does the common build steps needed.\n") ("\n") ("OPTIONS:\n") ("\n") (" General:\n") ("\n") (" -h, --help\n") (" Show this message\n") (" -c, --clean\n") (" Issue a clean before the normal build.\n") (" -a, --autogen\n") (" Start by rerunning autogen & configure.\n") (" -r, --regenerate-descriptors\n") ( " Run generate_descriptor_proto.sh to regenerate all the checked in\n" ) (" proto sources.\n") (" -j #, --jobs #\n") ( " Force the number of parallel jobs (useful for debugging build issues).\n" ) (" --core-only\n") ( " Skip some of the core protobuf build/checks to shorten the build time.\n" ) (" --skip-xcode\n") ( " Skip the invoke of Xcode to test the runtime on both iOS and OS X.\n" ) (" --skip-xcode-ios\n") (" Skip the invoke of Xcode to test the runtime on iOS.\n") (" --skip-xcode-debug\n") (" Skip the Xcode Debug configuration.\n") (" --skip-xcode-release\n") (" Skip the Xcode Release configuration.\n") (" --skip-xcode-osx\n") (" Skip the invoke of Xcode to test the runtime on OS X.\n") (" --skip-objc-conformance\n") (" Skip the Objective C conformance tests (run on OS X).\n") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [86] ) ] ) ] spids: [69] ) spids: [65 68] ) (FuncDef name: header body: (BraceGroup children: [ (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ("========================================================================"))} ) (C {(echo)} {(DQ (" ") (${ VSub_At "@"))}) (C {(echo)} {(DQ ("========================================================================"))} ) ] spids: [135] ) spids: [131 134] ) (FuncDef name: wrapped_make body: (BraceGroup children: [ (C {(set)} {(Lit_Other "+") (e)}) (C {(make)} {($ VSub_Star "$*")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MAKE_EXIT_STATUS) op: Equal rhs: {($ VSub_QMark "$?")} spids: [197] ) ] spids: [197] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(${ VSub_Name MAKE_EXIT_STATUS)} {(-ne)} {(0)} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("Error: 'make ") ($ VSub_Star "$*") ("' exited with status ") (${ VSub_Name MAKE_EXIT_STATUS) ) } ) (C {(exit)} {(${ VSub_Name MAKE_EXIT_STATUS)}) ] spids: [-1 216] ) ] spids: [-1 238] ) (C {(set)} {(-e)}) ] spids: [180] ) spids: [176 179] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NUM_MAKE_JOBS) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(/usr/sbin/sysctl)} {(-n)} {(hw.ncpu)})]) left_token: <Left_CommandSub "$("> spids: [249 255] ) } spids: [248] ) ] spids: [248] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_lt left: {(DQ (${ VSub_Name NUM_MAKE_JOBS))} right: {(2)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:NUM_MAKE_JOBS) op:Equal rhs:{(2)} spids:[278])] spids: [278] ) ] spids: [-1 275] ) ] spids: [-1 281] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DO_AUTOGEN) op:Equal rhs:{(no)} spids:[284])] spids: [284] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DO_CLEAN) op:Equal rhs:{(no)} spids:[287])] spids: [287] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:REGEN_DESCRIPTORS) op:Equal rhs:{(no)} spids:[290])] spids: [290] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CORE_ONLY) op:Equal rhs:{(no)} spids:[293])] spids: [293] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DO_XCODE_IOS_TESTS) op:Equal rhs:{(yes)} spids:[296])] spids: [296] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DO_XCODE_OSX_TESTS) op:Equal rhs:{(yes)} spids:[299])] spids: [299] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DO_XCODE_DEBUG) op:Equal rhs:{(yes)} spids:[302])] spids: [302] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DO_XCODE_RELEASE) op:Equal rhs:{(yes)} spids:[305])] spids: [305] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DO_OBJC_CONFORMANCE_TESTS) op: Equal rhs: {(yes)} spids: [308] ) ] spids: [308] ) (While cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id:BoolBinary_GlobNEqual left:{($ VSub_Pound "$#")} right:{(0)}) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Case to_match: {(DQ (${ VSub_Number 1))} arms: [ (case_arm pat_list: [{(-h)} {(--help)}] action: [(C {(printUsage)}) (C {(exit)} {(0)})] spids: [338 344 355 -1] ) (case_arm pat_list: [{(-c)} {(--clean)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DO_CLEAN) op: Equal rhs: {(yes)} spids: [367] ) ] spids: [367] ) ] spids: [358 364 371 -1] ) (case_arm pat_list: [{(-a)} {(--autogen)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DO_AUTOGEN) op: Equal rhs: {(yes)} spids: [383] ) ] spids: [383] ) ] spids: [374 380 387 -1] ) (case_arm pat_list: [{(-r)} {(--regenerate-descriptors)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REGEN_DESCRIPTORS) op: Equal rhs: {(yes)} spids: [399] ) ] spids: [399] ) ] spids: [390 396 403 -1] ) (case_arm pat_list: [{(-j)} {(--jobs)}] action: [ (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NUM_MAKE_JOBS) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [418] ) ] spids: [418] ) ] spids: [406 412 426 -1] ) (case_arm pat_list: [{(--core-only)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CORE_ONLY) op: Equal rhs: {(yes)} spids: [434] ) ] spids: [434] ) ] spids: [429 431 438 -1] ) (case_arm pat_list: [{(--skip-xcode)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DO_XCODE_IOS_TESTS) op: Equal rhs: {(no)} spids: [446] ) ] spids: [446] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DO_XCODE_OSX_TESTS) op: Equal rhs: {(no)} spids: [450] ) ] spids: [450] ) ] spids: [441 443 454 -1] ) (case_arm pat_list: [{(--skip-xcode-ios)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DO_XCODE_IOS_TESTS) op: Equal rhs: {(no)} spids: [462] ) ] spids: [462] ) ] spids: [457 459 466 -1] ) (case_arm pat_list: [{(--skip-xcode-osx)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DO_XCODE_OSX_TESTS) op: Equal rhs: {(no)} spids: [474] ) ] spids: [474] ) ] spids: [469 471 478 -1] ) (case_arm pat_list: [{(--skip-xcode-debug)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DO_XCODE_DEBUG) op: Equal rhs: {(no)} spids: [486] ) ] spids: [486] ) ] spids: [481 483 490 -1] ) (case_arm pat_list: [{(--skip-xcode-release)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DO_XCODE_RELEASE) op: Equal rhs: {(no)} spids: [498] ) ] spids: [498] ) ] spids: [493 495 502 -1] ) (case_arm pat_list: [{(--skip-objc-conformance)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DO_OBJC_CONFORMANCE_TESTS) op: Equal rhs: {(no)} spids: [510] ) ] spids: [510] ) ] spids: [505 507 514 -1] ) (case_arm pat_list: [{(-) (Lit_Other "*")}] action: [ (SimpleCommand words: [{(echo)} {(DQ ("ERROR: Unknown option: ") (${ VSub_Number 1))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[531])] ) (C {(printUsage)}) (C {(exit)} {(1)}) ] spids: [517 519 543 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (SimpleCommand words: [{(echo)} {(DQ ("ERROR: Unknown argument: ") (${ VSub_Number 1))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[559])] ) (C {(printUsage)}) (C {(exit)} {(1)}) ] spids: [546 547 571 -1] ) ] spids: [327 335 574] ) (C {(shift)}) ] spids: [324 579] ) ) (C {(cd)} {(DQ (${ VSub_Name ProtoRootDir))}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(LogicalNot child:(BoolUnary op_id:BoolUnary_f child:{(Makefile)}))) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DO_AUTOGEN) op:Equal rhs:{(yes)} spids:[614])] spids: [614] ) ] spids: [-1 611] ) ] spids: [-1 617] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_AUTOGEN))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(header)} {(DQ ("Running autogen & configure"))}) (C {(./autogen.sh)}) (C {(./configure)} {(Lit_VarLike "CPPFLAGS=") (DQ ("-mmacosx-version-min=10.9 -Wunused-const-variable -Wunused-function")) } {(Lit_VarLike "CXXFLAGS=") (DQ ("-Wnon-virtual-dtor -Woverloaded-virtual"))} ) ] spids: [-1 640] ) ] spids: [-1 669] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_CLEAN))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(header)} {(DQ (Cleaning))}) (C {(wrapped_make)} {(clean)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_IOS_TESTS))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XCODEBUILD_CLEAN_BASE_IOS) op: Equal rhs: { (ArrayLiteralPart words: [ {(xcodebuild)} {(-project)} {(objectivec/ProtocolBuffers_iOS.xcodeproj)} {(-scheme)} {(ProtocolBuffers)} ] ) } spids: [730] ) ] spids: [730] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_DEBUG))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C { (DQ (BracedVarSub token: <VSub_Name XCODEBUILD_CLEAN_BASE_IOS> bracket_op: (WholeArray op_id:Lit_At) spids: [774 779] ) ) } {(-configuration)} {(Debug)} {(clean)} ) ] spids: [-1 770] ) ] spids: [-1 789] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_RELEASE))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C { (DQ (BracedVarSub token: <VSub_Name XCODEBUILD_CLEAN_BASE_IOS> bracket_op: (WholeArray op_id:Lit_At) spids: [816 821] ) ) } {(-configuration)} {(Release)} {(clean)} ) ] spids: [-1 812] ) ] spids: [-1 831] ) ] spids: [-1 727] ) ] spids: [-1 834] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_OSX_TESTS))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XCODEBUILD_CLEAN_BASE_OSX) op: Equal rhs: { (ArrayLiteralPart words: [ {(xcodebuild)} {(-project)} {(objectivec/ProtocolBuffers_OSX.xcodeproj)} {(-scheme)} {(ProtocolBuffers)} ] ) } spids: [860] ) ] spids: [860] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_DEBUG))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C { (DQ (BracedVarSub token: <VSub_Name XCODEBUILD_CLEAN_BASE_OSX> bracket_op: (WholeArray op_id:Lit_At) spids: [904 909] ) ) } {(-configuration)} {(Debug)} {(clean)} ) ] spids: [-1 900] ) ] spids: [-1 919] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_RELEASE))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C { (DQ (BracedVarSub token: <VSub_Name XCODEBUILD_CLEAN_BASE_OSX> bracket_op: (WholeArray op_id:Lit_At) spids: [946 951] ) ) } {(-configuration)} {(Release)} {(clean)} ) ] spids: [-1 942] ) ] spids: [-1 961] ) ] spids: [-1 857] ) ] spids: [-1 964] ) ] spids: [-1 692] ) ] spids: [-1 966] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name REGEN_DESCRIPTORS))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(header)} {(DQ ("Regenerating the descriptor sources."))}) (C {(./generate_descriptor_proto.sh)} {(-j)} {(DQ (${ VSub_Name NUM_MAKE_JOBS))}) ] spids: [-1 989] ) ] spids: [-1 1009] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name CORE_ONLY))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(header)} {(DQ ("Building core Only"))}) (C {(wrapped_make)} {(-j)} {(DQ (${ VSub_Name NUM_MAKE_JOBS))}) ] spids: [-1 1032] ) ] else_action: [ (C {(header)} {(DQ (Building))}) (C {(wrapped_make)} {(-j)} {(DQ (${ VSub_Name NUM_MAKE_JOBS))} {(all)}) (C {(wrapped_make)} {(-j)} {(DQ (${ VSub_Name NUM_MAKE_JOBS))} {(check)}) (C {(cd)} {(conformance)}) (C {(wrapped_make)} {(-j)} {(DQ (${ VSub_Name NUM_MAKE_JOBS))} {(test_cpp)}) (C {(cd)} {(..)}) ] spids: [1052 1122] ) (C {(objectivec/generate_well_known_types.sh)} {(--check-only)} {(-j)} {(DQ (${ VSub_Name NUM_MAKE_JOBS))} ) (C {(header)} {(DQ ("Checking on the ObjC Runtime Code"))}) (C {(objectivec/DevTools/pddm_tests.py)}) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(objectivec/DevTools/pddm.py)} {(--dry-run)} {(objectivec/) (Lit_Other "*") (.) (Lit_Other "[") (hm) (Lit_Other "]")} {(objectivec/Tests/) (Lit_Other "*") (.) (Lit_Other "[") (hm) (Lit_Other "]")} ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ("Update by running:"))}) (C {(echo)} {(DQ (" objectivec/DevTools/pddm.py objectivec/*.[hm] objectivec/Tests/*.[hm]"))} ) (C {(exit)} {(1)}) ] spids: [-1 1173] ) ] spids: [-1 1200] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_IOS_TESTS))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XCODEBUILD_TEST_BASE_IOS) op: Equal rhs: { (ArrayLiteralPart words: [ {(xcodebuild)} {(-project)} {(objectivec/ProtocolBuffers_iOS.xcodeproj)} {(-scheme)} {(ProtocolBuffers)} ] ) } spids: [1226] ) ] spids: [1226] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:XCODE_VERSION_LINE) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(xcodebuild)} {(-version)}) (C {(grep)} {(Xcode) (EscapedLiteralPart token:<Lit_EscapedChar "\\ ">)} ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1262 1274] ) ) } spids: [1260] ) ] spids: [1258] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:XCODE_VERSION) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name XCODE_VERSION_LINE> suffix_op: (PatSub pat: {("Xcode ")} replace: {(SQ )} do_all: False do_prefix: False do_suffix: False ) spids: [1282 1287] ) ) } spids: [1280] ) ] spids: [1278] ) (Case to_match: {(DQ (${ VSub_Name XCODE_VERSION))} arms: [ (case_arm pat_list: [{(6.) (Lit_Other "*")}] action: [ (SimpleCommand words: [ {(echo)} { (DQ ( "ERROR: Xcode 6.3/6.4 no longer supported for building, please use 8.0 or higher." ) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[1317])] ) (C {(exit)} {(10)}) ] spids: [1305 1308 1326 -1] ) (case_arm pat_list: [{(7.) (Lit_Other "*")}] action: [ (SimpleCommand words: [ {(echo)} {(DQ ("ERROR: The unittests include Swift code that is now Swift 3.0."))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[1341])] ) (SimpleCommand words: [ {(echo)} { (DQ ( "ERROR: Xcode 8.0 or higher is required to build the test suite, but the library works with Xcode 7.x." ) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[1351])] ) (C {(exit)} {(11)}) ] spids: [1329 1332 1360 -1] ) (case_arm pat_list: [{(8.0) (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XCODEBUILD_TEST_BASE_IOS) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(-destination)} {(DQ ("platform=iOS Simulator,name=iPhone 4s,OS=9.0"))} {(-destination)} {(DQ ("platform=iOS Simulator,name=iPhone 7,OS=10.0"))} {(-destination)} {(DQ ("platform=iOS Simulator,name=iPad 2,OS=9.0"))} {(-destination)} {(DQ ("platform=iOS Simulator,name=iPad Pro (9.7 inch),OS=10.0"))} ] ) } spids: [1373] ) ] spids: [1373] ) ] spids: [1363 1366 1420 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (C {(echo)} { (DQ ("Time to update the simulator targets for Xcode ") (${ VSub_Name XCODE_VERSION) ) } ) (C {(exit)} {(2)}) ] spids: [1423 1425 1443 -1] ) ] spids: [1294 1302 1446] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_DEBUG))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(header)} {(DQ ("Doing Xcode iOS build/tests - Debug"))}) (C { (DQ (BracedVarSub token: <VSub_Name XCODEBUILD_TEST_BASE_IOS> bracket_op: (WholeArray op_id:Lit_At) spids: [1480 1485] ) ) } {(-configuration)} {(Debug)} {(test)} ) ] spids: [-1 1469] ) ] spids: [-1 1495] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_RELEASE))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(header)} {(DQ ("Doing Xcode iOS build/tests - Release"))}) (C { (DQ (BracedVarSub token: <VSub_Name XCODEBUILD_TEST_BASE_IOS> bracket_op: (WholeArray op_id:Lit_At) spids: [1529 1534] ) ) } {(-configuration)} {(Release)} {(test)} ) ] spids: [-1 1518] ) ] spids: [-1 1544] ) (C {(killall)} {(Simulator)}) ] spids: [-1 1223] ) ] spids: [-1 1555] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_OSX_TESTS))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XCODEBUILD_TEST_BASE_OSX) op: Equal rhs: { (ArrayLiteralPart words: [ {(xcodebuild)} {(-project)} {(objectivec/ProtocolBuffers_OSX.xcodeproj)} {(-scheme)} {(ProtocolBuffers)} {(-destination)} {(DQ ("platform=OS X,arch=x86_64"))} ] ) } spids: [1580] ) ] spids: [1580] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:XCODE_VERSION_LINE) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(xcodebuild)} {(-version)}) (C {(grep)} {(Xcode) (EscapedLiteralPart token:<Lit_EscapedChar "\\ ">)} ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1618 1630] ) ) } spids: [1616] ) ] spids: [1614] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:XCODE_VERSION) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name XCODE_VERSION_LINE> suffix_op: (PatSub pat: {("Xcode ")} replace: {(SQ )} do_all: False do_prefix: False do_suffix: False ) spids: [1638 1643] ) ) } spids: [1636] ) ] spids: [1634] ) (Case to_match: {(DQ (${ VSub_Name XCODE_VERSION))} arms: [ (case_arm pat_list: [{(6.) (Lit_Other "*")}] action: [ (SimpleCommand words: [ {(echo)} { (DQ ( "ERROR: Xcode 6.3/6.4 no longer supported for building, please use 8.0 or higher." ) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[1673])] ) (C {(exit)} {(10)}) ] spids: [1661 1664 1682 -1] ) (case_arm pat_list: [{(7.) (Lit_Other "*")}] action: [ (SimpleCommand words: [ {(echo)} {(DQ ("ERROR: The unittests include Swift code that is now Swift 3.0."))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[1697])] ) (SimpleCommand words: [ {(echo)} { (DQ ( "ERROR: Xcode 8.0 or higher is required to build the test suite, but the library works with Xcode 7.x." ) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[1707])] ) (C {(exit)} {(11)}) ] spids: [1685 1688 1716 -1] ) ] spids: [1650 1658 1719] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_DEBUG))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(header)} {(DQ ("Doing Xcode OS X build/tests - Debug"))}) (C { (DQ (BracedVarSub token: <VSub_Name XCODEBUILD_TEST_BASE_OSX> bracket_op: (WholeArray op_id:Lit_At) spids: [1753 1758] ) ) } {(-configuration)} {(Debug)} {(test)} ) ] spids: [-1 1742] ) ] spids: [-1 1768] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_XCODE_RELEASE))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(header)} {(DQ ("Doing Xcode OS X build/tests - Release"))}) (C { (DQ (BracedVarSub token: <VSub_Name XCODEBUILD_TEST_BASE_OSX> bracket_op: (WholeArray op_id:Lit_At) spids: [1802 1807] ) ) } {(-configuration)} {(Release)} {(test)} ) ] spids: [-1 1791] ) ] spids: [-1 1817] ) ] spids: [-1 1577] ) ] spids: [-1 1819] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name DO_OBJC_CONFORMANCE_TESTS))} right: {(DQ (yes))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(header)} {(DQ ("Running ObjC Conformance Tests"))}) (C {(cd)} {(conformance)}) (C {(wrapped_make)} {(-j)} {(DQ (${ VSub_Name NUM_MAKE_JOBS))} {(test_objc)}) (C {(cd)} {(..)}) ] spids: [-1 1842] ) ] spids: [-1 1874] ) ] )