Sha256: 26f06e1e48efc5c556d26f988a3bf9f6eb39267e1d95058b052fc1af93ed1d0b

Contents?: true

Size: 1007 Bytes

Versions: 1

Compression:

Stored size: 1007 Bytes

Contents

# -*- mode: ruby; coding: utf-8 -*-


namespace :lib do

  name    = NAME
  outname = "lib#{name}.a"
  out     = File.join LIBDIR, outname

  erbs    = convertions glob("**/*.erb"), {".erb" => ""}
  headers = glob("include/**/*.h") | erbs.values.grep(/\.h$/)
  srcs    = glob("src/**/*.cpp")   | erbs.values.grep(/\.cpp$/)

  objs = convertions srcs, {".cpp" => ".o"}
  tmps = objs.values | erbs.values

  task :build => out

  task :compile => objs.values

  task :erb => erbs.values

  task :clean do
    sh %( rm -rf #{tmps.join " "} #{out} )
  end

  file out => objs.values do
    sh %( #{AR} #{ARFLAGS} #{out} #{objs.values.join " "} )
  end

  objs.each do |(src, obj)|
    incdirs = INCDIRS.map{|s| " -I#{s}"}.join

    file obj => [src] + erbs.values do
      sh %( #{CC} -c #{CFLAGS} #{incdirs} -o #{obj} #{src} )
    end
  end

  erbs.each do |(erb, out)|
    file out => [erb] + RBS do
      print "#{erb}: compiling to #{out}..."
      compile erb, out
      puts "ok"
    end
  end

end# :lib

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rucy-0.1.0 task/lib.rake