Module: Pod::PodGenerate::Patches::InstallerPatch::ForceIncrementalInstall
- Defined in:
- lib/cocoapods-podgenerate/patches/installer_patch.rb
Overview
── Optimization 1: Force-enable incremental_installation ──
Instance Method Summary collapse
-
#create_and_save_projects(pod_targets_to_generate, aggregate_targets_to_generate, build_configurations, project_object_version) ⇒ Object
── Optimization 3+4: create_and_save_projects with parallel configure_schemes ──.
-
#generate_pods_project ⇒ Object
── Optimization 2: Skip project generation when nothing changed ──.
- #install! ⇒ Object
Instance Method Details
#create_and_save_projects(pod_targets_to_generate, aggregate_targets_to_generate, build_configurations, project_object_version) ⇒ Object
── Optimization 3+4: create_and_save_projects with parallel configure_schemes ──
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/cocoapods-podgenerate/patches/installer_patch.rb', line 69 def create_and_save_projects(pod_targets_to_generate, aggregate_targets_to_generate, build_configurations, project_object_version) UI.section 'Generating Pods project' do generator = create_generator(pod_targets_to_generate, aggregate_targets_to_generate, build_configurations, project_object_version, .generate_multiple_pod_projects) pod_project_generation_result = generator.generate! @target_installation_results = pod_project_generation_result.target_installation_results @pods_project = pod_project_generation_result.project @pod_target_subprojects = pod_project_generation_result.projects_by_pod_targets.keys @generated_projects = ([pods_project] + pod_target_subprojects || []).compact @generated_pod_targets = pod_targets_to_generate @generated_aggregate_targets = aggregate_targets_to_generate || [] projects_by_pod_targets = pod_project_generation_result.projects_by_pod_targets predictabilize_uuids(generated_projects) if .deterministic_uuids? stabilize_target_uuids(generated_projects) projects_writer = Pod::Installer::Xcode::PodsProjectWriter.new(sandbox, generated_projects, target_installation_results.pod_target_installation_results, ) projects_writer.write! do run_podfile_post_install_hooks end # Parallel configure_schemes (each project is independent) pods_project_pod_targets = pod_targets_to_generate - projects_by_pod_targets.values.flatten all_projects_by_pod_targets = {} if pods_project all_projects_by_pod_targets[pods_project] = pods_project_pod_targets end all_projects_by_pod_targets.merge!(projects_by_pod_targets) if projects_by_pod_targets if all_projects_by_pod_targets.size > 1 parallel_configure_schemes(all_projects_by_pod_targets, generator, pod_project_generation_result) else all_projects_by_pod_targets.each do |project, pts| generator.configure_schemes(project, pts, pod_project_generation_result) end end end end |
#generate_pods_project ⇒ Object
── Optimization 2: Skip project generation when nothing changed ──
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/cocoapods-podgenerate/patches/installer_patch.rb', line 39 def generate_pods_project stage_sandbox(sandbox, pod_targets) cache_analysis_result = analyze_project_cache ptg = cache_analysis_result.pod_targets_to_generate atg = cache_analysis_result.aggregate_targets_to_generate if ptg.empty? && (atg.nil? || atg.empty?) Pod::UI.puts "[cocoapods-podgenerate] No changes — skipping project generation" @generated_aggregate_targets = aggregate_targets @generated_pod_targets = [] Pod::Installer::SandboxDirCleaner.new(sandbox, pod_targets, aggregate_targets).clean! update_project_cache(cache_analysis_result, Pod::Installer::Xcode::PodsProjectGenerator::InstallationResults.new({}, {})) return end # Normal path ptg.each do |pod_target| pod_target.build_headers.implode_path!(pod_target.headers_sandbox) sandbox.public_headers.implode_path!(pod_target.headers_sandbox) end create_and_save_projects(ptg, atg, cache_analysis_result.build_configurations, cache_analysis_result.project_object_version) Pod::Installer::SandboxDirCleaner.new(sandbox, pod_targets, aggregate_targets).clean! update_project_cache(cache_analysis_result, target_installation_results) end |
#install! ⇒ Object
32 33 34 35 36 |
# File 'lib/cocoapods-podgenerate/patches/installer_patch.rb', line 32 def install! .incremental_installation = true .generate_multiple_pod_projects = true super end |