class StructCore::Processor::TargetPlatformComponent
Public Instance Methods
process(target)
click to toggle source
# File lib/spec/processor/target_platform.rb, line 8 def process(target) output = nil output = process_xc_target target if structure == :spec output = process_spec_target target if structure == :xcodeproj output end
process_spec_target(target)
click to toggle source
@param target [StructCore::Specfile::Target]
# File lib/spec/processor/target_platform.rb, line 41 def process_spec_target(target) profile = target.configurations.first.profiles.find { |profile| profile.include? 'platform:' } sdk = nil sdk = YAML.load_file(File.join(XC_TARGET_CONFIG_PROFILE_PATH, "#{profile.sub(':', '_')}.yml"))['SDKROOT'] unless profile.nil? sdk = target.configurations.first.settings['SDKROOT'] if sdk.nil? if sdk.nil? && !target.configurations.first.source.nil? config = XcconfigParser.parse target.configurations.first.source, @working_directory sdk = config['SDKROOT'] unless config.nil? end if sdk.nil? puts Paint["Warning: SDKROOT not recognised in configuration for target: '#{target.name}'. Ignoring...", :yellow] return nil end resolve_platform sdk end
process_xc_target(target)
click to toggle source
@param target [Xcodeproj::Project::PBXNativeTarget]
# File lib/spec/processor/target_platform.rb, line 17 def process_xc_target(target) config = target.build_configurations.first return nil if config.nil? sdk = config.build_settings['SDKROOT'] return nil if sdk.nil? if sdk.include? 'iphoneos' platform = 'ios' elsif sdk.include? 'macosx' platform = 'mac' elsif sdk.include? 'appletvos' platform = 'tv' elsif sdk.include? 'watchos' platform = 'watch' else puts Paint["Warning: SDKROOT #{build_settings['SDKROOT']} not recognised in configuration for target: '#{target.name}'. Ignoring...", :yellow] return nil end platform end
resolve_platform(sdk)
click to toggle source
# File lib/spec/processor/target_platform.rb, line 60 def resolve_platform(sdk) if sdk.include? 'iphoneos' platform = :ios elsif sdk.include? 'macosx' platform = :osx elsif sdk.include? 'appletvos' platform = :tvos elsif sdk.include? 'watchos' platform = :watchos else puts Paint["Warning: SDKROOT '#{sdk}' not recognised in configuration for target: '#{target.name}'. Ignoring...", :yellow] return nil end platform end