cocoapods 0.22.3 → 0.23.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +54 -0
- data/lib/cocoapods.rb +0 -3
- data/lib/cocoapods/command/podfile_info.rb +13 -11
- data/lib/cocoapods/command/push.rb +2 -2
- data/lib/cocoapods/command/repo.rb +2 -2
- data/lib/cocoapods/command/setup.rb +25 -0
- data/lib/cocoapods/command/spec.rb +86 -58
- data/lib/cocoapods/config.rb +9 -2
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/copy_resources_script.rb +9 -5
- data/lib/cocoapods/generator/xcconfig.rb +5 -117
- data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +42 -6
- data/lib/cocoapods/generator/xcconfig/private_pod_xcconfig.rb +28 -6
- data/lib/cocoapods/generator/xcconfig/public_pod_xcconfig.rb +25 -3
- data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +124 -0
- data/lib/cocoapods/installer.rb +3 -20
- data/lib/cocoapods/installer/file_references_installer.rb +49 -17
- data/lib/cocoapods/installer/pod_source_installer.rb +28 -4
- data/lib/cocoapods/installer/target_installer/aggregate_target_installer.rb +6 -2
- data/lib/cocoapods/installer/target_installer/pod_target_installer.rb +33 -4
- data/lib/cocoapods/project.rb +55 -22
- data/lib/cocoapods/sandbox/file_accessor.rb +42 -8
- data/lib/cocoapods/user_interface.rb +1 -0
- metadata +153 -182
@@ -70,7 +70,7 @@ module Pod
|
|
70
70
|
def script
|
71
71
|
script = install_resources_function
|
72
72
|
resources.each do |resource|
|
73
|
-
script +=
|
73
|
+
script += %Q[install_resource "#{resource}"\n]
|
74
74
|
end
|
75
75
|
script += RSYNC_CALL
|
76
76
|
script
|
@@ -102,12 +102,16 @@ install_resource()
|
|
102
102
|
cp -fpR "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
103
103
|
;;
|
104
104
|
*.xcdatamodel)
|
105
|
-
echo xcrun momc
|
106
|
-
xcrun momc
|
105
|
+
echo "xcrun momc \\"${PODS_ROOT}/$1\\" \\"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\\""
|
106
|
+
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom"
|
107
107
|
;;
|
108
108
|
*.xcdatamodeld)
|
109
|
-
echo
|
110
|
-
xcrun momc
|
109
|
+
echo "xcrun momc \\"${PODS_ROOT}/$1\\" \\"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\\""
|
110
|
+
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd"
|
111
|
+
;;
|
112
|
+
/*)
|
113
|
+
echo "$1"
|
114
|
+
echo "$1" >> "$RESOURCES_TO_COPY"
|
111
115
|
;;
|
112
116
|
*)
|
113
117
|
echo "${PODS_ROOT}/$1"
|
@@ -5,124 +5,12 @@ module Pod
|
|
5
5
|
# for each Pod and for each Pod target definition. The aggregates the
|
6
6
|
# configurations of the Pods and define target specific settings.
|
7
7
|
#
|
8
|
-
|
8
|
+
module XCConfig
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
# @param [Target] target @see target
|
15
|
-
#
|
16
|
-
def initialize(target)
|
17
|
-
@target = target
|
18
|
-
end
|
19
|
-
|
20
|
-
# @return [Sandbox] the sandbox of this target.
|
21
|
-
#
|
22
|
-
def sandbox
|
23
|
-
target.sandbox
|
24
|
-
end
|
25
|
-
|
26
|
-
# @return [Xcodeproj::Config] The generated xcconfig.
|
27
|
-
#
|
28
|
-
attr_reader :xcconfig
|
29
|
-
|
30
|
-
# Generates and saves the xcconfig to the given path.
|
31
|
-
#
|
32
|
-
# @param [Pathname] path
|
33
|
-
# the path where the prefix header should be stored.
|
34
|
-
#
|
35
|
-
# @return [void]
|
36
|
-
#
|
37
|
-
def save_as(path)
|
38
|
-
generate.save_as(path)
|
39
|
-
end
|
40
|
-
|
41
|
-
#-----------------------------------------------------------------------#
|
42
|
-
|
43
|
-
# @!group Private helpers.
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
# @return [String] the default linker flags. `-ObjC` is always included
|
48
|
-
# while `-fobjc-arc` is included only if requested in the
|
49
|
-
# Podfile.
|
50
|
-
#
|
51
|
-
def default_ld_flags
|
52
|
-
ld_flags = '-ObjC'
|
53
|
-
if target.target_definition.podfile.set_arc_compatibility_flag? and
|
54
|
-
target.spec_consumers.any? { |consumer| consumer.requires_arc? }
|
55
|
-
ld_flags << ' -fobjc-arc'
|
56
|
-
end
|
57
|
-
ld_flags
|
58
|
-
end
|
59
|
-
|
60
|
-
# Converts an array of strings to a single string where the each string
|
61
|
-
# is surrounded by double quotes and separated by a space. Used to
|
62
|
-
# represent strings in a xcconfig file.
|
63
|
-
#
|
64
|
-
# @param [Array<String>] strings
|
65
|
-
# a list of strings.
|
66
|
-
#
|
67
|
-
# @return [String] the resulting string.
|
68
|
-
#
|
69
|
-
def quote(strings)
|
70
|
-
strings.sort.map { |s| %W|"#{s}"| }.join(" ")
|
71
|
-
end
|
72
|
-
|
73
|
-
# Configures the given Xcconfig according to the build settings of the
|
74
|
-
# given Specification.
|
75
|
-
#
|
76
|
-
# @param [Specification::Consumer] consumer
|
77
|
-
# The consumer of the specification.
|
78
|
-
#
|
79
|
-
# @param [Xcodeproj::Config] xcconfig
|
80
|
-
# The xcconfig to edit.
|
81
|
-
#
|
82
|
-
def add_spec_build_settings_to_xcconfig(consumer, xcconfig)
|
83
|
-
xcconfig.merge!(consumer.xcconfig)
|
84
|
-
xcconfig.libraries.merge(consumer.libraries)
|
85
|
-
xcconfig.frameworks.merge(consumer.frameworks)
|
86
|
-
xcconfig.weak_frameworks.merge(consumer.weak_frameworks)
|
87
|
-
add_developers_frameworks_if_needed(consumer, xcconfig)
|
88
|
-
end
|
89
|
-
|
90
|
-
# @return [Array<String>] The search paths for the developer frameworks.
|
91
|
-
#
|
92
|
-
# @todo Inheritance should be properly handled in Xcconfigs.
|
93
|
-
#
|
94
|
-
DEVELOPER_FRAMEWORKS_SEARCH_PATHS = [
|
95
|
-
'$(inherited)',
|
96
|
-
'"$(SDKROOT)/Developer/Library/Frameworks"',
|
97
|
-
'"$(DEVELOPER_LIBRARY_DIR)/Frameworks"'
|
98
|
-
]
|
99
|
-
|
100
|
-
# Adds the search paths of the developer frameworks to the specification
|
101
|
-
# if needed. This is done because the `SenTestingKit` requires them and
|
102
|
-
# adding them to each specification which requires it is repetitive and
|
103
|
-
# error prone.
|
104
|
-
#
|
105
|
-
# @param [Specification::Consumer] consumer
|
106
|
-
# The consumer of the specification.
|
107
|
-
#
|
108
|
-
# @param [Xcodeproj::Config] xcconfig
|
109
|
-
# The xcconfig to edit.
|
110
|
-
#
|
111
|
-
# @return [void]
|
112
|
-
#
|
113
|
-
def add_developers_frameworks_if_needed(consumer, xcconfig)
|
114
|
-
if xcconfig.frameworks.include?('SenTestingKit')
|
115
|
-
search_paths = xcconfig.attributes['FRAMEWORK_SEARCH_PATHS'] ||= ''
|
116
|
-
DEVELOPER_FRAMEWORKS_SEARCH_PATHS.each do |search_path|
|
117
|
-
unless search_paths.include?(search_path)
|
118
|
-
search_paths << ' ' unless search_paths.empty?
|
119
|
-
search_paths << search_path
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
#-----------------------------------------------------------------------#
|
10
|
+
autoload :AggregateXCConfig, 'cocoapods/generator/xcconfig/aggregate_xcconfig'
|
11
|
+
autoload :PublicPodXCConfig, 'cocoapods/generator/xcconfig/public_pod_xcconfig'
|
12
|
+
autoload :PrivatePodXCConfig, 'cocoapods/generator/xcconfig/private_pod_xcconfig'
|
13
|
+
autoload :XCConfigHelper, 'cocoapods/generator/xcconfig/xcconfig_helper'
|
126
14
|
|
127
15
|
end
|
128
16
|
end
|
@@ -1,9 +1,35 @@
|
|
1
1
|
module Pod
|
2
2
|
module Generator
|
3
|
+
module XCConfig
|
3
4
|
|
4
5
|
# Generates the xcconfigs for the aggregate targets.
|
5
6
|
#
|
6
|
-
class AggregateXCConfig
|
7
|
+
class AggregateXCConfig
|
8
|
+
|
9
|
+
# @return [Target] the target represented by this xcconfig.
|
10
|
+
#
|
11
|
+
attr_reader :target
|
12
|
+
|
13
|
+
# @param [Target] target @see target
|
14
|
+
#
|
15
|
+
def initialize(target)
|
16
|
+
@target = target
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [Xcodeproj::Config] The generated xcconfig.
|
20
|
+
#
|
21
|
+
attr_reader :xcconfig
|
22
|
+
|
23
|
+
# Generates and saves the xcconfig to the given path.
|
24
|
+
#
|
25
|
+
# @param [Pathname] path
|
26
|
+
# the path where the prefix header should be stored.
|
27
|
+
#
|
28
|
+
# @return [void]
|
29
|
+
#
|
30
|
+
def save_as(path)
|
31
|
+
generate.save_as(path)
|
32
|
+
end
|
7
33
|
|
8
34
|
# Generates the xcconfig.
|
9
35
|
#
|
@@ -12,19 +38,28 @@ module Pod
|
|
12
38
|
# Each namespaced configuration value is merged into the Pod
|
13
39
|
# xcconfig file.
|
14
40
|
#
|
41
|
+
# @todo This doesn't include the specs xcconfigs anymore and now the
|
42
|
+
# logic is duplicated.
|
43
|
+
#
|
15
44
|
# @return [Xcodeproj::Config]
|
16
45
|
#
|
17
46
|
def generate
|
18
47
|
@xcconfig = Xcodeproj::Config.new({
|
19
|
-
'OTHER_LDFLAGS'
|
20
|
-
'HEADER_SEARCH_PATHS'
|
21
|
-
'PODS_ROOT'
|
48
|
+
'OTHER_LDFLAGS' => XCConfigHelper.default_ld_flags(target),
|
49
|
+
'HEADER_SEARCH_PATHS' => XCConfigHelper.quote(target.sandbox.public_headers.search_paths),
|
50
|
+
'PODS_ROOT' => target.relative_pods_root,
|
22
51
|
'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1',
|
23
52
|
})
|
24
53
|
|
25
54
|
target.pod_targets.each do |pod_target|
|
26
|
-
pod_target.
|
27
|
-
add_spec_build_settings_to_xcconfig(
|
55
|
+
pod_target.file_accessors.each do |file_accessor|
|
56
|
+
XCConfigHelper.add_spec_build_settings_to_xcconfig(file_accessor.spec_consumer, @xcconfig)
|
57
|
+
file_accessor.vendored_frameworks.each do |vendored_framework|
|
58
|
+
XCConfigHelper.add_framework_build_settings(vendored_framework, @xcconfig, target.sandbox.root)
|
59
|
+
end
|
60
|
+
file_accessor.vendored_libraries.each do |vendored_library|
|
61
|
+
XCConfigHelper.add_library_build_settings(vendored_library, @xcconfig, target.sandbox.root)
|
62
|
+
end
|
28
63
|
end
|
29
64
|
end
|
30
65
|
|
@@ -42,3 +77,4 @@ module Pod
|
|
42
77
|
end
|
43
78
|
end
|
44
79
|
end
|
80
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
module Pod
|
2
2
|
module Generator
|
3
|
+
module XCConfig
|
3
4
|
|
4
5
|
# Generates the private xcconfigs for the pod targets.
|
5
6
|
#
|
@@ -7,7 +8,11 @@ module Pod
|
|
7
8
|
# values of the public namespaced xcconfig with the default private
|
8
9
|
# configuration values required by CocoaPods.
|
9
10
|
#
|
10
|
-
class PrivatePodXCConfig
|
11
|
+
class PrivatePodXCConfig
|
12
|
+
|
13
|
+
# @return [Target] the target represented by this xcconfig.
|
14
|
+
#
|
15
|
+
attr_reader :target
|
11
16
|
|
12
17
|
# @return [Xcodeproj::Config] The public xcconfig which this one will
|
13
18
|
# use.
|
@@ -18,21 +23,37 @@ module Pod
|
|
18
23
|
# @param [Xcodeproj::Config] public_xcconfig @see public_xcconfig
|
19
24
|
#
|
20
25
|
def initialize(target, public_xcconfig)
|
21
|
-
|
26
|
+
@target = target
|
22
27
|
@public_xcconfig = public_xcconfig
|
23
28
|
end
|
24
29
|
|
30
|
+
# @return [Xcodeproj::Config] The generated xcconfig.
|
31
|
+
#
|
32
|
+
attr_reader :xcconfig
|
33
|
+
|
34
|
+
# Generates and saves the xcconfig to the given path.
|
35
|
+
#
|
36
|
+
# @param [Pathname] path
|
37
|
+
# the path where the prefix header should be stored.
|
38
|
+
#
|
39
|
+
# @return [void]
|
40
|
+
#
|
41
|
+
def save_as(path)
|
42
|
+
generate.save_as(path)
|
43
|
+
end
|
44
|
+
|
25
45
|
# Generates the xcconfig.
|
26
46
|
#
|
27
47
|
# @return [Xcodeproj::Config]
|
28
48
|
#
|
29
49
|
def generate
|
50
|
+
search_pahts = target.build_headers.search_paths.concat(target.sandbox.public_headers.search_paths)
|
30
51
|
config = {
|
31
|
-
'OTHER_LDFLAGS'
|
32
|
-
'PODS_ROOT'
|
33
|
-
'HEADER_SEARCH_PATHS'
|
52
|
+
'OTHER_LDFLAGS' => XCConfigHelper.default_ld_flags(target),
|
53
|
+
'PODS_ROOT' => '${SRCROOT}',
|
54
|
+
'HEADER_SEARCH_PATHS' => XCConfigHelper.quote(search_pahts),
|
34
55
|
'GCC_PREPROCESSOR_DEFINITIONS' => 'COCOAPODS=1',
|
35
|
-
# 'USE_HEADERMAP'
|
56
|
+
# 'USE_HEADERMAP' => 'NO'
|
36
57
|
}
|
37
58
|
|
38
59
|
xcconfig_hash = add_xcconfig_namespaced_keys(public_xcconfig.to_hash, config, target.xcconfig_prefix)
|
@@ -93,3 +114,4 @@ module Pod
|
|
93
114
|
end
|
94
115
|
end
|
95
116
|
end
|
117
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
module Pod
|
2
2
|
module Generator
|
3
|
+
module XCConfig
|
3
4
|
|
4
5
|
# Generates the public xcconfigs for the pod targets.
|
5
6
|
#
|
@@ -8,7 +9,21 @@ module Pod
|
|
8
9
|
# xcconfig includes the standard podspec defined values including
|
9
10
|
# libraries, frameworks, weak frameworks and xcconfig overrides.
|
10
11
|
#
|
11
|
-
class PublicPodXCConfig
|
12
|
+
class PublicPodXCConfig
|
13
|
+
|
14
|
+
# @return [Target] the target represented by this xcconfig.
|
15
|
+
#
|
16
|
+
attr_reader :target
|
17
|
+
|
18
|
+
# @param [Target] target @see target
|
19
|
+
#
|
20
|
+
def initialize(target)
|
21
|
+
@target = target
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Xcodeproj::Config] The generated xcconfig.
|
25
|
+
#
|
26
|
+
attr_reader :xcconfig
|
12
27
|
|
13
28
|
# Generates and saves the xcconfig to the given path.
|
14
29
|
#
|
@@ -27,8 +42,14 @@ module Pod
|
|
27
42
|
#
|
28
43
|
def generate
|
29
44
|
@xcconfig = Xcodeproj::Config.new
|
30
|
-
target.
|
31
|
-
add_spec_build_settings_to_xcconfig(
|
45
|
+
target.file_accessors.each do |file_accessor|
|
46
|
+
XCConfigHelper.add_spec_build_settings_to_xcconfig(file_accessor.spec_consumer, @xcconfig)
|
47
|
+
file_accessor.vendored_frameworks.each do |vendored_framework|
|
48
|
+
XCConfigHelper.add_framework_build_settings(vendored_framework, @xcconfig, target.sandbox.root)
|
49
|
+
end
|
50
|
+
file_accessor.vendored_libraries.each do |vendored_library|
|
51
|
+
XCConfigHelper.add_library_build_settings(vendored_library, @xcconfig, target.sandbox.root)
|
52
|
+
end
|
32
53
|
end
|
33
54
|
@xcconfig
|
34
55
|
end
|
@@ -38,3 +59,4 @@ module Pod
|
|
38
59
|
end
|
39
60
|
end
|
40
61
|
end
|
62
|
+
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
module Pod
|
2
|
+
module Generator
|
3
|
+
module XCConfig
|
4
|
+
|
5
|
+
# Stores the shared logic of the classes of the XCConfig module.
|
6
|
+
#
|
7
|
+
module XCConfigHelper
|
8
|
+
|
9
|
+
# Converts an array of strings to a single string where the each string
|
10
|
+
# is surrounded by double quotes and separated by a space. Used to
|
11
|
+
# represent strings in a xcconfig file.
|
12
|
+
#
|
13
|
+
# @param [Array<String>] strings
|
14
|
+
# a list of strings.
|
15
|
+
#
|
16
|
+
# @return [String] the resulting string.
|
17
|
+
#
|
18
|
+
def self.quote(strings)
|
19
|
+
strings.sort.map { |s| %W|"#{s}"| }.join(" ")
|
20
|
+
end
|
21
|
+
|
22
|
+
# @return [String] the default linker flags. `-ObjC` is always included
|
23
|
+
# while `-fobjc-arc` is included only if requested in the
|
24
|
+
# Podfile.
|
25
|
+
#
|
26
|
+
def self.default_ld_flags(target)
|
27
|
+
ld_flags = '-ObjC'
|
28
|
+
if target.target_definition.podfile.set_arc_compatibility_flag? and
|
29
|
+
target.spec_consumers.any? { |consumer| consumer.requires_arc? }
|
30
|
+
ld_flags << ' -fobjc-arc'
|
31
|
+
end
|
32
|
+
ld_flags
|
33
|
+
end
|
34
|
+
|
35
|
+
# Configures the given Xcconfig according to the build settings of the
|
36
|
+
# given Specification.
|
37
|
+
#
|
38
|
+
# @param [Specification::Consumer] consumer
|
39
|
+
# The consumer of the specification.
|
40
|
+
#
|
41
|
+
# @param [Xcodeproj::Config] xcconfig
|
42
|
+
# The xcconfig to edit.
|
43
|
+
#
|
44
|
+
def self.add_spec_build_settings_to_xcconfig(consumer, xcconfig)
|
45
|
+
xcconfig.merge!(consumer.xcconfig)
|
46
|
+
xcconfig.libraries.merge(consumer.libraries)
|
47
|
+
xcconfig.frameworks.merge(consumer.frameworks)
|
48
|
+
xcconfig.weak_frameworks.merge(consumer.weak_frameworks)
|
49
|
+
add_developers_frameworks_if_needed(xcconfig)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Configures the given Xcconfig with the the build settings for the given
|
53
|
+
# framework path.
|
54
|
+
#
|
55
|
+
# @param [Pathanme] framework_path
|
56
|
+
# The path of the framework.
|
57
|
+
#
|
58
|
+
# @param [Xcodeproj::Config] xcconfig
|
59
|
+
# The xcconfig to edit.
|
60
|
+
#
|
61
|
+
def self.add_framework_build_settings(framework_path, xcconfig, sandbox_root)
|
62
|
+
name = File.basename(framework_path, ".framework")
|
63
|
+
dirname = File.dirname(framework_path).sub(sandbox_root.to_s, '$(PODS_ROOT)')
|
64
|
+
build_settings = {
|
65
|
+
'OTHER_LDFLAGS' => "-framework #{name}",
|
66
|
+
'FRAMEWORK_SEARCH_PATHS' => quote([dirname])
|
67
|
+
}
|
68
|
+
xcconfig.merge!(build_settings)
|
69
|
+
end
|
70
|
+
|
71
|
+
# Configures the given Xcconfig with the the build settings for the given
|
72
|
+
# framework path.
|
73
|
+
#
|
74
|
+
# @param [Pathanme] framework_path
|
75
|
+
# The path of the framework.
|
76
|
+
#
|
77
|
+
# @param [Xcodeproj::Config] xcconfig
|
78
|
+
# The xcconfig to edit.
|
79
|
+
#
|
80
|
+
def self.add_library_build_settings(library_path, xcconfig, sandbox_root)
|
81
|
+
name = File.basename(library_path, ".a").sub(/\Alib/, '')
|
82
|
+
dirname = File.dirname(library_path).sub(sandbox_root.to_s, '$(PODS_ROOT)')
|
83
|
+
build_settings = {
|
84
|
+
'OTHER_LDFLAGS' => "-l#{name}",
|
85
|
+
'LIBRARY_SEARCH_PATHS' => quote([dirname])
|
86
|
+
}
|
87
|
+
xcconfig.merge!(build_settings)
|
88
|
+
end
|
89
|
+
|
90
|
+
# @return [Array<String>] The search paths for the developer frameworks.
|
91
|
+
#
|
92
|
+
DEVELOPER_FRAMEWORKS_SEARCH_PATHS = [
|
93
|
+
'$(inherited)',
|
94
|
+
'"$(SDKROOT)/Developer/Library/Frameworks"',
|
95
|
+
'"$(DEVELOPER_LIBRARY_DIR)/Frameworks"'
|
96
|
+
]
|
97
|
+
|
98
|
+
# Adds the search paths of the developer frameworks to the specification
|
99
|
+
# if needed. This is done because the `SenTestingKit` requires them and
|
100
|
+
# adding them to each specification which requires it is repetitive and
|
101
|
+
# error prone.
|
102
|
+
#
|
103
|
+
# @param [Xcodeproj::Config] xcconfig
|
104
|
+
# The xcconfig to edit.
|
105
|
+
#
|
106
|
+
# @return [void]
|
107
|
+
#
|
108
|
+
def self.add_developers_frameworks_if_needed(xcconfig)
|
109
|
+
if xcconfig.frameworks.include?('SenTestingKit')
|
110
|
+
search_paths = xcconfig.attributes['FRAMEWORK_SEARCH_PATHS'] ||= ''
|
111
|
+
DEVELOPER_FRAMEWORKS_SEARCH_PATHS.each do |search_path|
|
112
|
+
unless search_paths.include?(search_path)
|
113
|
+
search_paths << ' ' unless search_paths.empty?
|
114
|
+
search_paths << search_path
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
#---------------------------------------------------------------------#
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|