Skip to content

Commit 823cb65

Browse files
authored
Merge pull request #546 from CocoaPods/seg-objc-weak-only-new-deployment-targets
Disable weak refs for old deployment targets
2 parents a95a8b8 + a740b8b commit 823cb65

File tree

5 files changed

+29
-8
lines changed

5 files changed

+29
-8
lines changed

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88

99
##### Bug Fixes
1010

11-
* None.
11+
* Disable Objective-C weak references by default for new targets
12+
whose deployment targets do not support them.
13+
[Samuel Giddins](https://github.com/segiddins)
14+
[#544](https://github.com/CocoaPods/Xcodeproj/issues/544)
1215

1316

1417
## 1.5.5 (2018-02-02)

Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ PATH
1616
specs:
1717
xcodeproj (1.5.5)
1818
CFPropertyList (~> 2.3.3)
19-
atomos (~> 0.1.0)
19+
atomos (~> 0.1.2)
2020
claide (>= 1.0.2, < 2.0)
2121
colored2 (~> 3.1)
2222
nanaimo (~> 0.2.3)
@@ -28,7 +28,7 @@ GEM
2828
addressable (2.5.1)
2929
public_suffix (~> 2.0, >= 2.0.2)
3030
ast (2.3.0)
31-
atomos (0.1.1)
31+
atomos (0.1.2)
3232
bacon (1.2.0)
3333
claide-plugins (0.9.2)
3434
cork

lib/xcodeproj/project/project_helper.rb

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -270,10 +270,16 @@ def self.common_build_settings(type, platform = nil, deployment_target = nil, ta
270270

271271
if deployment_target
272272
case platform
273-
when :ios then settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
274-
when :osx then settings['MACOSX_DEPLOYMENT_TARGET'] = deployment_target
275-
when :tvos then settings['TVOS_DEPLOYMENT_TARGET'] = deployment_target
276-
when :watchos then settings['WATCHOS_DEPLOYMENT_TARGET'] = deployment_target
273+
when :ios
274+
settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
275+
settings['CLANG_ENABLE_OBJC_WEAK'] = 'NO' if deployment_target < '5'
276+
when :osx
277+
settings['MACOSX_DEPLOYMENT_TARGET'] = deployment_target
278+
settings['CLANG_ENABLE_OBJC_WEAK'] = 'NO' if deployment_target < '10.7'
279+
when :tvos
280+
settings['TVOS_DEPLOYMENT_TARGET'] = deployment_target
281+
when :watchos
282+
settings['WATCHOS_DEPLOYMENT_TARGET'] = deployment_target
277283
end
278284
end
279285

spec/project/project_helper_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,18 @@ module ProjectSpecs
175175
settings_1['SDKROOT'].object_id.should.not == settings_2['SDKROOT'].object_id
176176
settings_1['SDKROOT'][1].object_id.should.not == settings_2['SDKROOT'][1].object_id
177177
end
178+
179+
it 'sets CLANG_ENABLE_OBJC_WEAK=NO for old deployment targets' do
180+
settings = @helper.common_build_settings(:release, :osx, '10.6', Xcodeproj::Constants::PRODUCT_TYPE_UTI[:bundle])
181+
settings['CLANG_ENABLE_OBJC_WEAK'].should == 'NO'
182+
settings = @helper.common_build_settings(:release, :osx, '10.7', Xcodeproj::Constants::PRODUCT_TYPE_UTI[:bundle])
183+
settings.should.not.key 'CLANG_ENABLE_OBJC_WEAK'
184+
185+
settings = @helper.common_build_settings(:release, :ios, '4.3', Xcodeproj::Constants::PRODUCT_TYPE_UTI[:bundle])
186+
settings['CLANG_ENABLE_OBJC_WEAK'].should == 'NO'
187+
settings = @helper.common_build_settings(:release, :ios, '5', Xcodeproj::Constants::PRODUCT_TYPE_UTI[:bundle])
188+
settings.should.not.key 'CLANG_ENABLE_OBJC_WEAK'
189+
end
178190
end
179191

180192
#----------------------------------------#

xcodeproj.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
2121
s.executables = %w(xcodeproj)
2222
s.require_paths = %w(lib)
2323

24-
s.add_runtime_dependency 'atomos', '~> 0.1.0'
24+
s.add_runtime_dependency 'atomos', '~> 0.1.2'
2525
s.add_runtime_dependency 'CFPropertyList', '~> 2.3.3'
2626
s.add_runtime_dependency 'claide', '>= 1.0.2', '< 2.0'
2727
s.add_runtime_dependency 'colored2', '~> 3.1'

0 commit comments

Comments
 (0)