xcodeproj 0.2.3 → 0.3.0
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.
- data/lib/xcodeproj/config.rb +7 -2
- data/lib/xcodeproj/project/object/group.rb +20 -0
- data/lib/xcodeproj.rb +1 -1
- metadata +7 -13
data/lib/xcodeproj/config.rb
CHANGED
@@ -7,12 +7,12 @@ module Xcodeproj
|
|
7
7
|
# @param [Hash, File, String] xcconfig_hash_or_file Initial data.
|
8
8
|
require 'set'
|
9
9
|
|
10
|
-
attr_accessor :attributes, :frameworks ,:libraries
|
10
|
+
attr_accessor :attributes, :frameworks, :weak_frameworks ,:libraries
|
11
11
|
|
12
12
|
def initialize(xcconfig_hash_or_file = {})
|
13
13
|
@attributes = {}
|
14
14
|
@includes = []
|
15
|
-
@frameworks, @libraries = Set.new, Set.new
|
15
|
+
@frameworks, @weak_frameworks, @libraries = Set.new, Set.new, Set.new
|
16
16
|
merge!(extract_hash(xcconfig_hash_or_file))
|
17
17
|
end
|
18
18
|
|
@@ -23,6 +23,7 @@ module Xcodeproj
|
|
23
23
|
flags = flags.dup.strip
|
24
24
|
flags << libraries.to_a.sort.reduce('') {| memo, l | memo << " -l#{l}" }
|
25
25
|
flags << frameworks.to_a.sort.reduce('') {| memo, f | memo << " -framework #{f}" }
|
26
|
+
flags << weak_frameworks.to_a.sort.reduce('') {| memo, f | memo << " -weak_framework #{f}" }
|
26
27
|
hash['OTHER_LDFLAGS'] = flags.strip
|
27
28
|
hash.delete('OTHER_LDFLAGS') if flags.strip.empty?
|
28
29
|
hash
|
@@ -63,6 +64,7 @@ module Xcodeproj
|
|
63
64
|
@attributes.merge!(xcconfig.attributes) { |key, v1, v2| "#{v1} #{v2}" }
|
64
65
|
@libraries.merge xcconfig.libraries
|
65
66
|
@frameworks.merge xcconfig.frameworks
|
67
|
+
@weak_frameworks.merge xcconfig.weak_frameworks
|
66
68
|
else
|
67
69
|
@attributes.merge!(xcconfig.to_hash) { |key, v1, v2| "#{v1} #{v2}" }
|
68
70
|
# Parse frameworks and libraries. Then remove the from the linker flags
|
@@ -70,12 +72,15 @@ module Xcodeproj
|
|
70
72
|
return unless flags
|
71
73
|
|
72
74
|
frameworks = flags.scan(/-framework\s+([^\s]+)/).map { |m| m[0] }
|
75
|
+
weak_frameworks = flags.scan(/-weak_framework\s+([^\s]+)/).map { |m| m[0] }
|
73
76
|
libraries = flags.scan(/-l ?([^\s]+)/).map { |m| m[0] }
|
74
77
|
@frameworks.merge frameworks
|
78
|
+
@weak_frameworks.merge weak_frameworks
|
75
79
|
@libraries.merge libraries
|
76
80
|
|
77
81
|
new_flags = flags.dup
|
78
82
|
frameworks.each {|f| new_flags.gsub!("-framework #{f}", "") }
|
83
|
+
weak_frameworks.each {|f| new_flags.gsub!("-weak_framework #{f}", "") }
|
79
84
|
libraries.each {|l| new_flags.gsub!("-l#{l}", ""); new_flags.gsub!("-l #{l}", "") }
|
80
85
|
@attributes['OTHER_LDFLAGS'] = new_flags.gsub("\w*", ' ').strip
|
81
86
|
end
|
@@ -92,11 +92,31 @@ module Xcodeproj
|
|
92
92
|
groups.new("name" => name)
|
93
93
|
end
|
94
94
|
|
95
|
+
def version_groups
|
96
|
+
children.list_by_class(XCVersionGroup)
|
97
|
+
end
|
98
|
+
|
95
99
|
def <<(child)
|
96
100
|
children << child
|
97
101
|
end
|
98
102
|
end
|
99
103
|
|
104
|
+
class XCVersionGroup < PBXGroup
|
105
|
+
|
106
|
+
attribute :version_group_type
|
107
|
+
attribute :current_version
|
108
|
+
|
109
|
+
def self.new_xcdatamodel_group(project, xcdatamodel_path)
|
110
|
+
group = new(project, nil, 'versionGroupType' => 'wrapper.xcdatamodel')
|
111
|
+
file = group.files.new(
|
112
|
+
'path' => xcdatamodel_path.sub(/xcdatamodeld$/, 'xcdatamodel'),
|
113
|
+
'lastKnownFileType' => 'wrapper.xcdatamodel'
|
114
|
+
)
|
115
|
+
group.current_version = file.uuid
|
116
|
+
group
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
100
120
|
end
|
101
121
|
end
|
102
122
|
end
|
data/lib/xcodeproj.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcodeproj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
|
-
- 2
|
9
7
|
- 3
|
10
|
-
|
8
|
+
- 0
|
9
|
+
version: 0.3.0
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Eloy Duran
|
@@ -15,17 +14,16 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2012-07-
|
17
|
+
date: 2012-07-14 00:00:00 +02:00
|
18
|
+
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: activesupport
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
-
none: false
|
25
24
|
requirements:
|
26
25
|
- - ~>
|
27
26
|
- !ruby/object:Gem::Version
|
28
|
-
hash: 3
|
29
27
|
segments:
|
30
28
|
- 3
|
31
29
|
- 2
|
@@ -61,6 +59,7 @@ files:
|
|
61
59
|
- ext/xcodeproj/xcodeproj_ext.c
|
62
60
|
- README.md
|
63
61
|
- LICENSE
|
62
|
+
has_rdoc: true
|
64
63
|
homepage: https://github.com/cocoapods/xcodeproj
|
65
64
|
licenses:
|
66
65
|
- MIT
|
@@ -71,30 +70,25 @@ require_paths:
|
|
71
70
|
- ext
|
72
71
|
- lib
|
73
72
|
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
73
|
requirements:
|
76
74
|
- - ">="
|
77
75
|
- !ruby/object:Gem::Version
|
78
|
-
hash: 3
|
79
76
|
segments:
|
80
77
|
- 0
|
81
78
|
version: "0"
|
82
79
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
80
|
requirements:
|
85
81
|
- - ">="
|
86
82
|
- !ruby/object:Gem::Version
|
87
|
-
hash: 3
|
88
83
|
segments:
|
89
84
|
- 0
|
90
85
|
version: "0"
|
91
86
|
requirements: []
|
92
87
|
|
93
88
|
rubyforge_project:
|
94
|
-
rubygems_version: 1.
|
89
|
+
rubygems_version: 1.3.6
|
95
90
|
signing_key:
|
96
91
|
specification_version: 3
|
97
92
|
summary: Create and modify Xcode projects from Ruby.
|
98
93
|
test_files: []
|
99
94
|
|
100
|
-
has_rdoc:
|