Module: TXT

Included in:
CMAKE::Project
Defined in:
lib/ebngen/adapter/cmake/txt.rb

Instance Method Summary collapse

Instance Method Details

#save(path, data_hash) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/ebngen/adapter/cmake/txt.rb', line 50

def save(path, data_hash)
  FileUtils.mkdir_p File.dirname(path) if ! File.exist?(File.dirname(path))
  File.open(path, 'w+') do |file| 
    file.write($CMAKE_HEADER)
    data_hash["target"].each_key do |target|
      $CONFIG_SETTINGS.each do |key|
        next if ! data_hash["target"][target].has_key?(key.to_s)
        data_hash["target"][target][key.to_s].each do |line|
          file.puts(line)
        end
      end
    end
    binary = data_hash["document"]["project_name"]
    case data_hash["type"].upcase
    when "APPLICATION"
      file.puts("add_executable(#{binary}.elf") 
    else
      file.puts("add_library(STATIC #{binary}.a")
    end
    data_hash["sources"].each do |line|
      file.puts line
    end
    file.puts(")")
  end
end