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

Side by Side Diff: pylib/gyp/generator/xcode.py

Issue 1876623002: Adds support for a new target spec: 'mac_xcuitest_bundle'. This allows us to create UI testing bund… (Closed) Base URL: https://chromium.googlesource.com/external/gyp.git@master
Patch Set: Created 4 years, 7 months 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
« no previous file with comments | « no previous file | pylib/gyp/xcode_emulation.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 Google Inc. All rights reserved. 1 # Copyright (c) 2012 Google Inc. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import filecmp 5 import filecmp
6 import gyp.common 6 import gyp.common
7 import gyp.xcodeproj_file 7 import gyp.xcodeproj_file
8 import gyp.xcode_ninja 8 import gyp.xcode_ninja
9 import errno 9 import errno
10 import os 10 import os
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 # configurations. 70 # configurations.
71 generator_additional_non_configuration_keys = [ 71 generator_additional_non_configuration_keys = [
72 'ios_app_extension', 72 'ios_app_extension',
73 'ios_watch_app', 73 'ios_watch_app',
74 'ios_watchkit_extension', 74 'ios_watchkit_extension',
75 'mac_bundle', 75 'mac_bundle',
76 'mac_bundle_resources', 76 'mac_bundle_resources',
77 'mac_framework_headers', 77 'mac_framework_headers',
78 'mac_framework_private_headers', 78 'mac_framework_private_headers',
79 'mac_xctest_bundle', 79 'mac_xctest_bundle',
80 'mac_xcuitest_bundle',
80 'xcode_create_dependents_test_runner', 81 'xcode_create_dependents_test_runner',
81 ] 82 ]
82 83
83 # We want to let any rules apply to files that are resources also. 84 # We want to let any rules apply to files that are resources also.
84 generator_extra_sources_for_rules = [ 85 generator_extra_sources_for_rules = [
85 'mac_bundle_resources', 86 'mac_bundle_resources',
86 'mac_framework_headers', 87 'mac_framework_headers',
87 'mac_framework_private_headers', 88 'mac_framework_private_headers',
88 ] 89 ]
89 90
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 # to create a single-file mh_bundle. 685 # to create a single-file mh_bundle.
685 _types = { 686 _types = {
686 'executable': 'com.apple.product-type.tool', 687 'executable': 'com.apple.product-type.tool',
687 'loadable_module': 'com.googlecode.gyp.xcode.bundle', 688 'loadable_module': 'com.googlecode.gyp.xcode.bundle',
688 'shared_library': 'com.apple.product-type.library.dynamic', 689 'shared_library': 'com.apple.product-type.library.dynamic',
689 'static_library': 'com.apple.product-type.library.static', 690 'static_library': 'com.apple.product-type.library.static',
690 'mac_kernel_extension': 'com.apple.product-type.kernel-extension', 691 'mac_kernel_extension': 'com.apple.product-type.kernel-extension',
691 'executable+bundle': 'com.apple.product-type.application', 692 'executable+bundle': 'com.apple.product-type.application',
692 'loadable_module+bundle': 'com.apple.product-type.bundle', 693 'loadable_module+bundle': 'com.apple.product-type.bundle',
693 'loadable_module+xctest': 'com.apple.product-type.bundle.unit-test', 694 'loadable_module+xctest': 'com.apple.product-type.bundle.unit-test',
695 'loadable_module+xcuitest': 'com.apple.product-type.bundle.ui-testing',
694 'shared_library+bundle': 'com.apple.product-type.framework', 696 'shared_library+bundle': 'com.apple.product-type.framework',
695 'executable+extension+bundle': 'com.apple.product-type.app-extension', 697 'executable+extension+bundle': 'com.apple.product-type.app-extension',
696 'executable+watch+extension+bundle': 698 'executable+watch+extension+bundle':
697 'com.apple.product-type.watchkit-extension', 699 'com.apple.product-type.watchkit-extension',
698 'executable+watch+bundle': 700 'executable+watch+bundle':
699 'com.apple.product-type.application.watchapp', 701 'com.apple.product-type.application.watchapp',
700 'mac_kernel_extension+bundle': 'com.apple.product-type.kernel-extension', 702 'mac_kernel_extension+bundle': 'com.apple.product-type.kernel-extension',
701 } 703 }
702 704
703 target_properties = { 705 target_properties = {
704 'buildConfigurationList': xccl, 706 'buildConfigurationList': xccl,
705 'name': target_name, 707 'name': target_name,
706 } 708 }
707 709
708 type = spec['type'] 710 type = spec['type']
709 is_xctest = int(spec.get('mac_xctest_bundle', 0)) 711 is_xctest = int(spec.get('mac_xctest_bundle', 0))
712 is_xcuitest = int(spec.get('mac_xcuitest_bundle', 0))
710 is_bundle = int(spec.get('mac_bundle', 0)) or is_xctest 713 is_bundle = int(spec.get('mac_bundle', 0)) or is_xctest
711 is_app_extension = int(spec.get('ios_app_extension', 0)) 714 is_app_extension = int(spec.get('ios_app_extension', 0))
712 is_watchkit_extension = int(spec.get('ios_watchkit_extension', 0)) 715 is_watchkit_extension = int(spec.get('ios_watchkit_extension', 0))
713 is_watch_app = int(spec.get('ios_watch_app', 0)) 716 is_watch_app = int(spec.get('ios_watch_app', 0))
714 if type != 'none': 717 if type != 'none':
715 type_bundle_key = type 718 type_bundle_key = type
716 if is_xctest: 719 if is_xcuitest:
720 type_bundle_key += '+xcuitest'
721 assert type == 'loadable_module', (
722 'mac_xcuitest_bundle targets must have type loadable_module '
723 '(target %s)' % target_name)
724 elif is_xctest:
717 type_bundle_key += '+xctest' 725 type_bundle_key += '+xctest'
718 assert type == 'loadable_module', ( 726 assert type == 'loadable_module', (
719 'mac_xctest_bundle targets must have type loadable_module ' 727 'mac_xctest_bundle targets must have type loadable_module '
720 '(target %s)' % target_name) 728 '(target %s)' % target_name)
721 elif is_app_extension: 729 elif is_app_extension:
722 assert is_bundle, ('ios_app_extension flag requires mac_bundle ' 730 assert is_bundle, ('ios_app_extension flag requires mac_bundle '
723 '(target %s)' % target_name) 731 '(target %s)' % target_name)
724 type_bundle_key += '+extension+bundle' 732 type_bundle_key += '+extension+bundle'
725 elif is_watchkit_extension: 733 elif is_watchkit_extension:
726 assert is_bundle, ('ios_watchkit_extension flag requires mac_bundle ' 734 assert is_bundle, ('ios_watchkit_extension flag requires mac_bundle '
(...skipping 11 matching lines...) Expand all
738 target_properties['productType'] = _types[type_bundle_key] 746 target_properties['productType'] = _types[type_bundle_key]
739 except KeyError, e: 747 except KeyError, e:
740 gyp.common.ExceptionAppend(e, "-- unknown product type while " 748 gyp.common.ExceptionAppend(e, "-- unknown product type while "
741 "writing target %s" % target_name) 749 "writing target %s" % target_name)
742 raise 750 raise
743 else: 751 else:
744 xctarget_type = gyp.xcodeproj_file.PBXAggregateTarget 752 xctarget_type = gyp.xcodeproj_file.PBXAggregateTarget
745 assert not is_bundle, ( 753 assert not is_bundle, (
746 'mac_bundle targets cannot have type none (target "%s")' % 754 'mac_bundle targets cannot have type none (target "%s")' %
747 target_name) 755 target_name)
756 assert not is_xcuitest, (
757 'mac_xcuitest_bundle targets cannot have type none (target "%s")' %
758 target_name)
748 assert not is_xctest, ( 759 assert not is_xctest, (
749 'mac_xctest_bundle targets cannot have type none (target "%s")' % 760 'mac_xctest_bundle targets cannot have type none (target "%s")' %
750 target_name) 761 target_name)
751 762
752 target_product_name = spec.get('product_name') 763 target_product_name = spec.get('product_name')
753 if target_product_name is not None: 764 if target_product_name is not None:
754 target_properties['productName'] = target_product_name 765 target_properties['productName'] = target_product_name
755 766
756 xct = xctarget_type(target_properties, parent=pbxp, 767 xct = xctarget_type(target_properties, parent=pbxp,
757 force_outdir=spec.get('product_dir'), 768 force_outdir=spec.get('product_dir'),
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 1302
1292 for build_file in build_files: 1303 for build_file in build_files:
1293 xcode_projects[build_file].Finalize1(xcode_targets, serialize_all_tests) 1304 xcode_projects[build_file].Finalize1(xcode_targets, serialize_all_tests)
1294 1305
1295 for build_file in build_files: 1306 for build_file in build_files:
1296 xcode_projects[build_file].Finalize2(xcode_targets, 1307 xcode_projects[build_file].Finalize2(xcode_targets,
1297 xcode_target_to_target_dict) 1308 xcode_target_to_target_dict)
1298 1309
1299 for build_file in build_files: 1310 for build_file in build_files:
1300 xcode_projects[build_file].Write() 1311 xcode_projects[build_file].Write()
OLDNEW
« no previous file with comments | « no previous file | pylib/gyp/xcode_emulation.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698