Revision: 766 http://trac.macosforge.org/projects/ruby/changeset/766 Author: lsansonetti@apple.com Date: 2008-12-03 14:30:51 -0800 (Wed, 03 Dec 2008) Log Message: ----------- fix for #173 (patch contributed by Vincent Isambart) Modified Paths: -------------- MacRuby/trunk/Rakefile MacRuby/trunk/version.c Modified: MacRuby/trunk/Rakefile =================================================================== --- MacRuby/trunk/Rakefile 2008-12-03 07:31:30 UTC (rev 765) +++ MacRuby/trunk/Rakefile 2008-12-03 22:30:51 UTC (rev 766) @@ -262,8 +262,42 @@ end end +desc "Create revision.h" +task :revision_h do + revision_h = 'revision.h' + current_revision = nil + if File.exist?('.svn') + info = `sh -c 'LANG=C svn info' 2>&1` + md_revision = /^Revision: (\d+)$/.match(info) + md_url = /^URL: (.+)$/.match(info) + current_revision = "svn revision #{md_revision[1]} from #{md_url[1]}" if md_revision and md_url + end + if not current_revision and File.exist?('.git/HEAD') + md_ref = /^ref: (.+)$/.match(File.read('.git/HEAD')) + if md_ref + head_file = ".git/#{md_ref[1]}" + current_revision = "git commit #{File.read(head_file).strip}" if File.exist?(head_file) + end + end + current_revision = 'unknown revision' unless current_revision + + new_revision_h = "#define MACRUBY_REVISION \"#{current_revision}\"\n" + + must_recreate_header = true + if File.exist?(revision_h) + must_recreate_header = false if File.read(revision_h) == new_revision_h + end + + if must_recreate_header + File.open(revision_h, 'w') do |f| + f.print new_revision_h + end + end +end + + desc "Build known objects" -task :objects => [:config_h, :dtrace_h] do +task :objects => [:config_h, :dtrace_h, :revision_h] do sh "/usr/bin/ruby tool/compile_prelude.rb prelude.rb miniprelude.c.new" if !File.exist?('miniprelude.c') or File.read('miniprelude.c') != File.read('miniprelude.c.new') mv('miniprelude.c.new', 'miniprelude.c') Modified: MacRuby/trunk/version.c =================================================================== --- MacRuby/trunk/version.c 2008-12-03 07:31:30 UTC (rev 765) +++ MacRuby/trunk/version.c 2008-12-03 22:30:51 UTC (rev 766) @@ -11,6 +11,7 @@ #include "ruby/ruby.h" #include "version.h" +#include "revision.h" #include <stdio.h> #define PRINT(type) puts(ruby_##type) @@ -39,6 +40,7 @@ #if WITH_OBJC rb_define_global_const("RUBY_ARCH", rb_str_new2(RUBY_ARCH)); rb_define_global_const("MACRUBY_VERSION", rb_float_new(MACRUBY_VERSION)); + rb_define_global_const("MACRUBY_REVISION", rb_str_new2(MACRUBY_REVISION)); #endif }
participants (1)
-
source_changes@macosforge.org