summaryrefslogtreecommitdiff
path: root/gen/Rakefile
blob: 65f62c930003c2d20cc3670073721f5d26e9df3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
require 'fileutils'
require 'ffi'
require 'ffi/platform'
require 'ffi/tools/types_generator'
types_conf = File.expand_path(File.join(FFI::Platform::CONF_DIR, 'types.conf'))

logfile = File.join(File.dirname(__FILE__), 'log')

file types_conf do |task|
  options = {}
  FileUtils.mkdir_p(File.dirname(task.name), mode: 0755)
  File.open(task.name, File::CREAT|File::TRUNC|File::RDWR, 0644) do |f|
    f.puts FFI::TypesGenerator.generate(options)
  end
  File.open(logfile, 'w') do |log|
    log.puts(types_conf)
  end
end

task :default => types_conf do
end

task :clean do
  File.readlines(logfile).each do |file|
    file.strip!
    rm_f file
  end
  rm_f logfile
end