xcodeproj 0.12.0 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 758b380d1a1b1be6189e2aaad39dd5b5e8bc21a8
|
4
|
+
data.tar.gz: dbff6c8152af77a624432d9f63c19452146e8db3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5ccf1647397824c714e6a089563864687f2a9d6941981f226e3e699d4cf88e400d5cb922b24856129158ff298d370d00e49112523381beaf9245951fdc75461
|
7
|
+
data.tar.gz: e18c4f8367e934160bba7b4264f9f2a4599acf81e735cf59052377982d907070b52a32c913ad9aaa3ca64c943e4f14b17bf839b253bf0e624df8f3596b9790ee
|
@@ -41,12 +41,6 @@ module Xcodeproj
|
|
41
41
|
{ name => data }
|
42
42
|
end
|
43
43
|
|
44
|
-
|
45
|
-
public
|
46
|
-
|
47
|
-
# @!group Helpers
|
48
|
-
# --------------------------------------------------------------------#
|
49
|
-
|
50
44
|
# Sorts the build settings. Valid only in Ruby > 1.9.2 because in
|
51
45
|
# previous versions the hash are not sorted.
|
52
46
|
#
|
@@ -48,7 +48,7 @@ module Xcodeproj
|
|
48
48
|
# the given name.
|
49
49
|
#
|
50
50
|
# @param [String] build_configuration_name
|
51
|
-
#
|
51
|
+
# The name of the build configuration.
|
52
52
|
#
|
53
53
|
# @return [Hash {String=>String}] the build settings
|
54
54
|
#
|
@@ -58,6 +58,40 @@ module Xcodeproj
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
|
+
# Gets the value for the given build setting in all the build
|
62
|
+
# configurations.
|
63
|
+
#
|
64
|
+
# @param [String] key
|
65
|
+
# the key of the build setting.
|
66
|
+
#
|
67
|
+
# @return [Hash{String => String}] The value of the build setting
|
68
|
+
# grouped by the name of the build configuration.
|
69
|
+
#
|
70
|
+
def get_setting(key)
|
71
|
+
result = {}
|
72
|
+
build_configurations.each do |bc|
|
73
|
+
result[bc.name] = bc.build_settings[key]
|
74
|
+
end
|
75
|
+
result
|
76
|
+
end
|
77
|
+
|
78
|
+
# Sets the given value for the build setting associated with the given
|
79
|
+
# key across all the build configurations.
|
80
|
+
#
|
81
|
+
# @param [String] key
|
82
|
+
# the key of the build setting.
|
83
|
+
#
|
84
|
+
# @param [String] value
|
85
|
+
# the value for the build setting.
|
86
|
+
#
|
87
|
+
# @return [void]
|
88
|
+
#
|
89
|
+
def set_setting(key, value)
|
90
|
+
build_configurations.each do |bc|
|
91
|
+
bc.build_settings[key] = value
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
61
95
|
#---------------------------------------------------------------------#
|
62
96
|
|
63
97
|
end
|
@@ -37,11 +37,51 @@ module Xcodeproj
|
|
37
37
|
# @!group Helpers
|
38
38
|
#--------------------------------------#
|
39
39
|
|
40
|
+
# Gets the value for the given build setting in all the build
|
41
|
+
# configurations or the value inheriting the value from the project
|
42
|
+
# ones if needed.
|
43
|
+
#
|
44
|
+
# @param [String] key
|
45
|
+
# the key of the build setting.
|
46
|
+
#
|
47
|
+
# @return [Hash{String => String}] The value of the build setting
|
48
|
+
# grouped by the name of the build configuration.
|
49
|
+
#
|
50
|
+
# TODO: Full support for this would require to take into account
|
51
|
+
# any associated xcconfig and the default values for the
|
52
|
+
# platform.
|
53
|
+
#
|
54
|
+
def resolved_build_setting(key)
|
55
|
+
target_settings = build_configuration_list.get_setting(key)
|
56
|
+
project_settings = project.build_configuration_list.get_setting(key)
|
57
|
+
target_settings.merge(project_settings) do |key, target_val, proj_val|
|
58
|
+
target_val || proj_val
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Gets the value for the given build setting, properly inherited if
|
63
|
+
# need, if shared across the build configurations.
|
64
|
+
#
|
65
|
+
# @param [String] key
|
66
|
+
# the key of the build setting.
|
67
|
+
#
|
68
|
+
# @raise If the build setting has multiple values.
|
69
|
+
#
|
70
|
+
# @return [String] The value of the build setting.
|
71
|
+
#
|
72
|
+
def common_resolved_build_setting(key)
|
73
|
+
values = resolved_build_setting(key).values.uniq
|
74
|
+
if values.count == 1
|
75
|
+
values.first
|
76
|
+
else
|
77
|
+
raise "Build setting `#{key}` has multiple values: `#{resolved_build_setting(key)}`"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
40
81
|
# @return [String] the SDK that the target should use.
|
41
82
|
#
|
42
83
|
def sdk
|
43
|
-
|
44
|
-
|| project.build_configurations.first.build_settings['SDKROOT']
|
84
|
+
common_resolved_build_setting('SDKROOT')
|
45
85
|
end
|
46
86
|
|
47
87
|
# @return [Symbol] the name of the platform of the target.
|
@@ -63,11 +103,9 @@ module Xcodeproj
|
|
63
103
|
#
|
64
104
|
def deployment_target
|
65
105
|
if platform_name == :ios
|
66
|
-
|
67
|
-
project.build_configurations.first.build_settings['IPHONEOS_DEPLOYMENT_TARGET']
|
106
|
+
common_resolved_build_setting('IPHONEOS_DEPLOYMENT_TARGET')
|
68
107
|
else
|
69
|
-
|
70
|
-
project.build_configurations.first.build_settings['MACOSX_DEPLOYMENT_TARGET']
|
108
|
+
common_resolved_build_setting('MACOSX_DEPLOYMENT_TARGET')
|
71
109
|
end
|
72
110
|
end
|
73
111
|
|
data/lib/xcodeproj/project.rb
CHANGED
@@ -495,6 +495,13 @@ module Xcodeproj
|
|
495
495
|
main_group['Frameworks'] || main_group.new_group('Frameworks')
|
496
496
|
end
|
497
497
|
|
498
|
+
# @return [ObjectList<XCConfigurationList>] The build configuration list of
|
499
|
+
# the project.
|
500
|
+
#
|
501
|
+
def build_configuration_list
|
502
|
+
root_object.build_configuration_list
|
503
|
+
end
|
504
|
+
|
498
505
|
# @return [ObjectList<XCBuildConfiguration>] A list of project wide
|
499
506
|
# build configurations.
|
500
507
|
#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcodeproj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Duran
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|