Class: Pod::SPM::MacroPrebuilder

Inherits:
Object
  • Object
show all
Includes:
Executables, MacroConfigMixin
Defined in:
lib/cocoapods-spm/macro/prebuilder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from MacroConfigMixin

#macro_dir, #macro_downloaded_dir, #macro_prebuilt_dir, #metadata, #metadata_path

Methods included from Config::SPMConfigMixin

#macro_pods, #spm_config

Methods included from Config::PodConfigMixin

#pod_config

Methods included from Config::ProjectConfigMixin

#project_config

Constructor Details

#initialize(options = {}) ⇒ MacroPrebuilder

Returns a new instance of MacroPrebuilder.



12
13
14
# File 'lib/cocoapods-spm/macro/prebuilder.rb', line 12

def initialize(options = {})
  @name = options[:name]
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



10
11
12
# File 'lib/cocoapods-spm/macro/prebuilder.rb', line 10

def name
  @name
end

Instance Method Details

#prebuild_macro_implObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/cocoapods-spm/macro/prebuilder.rb', line 20

def prebuild_macro_impl
  return if spm_config.dont_prebuild_macros?

  config = spm_config.macro_config
  impl_module_name = .macro_impl_name
  prebuilt_binary = macro_prebuilt_dir / "#{impl_module_name}-#{config}"
  return if spm_config.dont_prebuild_macros_if_exist? && prebuilt_binary.exist?

  UI.section "Building macro implementation: #{impl_module_name} (#{config})...".green do
    Dir.chdir(macro_downloaded_dir) do
      swift! ["build", "-c", config, "--product", impl_module_name]
    end
  end

  prebuilt_binary.parent.mkpath
  FileUtils.copy_entry(
    macro_downloaded_dir / ".build" / config / impl_module_name,
    prebuilt_binary
  )
end

#runObject



16
17
18
# File 'lib/cocoapods-spm/macro/prebuilder.rb', line 16

def run
  prebuild_macro_impl
end