From 4044473c7b05aa6f38e0d6d765f5694ee9fb4cc5 Mon Sep 17 00:00:00 2001 From: Lyle Johnson <lyle@lylejohnson.name> Date: Tue, 15 Sep 2009 10:29:07 -0500 Subject: [PATCH] Moved main SWIG task back to Rakefile --- Rakefile | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/Rakefile b/Rakefile index abc619b..484c41b 100755 --- a/Rakefile +++ b/Rakefile @@ -236,9 +236,34 @@ namespace :swig do "ui.i" => "ui_wrap.cpp" } - def swig_generate_dependencies(wrapper_src_file_name, swig_interface_file_name) - wrapper_src_file_name = File.join("..", "ext", "fox16", wrapper_src_file_name) - system "#{SWIG} #{SWIGFLAGS} -MM -o #{wrapper_src_file_name} #{swig_interface_file_name} >> dependencies" + def wrapper_src_file_path(wrapper_src_file_name) + File.join("..", "ext", "fox16", wrapper_src_file_name) + end + + def swig_generate_dependencies(swig_interface_file_name, wrapper_src_file_name) + system "#{SWIG} #{SWIGFLAGS} -MM -o #{wrapper_src_file_path(wrapper_src_file_name)} #{swig_interface_file_name} >> dependencies" + end + + def sed(wrapper_src_file_name) + results = [] + IO.readlines(wrapper_src_file_name).each do |line| + line.gsub!(/static VALUE mCore;/, "VALUE mCore;") + line.gsub!(/mCore = rb_define_module\("Core"\)/, "mFox = rb_define_module(\"Fox\")") + line.gsub!(/mCore/, "mFox") + next if line =~ /static VALUE m(Dc|Dialogs|Frames|Iconlist|Icons|Image|Label|Layout|List|Mdi|Menu|Fx3d|Scintilla|Table|Text|Treelist|Ui);/ + next if line =~ /m(Dc|Dialogs|Frames|Iconlist|Icons|Image|Label|Layout|List|Mdi|Menu|Fx3d|Scintilla|Table|Text|Treelist|Ui) = rb_define_module/ + next if line =~ /rb_require/ + line.gsub!(/m(Dc|Dialogs|Frames|Iconlist|Icons|Image|Label|Layout|List|Mdi|Menu|Fx3d|Scintilla|Table|Text|Treelist|Ui),/, "mFox,") + results << line + end + File.open(wrapper_src_file_name, "w") do |io| + io.write(results.join) + end + end + + def swig(swig_interface_file_name, wrapper_src_file_name) + system "#{SWIG} #{SWIGFLAGS} -o #{wrapper_src_file_path(wrapper_src_file_name)} #{swig_interface_file_name}" + sed wrapper_src_file_path(wrapper_src_file_name) end task :swig_dependencies do @@ -246,7 +271,7 @@ namespace :swig do FileUtils.rm_f "dependencies" FileUtils.touch "dependencies" SWIG_MODULES.each do |key, value| - swig_generate_dependencies(value, key) + swig_generate_dependencies(key, value) end end end @@ -254,7 +279,9 @@ namespace :swig do desc "Run SWIG to generate the wrapper files." task :swig => [:swig_dependencies] do Dir.chdir "swig-interfaces" do - system %{make} + SWIG_MODULES.each do |key, value| + swig(key, value) + end end end end -- GitLab