From 71d77c14b2276f4a055630d194bac783eb50b47f Mon Sep 17 00:00:00 2001 From: Lyle Johnson <lyle@lylejohnson.name> Date: Tue, 15 Sep 2009 09:52:50 -0500 Subject: [PATCH] Moved swig dependencies task from Makefile to Rakefile --- Rakefile | 55 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/Rakefile b/Rakefile index c6193aa..abc619b 100755 --- a/Rakefile +++ b/Rakefile @@ -82,14 +82,6 @@ task :setversions => [ :create_installer_scripts ] do setversions("scripts/make-installers.rb") end -desc "Run SWIG to generate the wrapper files." -task :swig do - Dir.chdir "swig-interfaces" do - system %{touch dependencies} - system %{make depend; make} - end -end - DISTFILES = [ "ANNOUNCE", "LICENSE", @@ -220,4 +212,51 @@ end Rake::ExtensionTask.new("fox16") do |ext| end +namespace :swig do + SWIG = "/usr/local/bin/swig" + SWIGFLAGS = "-fcompact -noruntime -c++ -ruby -no_default -I../fox-includes" + SWIG_MODULES = { + "core.i" => "core_wrap.cpp", + "dcmodule.i" => "dc_wrap.cpp", + "dialogs.i" => "dialogs_wrap.cpp", + "framesmodule.i" => "frames_wrap.cpp", + "iconlistmodule.i" => "iconlist_wrap.cpp", + "icons.i" => "icons_wrap.cpp", + "image.i" => "image_wrap.cpp", + "labelmodule.i" => "label_wrap.cpp", + "layout.i" => "layout_wrap.cpp", + "listmodule.i" => "list_wrap.cpp", + "mdi.i" => "mdi_wrap.cpp", + "menumodule.i" => "menu_wrap.cpp", + "fx3d.i" => "fx3d_wrap.cpp", + "scintilla.i" => "scintilla_wrap.cpp", + "table-module.i" => "table_wrap.cpp", + "text-module.i" => "text_wrap.cpp", + "treelist-module.i" => "treelist_wrap.cpp", + "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" + end + + task :swig_dependencies do + Dir.chdir "swig-interfaces" do + FileUtils.rm_f "dependencies" + FileUtils.touch "dependencies" + SWIG_MODULES.each do |key, value| + swig_generate_dependencies(value, key) + end + end + end + + desc "Run SWIG to generate the wrapper files." + task :swig => [:swig_dependencies] do + Dir.chdir "swig-interfaces" do + system %{make} + end + end +end + task :build => [:configure, :compile] \ No newline at end of file -- GitLab