Class: Pod::Target::BuildSettings
- Inherits:
-
Object
- Object
- Pod::Target::BuildSettings
- Defined in:
- lib/cocoapods/target/build_settings.rb
Overview
Direct Known Subclasses
Defined Under Namespace
Classes: AggregateTargetSettings, PodTargetSettings
Constants collapse
- PLURAL_SETTINGS =
Returns The build settings that should be treated as arrays, rather than strings.
%w( ALTERNATE_PERMISSIONS_FILES ARCHS BUILD_VARIANTS EXCLUDED_SOURCE_FILE_NAMES FRAMEWORK_SEARCH_PATHS GCC_PREPROCESSOR_DEFINITIONS GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS HEADER_SEARCH_PATHS INCLUDED_SOURCE_FILE_NAMES INFOPLIST_PREPROCESSOR_DEFINITIONS LD_RUNPATH_SEARCH_PATHS LIBRARY_SEARCH_PATHS LOCALIZED_STRING_MACRO_NAMES OTHER_CFLAGS OTHER_CPLUSPLUSFLAGS OTHER_LDFLAGS OTHER_SWIFT_FLAGS REZ_SEARCH_PATHS SECTORDER_FLAGS SWIFT_ACTIVE_COMPILATION_CONDITIONS SWIFT_INCLUDE_PATHS SYSTEM_FRAMEWORK_SEARCH_PATHS SYSTEM_HEADER_SEARCH_PATHS USER_HEADER_SEARCH_PATHS WARNING_CFLAGS WARNING_LDFLAGS ).to_set.freeze
- CONFIGURATION_BUILD_DIR_VARIABLE =
Returns The variable for the configuration build directory used when building pod targets.
'${PODS_CONFIGURATION_BUILD_DIR}'
- XCFRAMEWORKS_BUILD_DIR_VARIABLE =
Returns The variable for the configuration intermediate frameworks directory used for building pod targets that contain vendored xcframeworks.
'${PODS_XCFRAMEWORKS_BUILD_DIR}'
Public API collapse
-
.build_settings_names ⇒ Set<String>
readonly
be present in the #xcconfig.
-
#target ⇒ Target
readonly
The target this build settings object is generating build settings for.
DSL collapse
-
.xcframework_intermediate_dir(xcframework) ⇒ String
The path to the directory containing the xcframework slice.
Public API collapse
-
#initialize(target) ⇒ BuildSettings
constructor
Initialize a new instance.
- #initialize_copy(other) ⇒ Object
-
#save_as(path) ⇒ Xcodeproj::Config
Saves the generated xcconfig to the given path.
-
#xcconfig ⇒ Xcodeproj::Config
(also: #generate)
The ‘xcconfig` build setting for the #target.
Build System collapse
-
#pods_build_dir ⇒ String
The ‘pods_build_dir` build setting for the #target.
-
#pods_configuration_build_dir ⇒ String
The ‘pods_configuration_build_dir` build setting for the #target.
-
#pods_xcframeworks_build_dir ⇒ Object
The ‘pods_xcframeworks_build_dir` build setting for the #target.
-
#use_recursive_script_inputs_in_script_phases ⇒ String
The ‘use_recursive_script_inputs_in_script_phases` build setting for the #target.
Code Signing collapse
-
#code_sign_identity ⇒ String
The ‘code_sign_identity` build setting for the #target.
Frameworks collapse
-
#framework_search_paths ⇒ Array<String>
The ‘framework_search_paths` build setting for the #target.
-
#framework_search_paths_to_import_developer_frameworks(frameworks) ⇒ Array<String>
The ‘FRAMEWORK_SEARCH_PATHS` needed to import developer frameworks.
-
#frameworks ⇒ Array<String>
The ‘frameworks` build setting for the #target.
-
#weak_frameworks ⇒ Array<String>
The ‘weak_frameworks` build setting for the #target.
Libraries collapse
-
#libraries ⇒ Array<String>
The ‘libraries` build setting for the #target.
Clang collapse
-
#gcc_preprocessor_definitions ⇒ Array<String>
The ‘gcc_preprocessor_definitions` build setting for the #target.
-
#module_map_files ⇒ Array<String>
The ‘module_map_files` build setting for the #target.
-
#other_cflags ⇒ Array<String>
The ‘other_cflags` build setting for the #target.
Swift collapse
-
#other_swift_flags ⇒ Array<String>
The ‘other_swift_flags` build setting for the #target.
-
#other_swift_flags_without_swift? ⇒ Boolean
Whether ‘OTHER_SWIFT_FLAGS` should be generated when the target does not use swift.
Linking collapse
-
#clang_warn_quoted_include_in_framework_header ⇒ Boolean
Xcode 12 turns on this warning by default which is problematic for CocoaPods-generated imports which use double-quoted paths.
-
#other_ldflags ⇒ Array<String>
The ‘other_ldflags` build setting for the #target.
-
#requires_fobjc_arc? ⇒ Boolean
The ‘requires_fobjc_arc?` build setting for the #target.
-
#requires_objc_linker_flag? ⇒ Boolean
The ‘requires_objc_linker_flag?` build setting for the #target.
Constructor Details
#initialize(target) ⇒ BuildSettings
Initialize a new instance
176 177 178 179 |
# File 'lib/cocoapods/target/build_settings.rb', line 176 def initialize(target) @target = target @__memoized = {} end |
Class Attribute Details
.build_settings_names ⇒ Set<String> (readonly)
be present in the #xcconfig
159 160 161 |
# File 'lib/cocoapods/target/build_settings.rb', line 159 def build_settings_names @build_settings_names end |
Instance Attribute Details
#target ⇒ Target (readonly)
Returns The target this build settings object is generating build settings for.
169 170 171 |
# File 'lib/cocoapods/target/build_settings.rb', line 169 def target @target end |
Class Method Details
.xcframework_intermediate_dir(xcframework) ⇒ String
Returns the path to the directory containing the xcframework slice.
147 148 149 |
# File 'lib/cocoapods/target/build_settings.rb', line 147 def self.xcframework_intermediate_dir(xcframework) "#{XCFRAMEWORKS_BUILD_DIR_VARIABLE}/#{xcframework.target_name}" end |
Instance Method Details
#clang_warn_quoted_include_in_framework_header ⇒ Boolean
Xcode 12 turns on this warning by default which is problematic for CocoaPods-generated imports which use double-quoted paths. The ‘clang_warn_quoted_include_in_framework_header` build setting for the #target.
The return value from this method will be: ‘clang_warn_quoted_include_in_framework_header, build_setting`.
338 339 340 |
# File 'lib/cocoapods/target/build_settings.rb', line 338 define_build_settings_method :clang_warn_quoted_include_in_framework_header, :build_setting => true do 'NO' end |
#code_sign_identity ⇒ String
The ‘code_sign_identity` build setting for the #target.
The return value from this method will be: ‘code_sign_identity, build_setting`.
235 236 237 238 239 |
# File 'lib/cocoapods/target/build_settings.rb', line 235 define_build_settings_method :code_sign_identity, :build_setting => true do return unless target.build_as_dynamic? return unless target.platform.to_sym == :osx '' end |
#framework_search_paths ⇒ Array<String>
The ‘framework_search_paths` build setting for the #target.
The return value from this method will be: ‘framework_search_paths, build_setting, memoized`.
256 257 258 |
# File 'lib/cocoapods/target/build_settings.rb', line 256 define_build_settings_method :framework_search_paths, :build_setting => true, :memoized => true do framework_search_paths_to_import_developer_frameworks(frameworks + weak_frameworks) end |
#framework_search_paths_to_import_developer_frameworks(frameworks) ⇒ Array<String>
Returns the ‘FRAMEWORK_SEARCH_PATHS` needed to import developer frameworks.
265 266 267 268 269 270 271 |
# File 'lib/cocoapods/target/build_settings.rb', line 265 def framework_search_paths_to_import_developer_frameworks(frameworks) if frameworks.include?('XCTest') || frameworks.include?('SenTestingKit') %w[ $(PLATFORM_DIR)/Developer/Library/Frameworks ] else [] end end |
#frameworks ⇒ Array<String>
The ‘frameworks` build setting for the #target.
The return value from this method will be: ‘frameworks`.
246 247 248 |
# File 'lib/cocoapods/target/build_settings.rb', line 246 define_build_settings_method :frameworks do [] end |
#gcc_preprocessor_definitions ⇒ Array<String>
The ‘gcc_preprocessor_definitions` build setting for the #target.
The return value from this method will be: ‘gcc_preprocessor_definitions, build_setting`.
287 288 289 |
# File 'lib/cocoapods/target/build_settings.rb', line 287 define_build_settings_method :gcc_preprocessor_definitions, :build_setting => true do %w( COCOAPODS=1 ) end |
#initialize_copy(other) ⇒ Object
181 182 183 184 |
# File 'lib/cocoapods/target/build_settings.rb', line 181 def initialize_copy(other) super @__memoized = {} end |
#libraries ⇒ Array<String>
The ‘libraries` build setting for the #target.
The return value from this method will be: ‘libraries`.
278 279 280 |
# File 'lib/cocoapods/target/build_settings.rb', line 278 define_build_settings_method :libraries do [] end |
#module_map_files ⇒ Array<String>
The ‘module_map_files` build setting for the #target.
The return value from this method will be: ‘module_map_files`.
297 298 299 |
# File 'lib/cocoapods/target/build_settings.rb', line 297 define_build_settings_method :module_map_files do [] end |
#other_cflags ⇒ Array<String>
The ‘other_cflags` build setting for the #target.
The return value from this method will be: ‘other_cflags, build_setting, memoized`.
292 293 294 |
# File 'lib/cocoapods/target/build_settings.rb', line 292 define_build_settings_method :other_cflags, :build_setting => true, :memoized => true do module_map_files.map { |f| "-fmodule-map-file=#{f}" } end |
#other_ldflags ⇒ Array<String>
The ‘other_ldflags` build setting for the #target.
The return value from this method will be: ‘other_ldflags, build_setting, memoized`.
373 374 375 376 377 378 379 380 381 382 383 |
# File 'lib/cocoapods/target/build_settings.rb', line 373 define_build_settings_method :other_ldflags, :build_setting => true, :memoized => true do ld_flags = [] ld_flags << '-ObjC' if requires_objc_linker_flag? if requires_fobjc_arc? ld_flags << '-fobjc-arc' end libraries.each { |l| ld_flags << %(-l"#{l}") } frameworks.each { |f| ld_flags << '-framework' << %("#{f}") } weak_frameworks.each { |f| ld_flags << '-weak_framework' << %("#{f}") } ld_flags end |
#other_swift_flags ⇒ Array<String>
The ‘other_swift_flags` build setting for the #target.
The return value from this method will be: ‘other_swift_flags, build_setting, memoized`.
314 315 316 317 318 319 |
# File 'lib/cocoapods/target/build_settings.rb', line 314 define_build_settings_method :other_swift_flags, :build_setting => true, :memoized => true do return unless target.uses_swift? || other_swift_flags_without_swift? flags = %w(-D COCOAPODS) flags.concat module_map_files.flat_map { |f| ['-Xcc', "-fmodule-map-file=#{f}"] } flags end |
#other_swift_flags_without_swift? ⇒ Boolean
Returns Whether ‘OTHER_SWIFT_FLAGS` should be generated when the target does not use swift.
309 310 311 |
# File 'lib/cocoapods/target/build_settings.rb', line 309 def other_swift_flags_without_swift? false end |
#pods_build_dir ⇒ String
The ‘pods_build_dir` build setting for the #target.
The return value from this method will be: ‘pods_build_dir, build_setting`.
212 213 214 |
# File 'lib/cocoapods/target/build_settings.rb', line 212 define_build_settings_method :pods_build_dir, :build_setting => true do '${BUILD_DIR}' end |
#pods_configuration_build_dir ⇒ String
The ‘pods_configuration_build_dir` build setting for the #target.
The return value from this method will be: ‘pods_configuration_build_dir, build_setting`.
217 218 219 |
# File 'lib/cocoapods/target/build_settings.rb', line 217 define_build_settings_method :pods_configuration_build_dir, :build_setting => true do '${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)' end |
#pods_xcframeworks_build_dir ⇒ Object
The ‘pods_xcframeworks_build_dir` build setting for the #target.
The return value from this method will be: ‘pods_xcframeworks_build_dir, build_setting`.
221 222 223 |
# File 'lib/cocoapods/target/build_settings.rb', line 221 define_build_settings_method :pods_xcframeworks_build_dir, :build_setting => true do '$(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates' end |
#requires_fobjc_arc? ⇒ Boolean
The ‘requires_fobjc_arc?` build setting for the #target.
The return value from this method will be: ‘requires_fobjc_arc?`.
331 332 333 |
# File 'lib/cocoapods/target/build_settings.rb', line 331 define_build_settings_method :requires_fobjc_arc? do false end |
#requires_objc_linker_flag? ⇒ Boolean
The ‘requires_objc_linker_flag?` build setting for the #target.
The return value from this method will be: ‘requires_objc_linker_flag?`.
326 327 328 |
# File 'lib/cocoapods/target/build_settings.rb', line 326 define_build_settings_method :requires_objc_linker_flag? do false end |
#save_as(path) ⇒ Xcodeproj::Config
Saves the generated xcconfig to the given path
203 204 205 |
# File 'lib/cocoapods/target/build_settings.rb', line 203 def save_as(path) xcconfig.save_as(path) end |
#use_recursive_script_inputs_in_script_phases ⇒ String
The ‘use_recursive_script_inputs_in_script_phases` build setting for the #target.
The return value from this method will be: ‘use_recursive_script_inputs_in_script_phases, build_setting`.
226 227 228 |
# File 'lib/cocoapods/target/build_settings.rb', line 226 define_build_settings_method :use_recursive_script_inputs_in_script_phases, :build_setting => true do 'YES' end |
#weak_frameworks ⇒ Array<String>
The ‘weak_frameworks` build setting for the #target.
The return value from this method will be: ‘weak_frameworks`.
251 252 253 |
# File 'lib/cocoapods/target/build_settings.rb', line 251 define_build_settings_method :weak_frameworks do [] end |
#xcconfig ⇒ Xcodeproj::Config Also known as: generate
The ‘xcconfig` build setting for the #target.
The return value from this method will be: ‘xcconfig, memoized`.
187 188 189 190 |
# File 'lib/cocoapods/target/build_settings.rb', line 187 define_build_settings_method :xcconfig, :memoized => true do settings = add_inherited_to_plural(to_h) Xcodeproj::Config.new(settings) end |