Class: Pod::Target::BuildSettings
- Inherits:
-
Object
- Object
- Pod::Target::BuildSettings
- Defined in:
- lib/cocoapods-tt/native/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
xcconfigbuild setting for the #target.
Build System collapse
-
#pods_build_dir ⇒ String
The
pods_build_dirbuild setting for the #target. -
#pods_configuration_build_dir ⇒ String
The
pods_configuration_build_dirbuild setting for the #target. -
#pods_xcframeworks_build_dir ⇒ Object
The
pods_xcframeworks_build_dirbuild setting for the #target. -
#use_recursive_script_inputs_in_script_phases ⇒ String
The
use_recursive_script_inputs_in_script_phasesbuild setting for the #target.
Code Signing collapse
-
#code_sign_identity ⇒ String
The
code_sign_identitybuild setting for the #target.
Frameworks collapse
-
#framework_search_paths ⇒ Array<String>
The
framework_search_pathsbuild setting for the #target. -
#framework_search_paths_to_import_developer_frameworks(frameworks) ⇒ Array<String>
The
FRAMEWORK_SEARCH_PATHSneeded to import developer frameworks. -
#frameworks ⇒ Array<String>
The
frameworksbuild setting for the #target. -
#weak_frameworks ⇒ Array<String>
The
weak_frameworksbuild setting for the #target.
Libraries collapse
-
#libraries ⇒ Array<String>
The
librariesbuild setting for the #target.
Clang collapse
-
#gcc_preprocessor_definitions ⇒ Array<String>
The
gcc_preprocessor_definitionsbuild setting for the #target. -
#module_map_files ⇒ Array<String>
The
module_map_filesbuild setting for the #target. -
#other_cflags ⇒ Array<String>
The
other_cflagsbuild setting for the #target.
Swift collapse
-
#other_swift_flags ⇒ Array<String>
The
other_swift_flagsbuild setting for the #target. -
#other_swift_flags_without_swift? ⇒ Boolean
Whether
OTHER_SWIFT_FLAGSshould 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_ldflagsbuild 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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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-tt/native/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 |