view Rakefile @ 12:6e272c520bc6

Read version information from .hg_archival.txt when available.
author Mikhail Kryshen <mikhail@kryshen.net>
date Tue, 17 Jul 2012 08:16:34 +0400
parents 6e6b00d95d0b
children 9726d78eb848
line wrap: on
line source

require 'mirah'
require 'ant'
require 'rake/clean'

SRC = FileList['src/**/*.mirah']

CLEAN.include 'build/**/*.class'
CLEAN.include 'build/**/version.properties'
CLEAN.include 'dist/*.jar'

task :default => [:compile]

task :compile => SRC do
  Mirah::compile '--jvm', '1.6', '-d', 'build', *SRC

  begin
    hga = Hash[*File.read('.hg_archival.txt').split(/: |\n+/)]
    version = "#{hga['latesttag']}.#{hga['latesttagdistance']}"
  rescue Errno::ENOENT
    version = `hg log -r tip --template "{latesttag}.{latesttagdistance}"`
  end

  File.open('build/net/kryshen/charamega/version.properties', 'w') do |f|
    f.write "version = #{version}\n"
  end
end

task :run => [:compile] do
  sh 'java -cp build:res net/kryshen/charamega/Ui'
end

task :jar => [:compile] do
  ant.jar :jarfile => 'dist/charamega.jar' do
    fileset :dir => 'build'
    fileset :dir => 'res'
    manifest do
      attribute :name => 'Main-Class', :value => 'net.kryshen.charamega.Ui'
    end
  end
end