Sha256: 1b2dad13737086e027ebc3adc292be978a1dbf72f6a2062dc6e30f7a099c445f

Contents?: true

Size: 1.17 KB

Versions: 4

Compression:

Stored size: 1.17 KB

Contents

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


require 'rake/loaders/makefile'


namespace :lib do

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

  headers = glob("include/**/*.h")
  srcs    = glob("src/**/*.cpp")
  srcs   += glob("src/**/*.mm") if cocoa?
  srcs    = srcs.reject {|s| s =~ %r(/win32/)} unless win32?
  srcs    = srcs.reject {|s| s =~ %r(/cocoa/)} unless cocoa?

  depend = 'depend.mf'
  objs   = convertions srcs, {".cpp" => ".o", ".mm" => ".o"}
  tmps   = objs.values + [depend]

  cflags  = CFLAGS.dup
  cflags << INCDIRS.map{|s| " -I#{s}"}.join

  task :build => out

  task :compile => objs.values

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

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

  file depend do
    sh %( #{CC} -M #{cflags} #{srcs.join ' '} > #{depend} )
    input = open(depend) {|f| f.read}
    open(depend, 'w') do |output|
      output << input.gsub(/\w+\.o/, SRCDIR + '/\0')
    end
  end

  import depend if File.exist? depend

  objs.each do |(src, obj)|
    file obj => [depend, src] do
      sh %( #{CC} -c #{cflags} -o #{obj} #{src} )
    end
  end

end# :lib

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
reflexion-0.1.2 task/lib.rake
rays-0.1.2 task/lib.rake
reflexion-0.1.1 task/lib.rake
rays-0.1.1 task/lib.rake