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 source
1 require 'mirah'
2 require 'ant'
3 require 'rake/clean'
5 SRC = FileList['src/**/*.mirah']
7 CLEAN.include 'build/**/*.class'
8 CLEAN.include 'build/**/version.properties'
9 CLEAN.include 'dist/*.jar'
11 task :default => [:compile]
13 task :compile => SRC do
14 Mirah::compile '--jvm', '1.6', '-d', 'build', *SRC
16 begin
17 hga = Hash[*File.read('.hg_archival.txt').split(/: |\n+/)]
18 version = "#{hga['latesttag']}.#{hga['latesttagdistance']}"
19 rescue Errno::ENOENT
20 version = `hg log -r tip --template "{latesttag}.{latesttagdistance}"`
21 end
23 File.open('build/net/kryshen/charamega/version.properties', 'w') do |f|
24 f.write "version = #{version}\n"
25 end
26 end
28 task :run => [:compile] do
29 sh 'java -cp build:res net/kryshen/charamega/Ui'
30 end
32 task :jar => [:compile] do
33 ant.jar :jarfile => 'dist/charamega.jar' do
34 fileset :dir => 'build'
35 fileset :dir => 'res'
36 manifest do
37 attribute :name => 'Main-Class', :value => 'net.kryshen.charamega.Ui'
38 end
39 end
40 end