class Pod::XCConfig::Hook
def config
def config Config.instance end
def create_symlink_to_hook_dir
def create_symlink_to_hook_dir # Create symlink to hook dir (under Pods) so that xcconfigs can be included # in a pod target's xcconfig without caring about absolute/relative paths path = Pod::Config.instance.sandbox.root / config.hook_dir FileUtils.rm_rf(path) if path.exist? File.symlink(File.absolute_path(config.hook_dir), path) end
def initialize(context)
def initialize(context) @context = context end
def prepend_includes(path)
def prepend_includes(path) target, config_name, = path.basename.to_s.split(".") is_agg_target = target.start_with?("Pods-") return if !is_agg_target && config.aggregate_targets_only? includes = [ "__base__.xcconfig", "#{config_name}.xcconfig", "#{target}.__base__.xcconfig", "#{target}.#{config_name}.xcconfig", ].map { |p| "#include? \"#{config.hook_dir}/#{p}\"" } to_prepend = <<~HEADER #{includes.join("\n")} // ------------------------------------------------------------ // The above includes were injected by cocoapods-xcconfig-hooks // ------------------------------------------------------------ HEADER path.write(to_prepend + path.read) end
def run
def run sandbox.target_support_files_root.glob("*/*.xcconfig") do |path| prepend_includes(path) end create_symlink_to_hook_dir end
def sandbox
def sandbox @context.sandbox end