OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Entry point for both build and try bots. | 6 """Entry point for both build and try bots. |
7 | 7 |
8 This script is invoked from XXX, usually without arguments | 8 This script is invoked from XXX, usually without arguments |
9 to package an SDK. It automatically determines whether | 9 to package an SDK. It automatically determines whether |
10 this SDK is for mac, win, linux. | 10 this SDK is for mac, win, linux. |
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 if tc == 'newlib' and xarch == 'arm' and 'bionic' in toolchains: | 442 if tc == 'newlib' and xarch == 'arm' and 'bionic' in toolchains: |
443 bionic_dir = GetOutputToolchainLib(pepperdir, 'bionic', xarch) | 443 bionic_dir = GetOutputToolchainLib(pepperdir, 'bionic', xarch) |
444 InstallFiles(src_dir, bionic_dir, TOOLCHAIN_LIBS['bionic']) | 444 InstallFiles(src_dir, bionic_dir, TOOLCHAIN_LIBS['bionic']) |
445 | 445 |
446 if tc != 'pnacl': | 446 if tc != 'pnacl': |
447 src_dir = GetGypToolchainLib(tc, xarch) | 447 src_dir = GetGypToolchainLib(tc, xarch) |
448 InstallFiles(src_dir, dst_dir, ['crt1.o']) | 448 InstallFiles(src_dir, dst_dir, ['crt1.o']) |
449 | 449 |
450 | 450 |
451 def GypNinjaBuild_NaCl(rel_out_dir): | 451 def GypNinjaBuild_NaCl(rel_out_dir): |
452 gyp_py = os.path.join(NACL_DIR, 'build', 'gyp_nacl') | 452 # TODO(binji): gyp_nacl doesn't build properly on Windows anymore; it only |
| 453 # can use VS2010, not VS2013 which is now required by the Chromium repo. NaCl |
| 454 # needs to be updated to perform the same logic as Chromium in detecting VS, |
| 455 # which can now exist in the depot_tools directory. |
| 456 # See https://code.google.com/p/nativeclient/issues/detail?id=4022 |
| 457 # |
| 458 # For now, let's use gyp_chromium to build these components. |
| 459 # gyp_py = os.path.join(NACL_DIR, 'build', 'gyp_nacl') |
| 460 gyp_py = os.path.join(SRC_DIR, 'build', 'gyp_chromium') |
453 nacl_core_sdk_gyp = os.path.join(NACL_DIR, 'build', 'nacl_core_sdk.gyp') | 461 nacl_core_sdk_gyp = os.path.join(NACL_DIR, 'build', 'nacl_core_sdk.gyp') |
454 all_gyp = os.path.join(NACL_DIR, 'build', 'all.gyp') | 462 all_gyp = os.path.join(NACL_DIR, 'build', 'all.gyp') |
455 | 463 |
456 out_dir = MakeNinjaRelPath(rel_out_dir) | 464 out_dir = MakeNinjaRelPath(rel_out_dir) |
457 out_dir_arm = MakeNinjaRelPath(rel_out_dir + '-arm') | 465 out_dir_arm = MakeNinjaRelPath(rel_out_dir + '-arm') |
458 GypNinjaBuild('ia32', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk', out_dir) | 466 GypNinjaBuild('ia32', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk', out_dir) |
459 GypNinjaBuild('arm', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk', out_dir_arm) | 467 GypNinjaBuild('arm', gyp_py, nacl_core_sdk_gyp, 'nacl_core_sdk', out_dir_arm) |
460 GypNinjaBuild(None, gyp_py, all_gyp, 'ncval_new', out_dir) | 468 GypNinjaBuild(None, gyp_py, all_gyp, 'ncval_new', out_dir) |
461 | 469 |
462 platform = getos.GetPlatform() | 470 platform = getos.GetPlatform() |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
502 def GypNinjaBuild_Pnacl(rel_out_dir, target_arch): | 510 def GypNinjaBuild_Pnacl(rel_out_dir, target_arch): |
503 # TODO(binji): This will build the pnacl_irt_shim twice; once as part of the | 511 # TODO(binji): This will build the pnacl_irt_shim twice; once as part of the |
504 # Chromium build, and once here. When we move more of the SDK build process | 512 # Chromium build, and once here. When we move more of the SDK build process |
505 # to gyp, we can remove this. | 513 # to gyp, we can remove this. |
506 gyp_py = os.path.join(SRC_DIR, 'build', 'gyp_chromium') | 514 gyp_py = os.path.join(SRC_DIR, 'build', 'gyp_chromium') |
507 | 515 |
508 out_dir = MakeNinjaRelPath(rel_out_dir) | 516 out_dir = MakeNinjaRelPath(rel_out_dir) |
509 gyp_file = os.path.join(SRC_DIR, 'ppapi', 'native_client', 'src', | 517 gyp_file = os.path.join(SRC_DIR, 'ppapi', 'native_client', 'src', |
510 'untrusted', 'pnacl_irt_shim', 'pnacl_irt_shim.gyp') | 518 'untrusted', 'pnacl_irt_shim', 'pnacl_irt_shim.gyp') |
511 targets = ['aot'] | 519 targets = ['aot'] |
512 GypNinjaBuild(target_arch, gyp_py, gyp_file, targets, out_dir, False) | 520 GypNinjaBuild(target_arch, gyp_py, gyp_file, targets, out_dir) |
513 | 521 |
514 | 522 |
515 def GypNinjaBuild(arch, gyp_py_script, gyp_file, targets, | 523 def GypNinjaBuild(arch, gyp_py_script, gyp_file, targets, out_dir): |
516 out_dir, force_arm_gcc=True): | |
517 gyp_env = dict(os.environ) | 524 gyp_env = dict(os.environ) |
518 gyp_env['GYP_GENERATORS'] = 'ninja' | 525 gyp_env['GYP_GENERATORS'] = 'ninja' |
519 gyp_defines = [] | 526 gyp_defines = [] |
520 if options.mac_sdk: | 527 if options.mac_sdk: |
521 gyp_defines.append('mac_sdk=%s' % options.mac_sdk) | 528 gyp_defines.append('mac_sdk=%s' % options.mac_sdk) |
522 if arch is not None: | 529 if arch is not None: |
523 gyp_defines.append('target_arch=%s' % arch) | 530 gyp_defines.append('target_arch=%s' % arch) |
524 if arch == 'arm': | 531 if arch == 'arm': |
525 if getos.GetPlatform() == 'linux': | 532 gyp_env['GYP_CROSSCOMPILE'] = '1' |
526 gyp_env['CC'] = 'arm-linux-gnueabihf-gcc' | 533 gyp_defines += ['arm_float_abi=hard'] |
527 gyp_env['CXX'] = 'arm-linux-gnueabihf-g++' | |
528 gyp_env['AR'] = 'arm-linux-gnueabihf-ar' | |
529 gyp_env['AS'] = 'arm-linux-gnueabihf-as' | |
530 gyp_env['CC_host'] = 'cc' | |
531 gyp_env['CXX_host'] = 'c++' | |
532 gyp_defines += ['clang=0', 'host_clang=0'] | |
533 gyp_defines += ['armv7=1', 'arm_thumb=0', 'arm_neon=1', | |
534 'arm_float_abi=hard'] | |
535 if force_arm_gcc: | |
536 gyp_defines.append('nacl_enable_arm_gcc=1') | |
537 if options.no_arm_trusted: | 534 if options.no_arm_trusted: |
538 gyp_defines.append('disable_cross_trusted=1') | 535 gyp_defines.append('disable_cross_trusted=1') |
539 if getos.GetPlatform() == 'mac': | 536 if getos.GetPlatform() == 'mac': |
540 gyp_defines.append('clang=1') | 537 gyp_defines.append('clang=1') |
541 | 538 |
542 gyp_env['GYP_DEFINES'] = ' '.join(gyp_defines) | 539 gyp_env['GYP_DEFINES'] = ' '.join(gyp_defines) |
543 for key in ['GYP_GENERATORS', 'GYP_DEFINES', 'CC']: | 540 for key in ['GYP_GENERATORS', 'GYP_DEFINES', 'CC']: |
544 value = gyp_env.get(key) | 541 value = gyp_env.get(key) |
545 if value is not None: | 542 if value is not None: |
546 print '%s="%s"' % (key, value) | 543 print '%s="%s"' % (key, value) |
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1070 BuildStepArchiveSDKTools() | 1067 BuildStepArchiveSDKTools() |
1071 | 1068 |
1072 return 0 | 1069 return 0 |
1073 | 1070 |
1074 | 1071 |
1075 if __name__ == '__main__': | 1072 if __name__ == '__main__': |
1076 try: | 1073 try: |
1077 sys.exit(main(sys.argv[1:])) | 1074 sys.exit(main(sys.argv[1:])) |
1078 except KeyboardInterrupt: | 1075 except KeyboardInterrupt: |
1079 buildbot_common.ErrorExit('build_sdk: interrupted') | 1076 buildbot_common.ErrorExit('build_sdk: interrupted') |
OLD | NEW |