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

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

Issue 376603002: This CL adds support for extension in GYP. (Closed) Base URL: https://chromium.googlesource.com/external/gyp.git@master
Patch Set: oops Created 6 years, 5 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 generator_additional_path_sections = [ 62 generator_additional_path_sections = [
63 'mac_bundle_resources', 63 'mac_bundle_resources',
64 'mac_framework_headers', 64 'mac_framework_headers',
65 'mac_framework_private_headers', 65 'mac_framework_private_headers',
66 # 'mac_framework_dirs', input already handles _dirs endings. 66 # 'mac_framework_dirs', input already handles _dirs endings.
67 ] 67 ]
68 68
69 # The Xcode-specific keys that exist on targets and aren't moved down to 69 # The Xcode-specific keys that exist on targets and aren't moved down to
70 # configurations. 70 # configurations.
71 generator_additional_non_configuration_keys = [ 71 generator_additional_non_configuration_keys = [
72 'ios_app_extension',
72 'mac_bundle', 73 'mac_bundle',
73 'mac_bundle_resources', 74 'mac_bundle_resources',
74 'mac_framework_headers', 75 'mac_framework_headers',
75 'mac_framework_private_headers', 76 'mac_framework_private_headers',
76 'mac_xctest_bundle', 77 'mac_xctest_bundle',
77 'xcode_create_dependents_test_runner', 78 'xcode_create_dependents_test_runner',
78 ] 79 ]
79 80
80 # We want to let any rules apply to files that are resources also. 81 # We want to let any rules apply to files that are resources also.
81 generator_extra_sources_for_rules = [ 82 generator_extra_sources_for_rules = [
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 # Set up the configurations for the target according to the list of names 638 # Set up the configurations for the target according to the list of names
638 # supplied. 639 # supplied.
639 xccl = CreateXCConfigurationList(configuration_names) 640 xccl = CreateXCConfigurationList(configuration_names)
640 641
641 # Create an XCTarget subclass object for the target. The type with 642 # Create an XCTarget subclass object for the target. The type with
642 # "+bundle" appended will be used if the target has "mac_bundle" set. 643 # "+bundle" appended will be used if the target has "mac_bundle" set.
643 # loadable_modules not in a mac_bundle are mapped to 644 # loadable_modules not in a mac_bundle are mapped to
644 # com.googlecode.gyp.xcode.bundle, a pseudo-type that xcode.py interprets 645 # com.googlecode.gyp.xcode.bundle, a pseudo-type that xcode.py interprets
645 # to create a single-file mh_bundle. 646 # to create a single-file mh_bundle.
646 _types = { 647 _types = {
647 'executable': 'com.apple.product-type.tool', 648 'executable': 'com.apple.product-type.tool',
648 'loadable_module': 'com.googlecode.gyp.xcode.bundle', 649 'loadable_module': 'com.googlecode.gyp.xcode.bundle',
649 'shared_library': 'com.apple.product-type.library.dynamic', 650 'shared_library': 'com.apple.product-type.library.dynamic',
650 'static_library': 'com.apple.product-type.library.static', 651 'static_library': 'com.apple.product-type.library.static',
651 'executable+bundle': 'com.apple.product-type.application', 652 'executable+bundle': 'com.apple.product-type.application',
652 'loadable_module+bundle': 'com.apple.product-type.bundle', 653 'loadable_module+bundle': 'com.apple.product-type.bundle',
653 'loadable_module+xctest': 'com.apple.product-type.bundle.unit-test', 654 'loadable_module+xctest': 'com.apple.product-type.bundle.unit-test',
654 'shared_library+bundle': 'com.apple.product-type.framework', 655 'shared_library+bundle': 'com.apple.product-type.framework',
656 'executable+extension+bundle': 'com.apple.product-type.app-extension',
655 } 657 }
656 658
657 target_properties = { 659 target_properties = {
658 'buildConfigurationList': xccl, 660 'buildConfigurationList': xccl,
659 'name': target_name, 661 'name': target_name,
660 } 662 }
661 663
662 type = spec['type'] 664 type = spec['type']
663 is_xctest = int(spec.get('mac_xctest_bundle', 0)) 665 is_xctest = int(spec.get('mac_xctest_bundle', 0))
664 is_bundle = int(spec.get('mac_bundle', 0)) or is_xctest 666 is_bundle = int(spec.get('mac_bundle', 0)) or is_xctest
667 is_extension = int(spec.get('ios_app_extension', 0))
665 if type != 'none': 668 if type != 'none':
666 type_bundle_key = type 669 type_bundle_key = type
667 if is_xctest: 670 if is_xctest:
668 type_bundle_key += '+xctest' 671 type_bundle_key += '+xctest'
669 assert type == 'loadable_module', ( 672 assert type == 'loadable_module', (
670 'mac_xctest_bundle targets must have type loadable_module ' 673 'mac_xctest_bundle targets must have type loadable_module '
671 '(target %s)' % target_name) 674 '(target %s)' % target_name)
675 elif is_extension:
676 assert is_bundle, ('ios_app_extension flag requires mac_bundle '
677 '(target %s)' % target_name)
678 type_bundle_key += '+extension+bundle'
672 elif is_bundle: 679 elif is_bundle:
673 type_bundle_key += '+bundle' 680 type_bundle_key += '+bundle'
674 681
675 xctarget_type = gyp.xcodeproj_file.PBXNativeTarget 682 xctarget_type = gyp.xcodeproj_file.PBXNativeTarget
676 try: 683 try:
677 target_properties['productType'] = _types[type_bundle_key] 684 target_properties['productType'] = _types[type_bundle_key]
678 except KeyError, e: 685 except KeyError, e:
679 gyp.common.ExceptionAppend(e, "-- unknown product type while " 686 gyp.common.ExceptionAppend(e, "-- unknown product type while "
680 "writing target %s" % target_name) 687 "writing target %s" % target_name)
681 raise 688 raise
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
1227 1234
1228 for build_file in build_files: 1235 for build_file in build_files:
1229 xcode_projects[build_file].Finalize1(xcode_targets, serialize_all_tests) 1236 xcode_projects[build_file].Finalize1(xcode_targets, serialize_all_tests)
1230 1237
1231 for build_file in build_files: 1238 for build_file in build_files:
1232 xcode_projects[build_file].Finalize2(xcode_targets, 1239 xcode_projects[build_file].Finalize2(xcode_targets,
1233 xcode_target_to_target_dict) 1240 xcode_target_to_target_dict)
1234 1241
1235 for build_file in build_files: 1242 for build_file in build_files:
1236 xcode_projects[build_file].Write() 1243 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