xcodeproj 0.8.0 → 0.8.1
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 +20 -2
- data/lib/xcodeproj/constants.rb +13 -0
- data/lib/xcodeproj/project/object/group.rb +12 -2
- data/lib/xcodeproj/project.rb +1 -1
- data/lib/xcodeproj.rb +1 -1
- metadata +66 -47
- checksums.yaml +0 -7
data/lib/xcodeproj/config.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'shellwords'
|
|
2
|
+
|
|
1
3
|
module Xcodeproj
|
|
2
4
|
|
|
3
5
|
# This class holds the data for a Xcode build settings file (xcconfig) and
|
|
@@ -136,12 +138,13 @@ module Xcodeproj
|
|
|
136
138
|
#
|
|
137
139
|
def merge!(xcconfig)
|
|
138
140
|
if xcconfig.is_a? Config
|
|
139
|
-
|
|
141
|
+
merge_attributes!(xcconfig.attributes)
|
|
140
142
|
@libraries.merge(xcconfig.libraries)
|
|
141
143
|
@frameworks.merge(xcconfig.frameworks)
|
|
142
144
|
@weak_frameworks.merge(xcconfig.weak_frameworks)
|
|
143
145
|
else
|
|
144
|
-
|
|
146
|
+
merge_attributes!(xcconfig.to_hash)
|
|
147
|
+
|
|
145
148
|
# Parse frameworks and libraries. Then remove them from the linker
|
|
146
149
|
# flags
|
|
147
150
|
flags = @attributes['OTHER_LDFLAGS']
|
|
@@ -225,6 +228,21 @@ module Xcodeproj
|
|
|
225
228
|
hash
|
|
226
229
|
end
|
|
227
230
|
|
|
231
|
+
# Merges the given attributes hash while ensuring values are not duplicated.
|
|
232
|
+
#
|
|
233
|
+
# @param [Hash] attributes
|
|
234
|
+
# The attributes hash to merge into @attributes.
|
|
235
|
+
#
|
|
236
|
+
# @return [void]
|
|
237
|
+
#
|
|
238
|
+
def merge_attributes!(attributes)
|
|
239
|
+
@attributes.merge!(attributes) do |_, v1, v2|
|
|
240
|
+
v1, v2 = v1.strip, v2.strip
|
|
241
|
+
existing = v1.strip.shellsplit
|
|
242
|
+
existing.include?(v2) ? v1 : "#{v1} #{v2}"
|
|
243
|
+
end
|
|
244
|
+
end
|
|
245
|
+
|
|
228
246
|
# Strips the comments from a line of an xcconfig string.
|
|
229
247
|
#
|
|
230
248
|
# @param [String] line
|
data/lib/xcodeproj/constants.rb
CHANGED
|
@@ -111,6 +111,8 @@ module Xcodeproj
|
|
|
111
111
|
'GCC_SYMBOLS_PRIVATE_EXTERN' => 'NO',
|
|
112
112
|
'GCC_OPTIMIZATION_LEVEL' => '0',
|
|
113
113
|
'COPY_PHASE_STRIP' => 'NO',
|
|
114
|
+
# TODO: enable after Xcode 4
|
|
115
|
+
# 'ONLY_ACTIVE_ARCH' => 'YES',
|
|
114
116
|
}.freeze,
|
|
115
117
|
:release => {
|
|
116
118
|
'OTHER_CFLAGS' => ['-DNS_BLOCK_ASSERTIONS=1', "$(inherited)"],
|
|
@@ -144,6 +146,17 @@ module Xcodeproj
|
|
|
144
146
|
}.freeze,
|
|
145
147
|
}.freeze
|
|
146
148
|
|
|
149
|
+
# @return [Hash] The default build settings for a new project.
|
|
150
|
+
#
|
|
151
|
+
PROJECT_DEFAULT_BUILD_SETTINGS = {
|
|
152
|
+
:release => {
|
|
153
|
+
}.freeze,
|
|
154
|
+
:debug => {
|
|
155
|
+
# TODO: enable after Xcode 4
|
|
156
|
+
# 'ONLY_ACTIVE_ARCH' => 'YES',
|
|
157
|
+
}.freeze,
|
|
158
|
+
}.freeze
|
|
159
|
+
|
|
147
160
|
# @return [Hash] The corresponding numeric value of each copy build phase
|
|
148
161
|
# destination.
|
|
149
162
|
#
|
|
@@ -109,8 +109,12 @@ module Xcodeproj
|
|
|
109
109
|
# Creates a new file reference with the given path and adds it to the
|
|
110
110
|
# group or to an optional subpath.
|
|
111
111
|
#
|
|
112
|
-
# @note
|
|
113
|
-
#
|
|
112
|
+
# @note The subpath is created if needed, similar to the UNIX command
|
|
113
|
+
# `mkdir -p`
|
|
114
|
+
#
|
|
115
|
+
# @note To closely match the Xcode behaviour the name attribute of
|
|
116
|
+
# the file reference is set only if the path of the file is not
|
|
117
|
+
# equal to the path of the group.
|
|
114
118
|
#
|
|
115
119
|
# @param [#to_s] path
|
|
116
120
|
# the file system path of the file.
|
|
@@ -128,6 +132,12 @@ module Xcodeproj
|
|
|
128
132
|
|
|
129
133
|
target = find_subpath(sub_group_path, true)
|
|
130
134
|
target.children << file
|
|
135
|
+
|
|
136
|
+
same_path_of_group = target.path == file.pathname.dirname.to_s
|
|
137
|
+
same_path_project = file.pathname.dirname.to_s == '.' && target.path.nil?
|
|
138
|
+
unless same_path_of_group || same_path_project
|
|
139
|
+
file.name = file.pathname.basename.to_s
|
|
140
|
+
end
|
|
131
141
|
file
|
|
132
142
|
end
|
|
133
143
|
|
data/lib/xcodeproj/project.rb
CHANGED
|
@@ -118,7 +118,7 @@ module Xcodeproj
|
|
|
118
118
|
%w| Release Debug |.each do |name|
|
|
119
119
|
build_configuration = new(XCBuildConfiguration)
|
|
120
120
|
build_configuration.name = name
|
|
121
|
-
build_configuration.build_settings =
|
|
121
|
+
build_configuration.build_settings = Constants::PROJECT_DEFAULT_BUILD_SETTINGS[name.downcase.to_sym].dup
|
|
122
122
|
config_list.build_configurations << build_configuration
|
|
123
123
|
end
|
|
124
124
|
|
data/lib/xcodeproj.rb
CHANGED
metadata
CHANGED
|
@@ -1,53 +1,62 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: xcodeproj
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
hash: 61
|
|
5
|
+
prerelease:
|
|
6
|
+
segments:
|
|
7
|
+
- 0
|
|
8
|
+
- 8
|
|
9
|
+
- 1
|
|
10
|
+
version: 0.8.1
|
|
5
11
|
platform: ruby
|
|
6
|
-
authors:
|
|
12
|
+
authors:
|
|
7
13
|
- Eloy Duran
|
|
8
14
|
autorequire:
|
|
9
15
|
bindir: bin
|
|
10
16
|
cert_chain: []
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
|
|
18
|
+
date: 2013-07-10 00:00:00 Z
|
|
19
|
+
dependencies:
|
|
20
|
+
- !ruby/object:Gem::Dependency
|
|
14
21
|
name: activesupport
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - ~>
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: 3.2.13
|
|
20
|
-
type: :runtime
|
|
21
22
|
prerelease: false
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
24
|
+
none: false
|
|
25
|
+
requirements:
|
|
24
26
|
- - ~>
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
27
|
+
- !ruby/object:Gem::Version
|
|
28
|
+
hash: 21
|
|
29
|
+
segments:
|
|
30
|
+
- 3
|
|
31
|
+
- 2
|
|
32
|
+
- 13
|
|
26
33
|
version: 3.2.13
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: colored
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - ~>
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '1.2'
|
|
34
34
|
type: :runtime
|
|
35
|
+
version_requirements: *id001
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
37
|
+
name: colored
|
|
35
38
|
prerelease: false
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
40
|
+
none: false
|
|
41
|
+
requirements:
|
|
38
42
|
- - ~>
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
44
|
+
hash: 11
|
|
45
|
+
segments:
|
|
46
|
+
- 1
|
|
47
|
+
- 2
|
|
48
|
+
version: "1.2"
|
|
49
|
+
type: :runtime
|
|
50
|
+
version_requirements: *id002
|
|
51
|
+
description: Xcodeproj lets you create and modify Xcode projects from Ruby. Script boring management tasks or build Xcode-friendly libraries. Also includes support for Xcode workspaces (.xcworkspace) and configuration files (.xcconfig).
|
|
44
52
|
email: eloy.de.enige@gmail.com
|
|
45
|
-
executables:
|
|
53
|
+
executables:
|
|
46
54
|
- xcodeproj
|
|
47
|
-
extensions:
|
|
55
|
+
extensions:
|
|
48
56
|
- ext/xcodeproj/extconf.rb
|
|
49
57
|
extra_rdoc_files: []
|
|
50
|
-
|
|
58
|
+
|
|
59
|
+
files:
|
|
51
60
|
- lib/xcodeproj/command/project_diff.rb
|
|
52
61
|
- lib/xcodeproj/command/show.rb
|
|
53
62
|
- lib/xcodeproj/command/target_diff.rb
|
|
@@ -83,29 +92,39 @@ files:
|
|
|
83
92
|
- LICENSE
|
|
84
93
|
- bin/xcodeproj
|
|
85
94
|
homepage: https://github.com/cocoapods/xcodeproj
|
|
86
|
-
licenses:
|
|
95
|
+
licenses:
|
|
87
96
|
- MIT
|
|
88
|
-
metadata: {}
|
|
89
97
|
post_install_message:
|
|
90
98
|
rdoc_options: []
|
|
91
|
-
|
|
99
|
+
|
|
100
|
+
require_paths:
|
|
92
101
|
- ext
|
|
93
102
|
- lib
|
|
94
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
104
|
+
none: false
|
|
105
|
+
requirements:
|
|
106
|
+
- - ">="
|
|
107
|
+
- !ruby/object:Gem::Version
|
|
108
|
+
hash: 3
|
|
109
|
+
segments:
|
|
110
|
+
- 0
|
|
111
|
+
version: "0"
|
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
|
+
none: false
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
hash: 3
|
|
118
|
+
segments:
|
|
119
|
+
- 0
|
|
120
|
+
version: "0"
|
|
104
121
|
requirements: []
|
|
122
|
+
|
|
105
123
|
rubyforge_project:
|
|
106
|
-
rubygems_version:
|
|
124
|
+
rubygems_version: 1.8.24
|
|
107
125
|
signing_key:
|
|
108
126
|
specification_version: 3
|
|
109
127
|
summary: Create and modify Xcode projects from Ruby.
|
|
110
128
|
test_files: []
|
|
129
|
+
|
|
111
130
|
has_rdoc:
|
checksums.yaml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
SHA1:
|
|
3
|
-
metadata.gz: 97d8e4a22727dedcf6fdb5519a3e6fd750f460cd
|
|
4
|
-
data.tar.gz: 58f5c265c6296a779af208542a4b653a1d1b2a5e
|
|
5
|
-
SHA512:
|
|
6
|
-
metadata.gz: 7413a13df962717a8563f8e5c5fd1247d159afd52cb8ae96e268f93a74e1baf22e0250741f7434c8619181ff4263aed1724139d642fe70c171990fcf7ad6e732
|
|
7
|
-
data.tar.gz: 8eb8612c99b268da6da7aab894719b1feabdae35d647a970cf67b52df74dfa3f3bcc611716df54416af0fd272a64609a3a407a3f7e889d3fbf59da50b7c7ba72
|