diff --git a/Rakefile b/Rakefile index 9be4c9a0845088e923d26dddf6affb3e5ca4f39f..4ccdf1645baca3d0e4867291854ab3ae9ceb9c62 100755 --- a/Rakefile +++ b/Rakefile @@ -47,6 +47,20 @@ task :create_installer_scripts do end end +desc "Update the web site." +task :website => [:doap] do + system %{scp -Cq doc/*.css lyle@rubyforge.org:/var/www/gforge-projects/fxruby/1.6/doc} + system %{scp -Cq doc/*.html lyle@rubyforge.org:/var/www/gforge-projects/fxruby/1.6/doc} + system %{scp -Cq doc/images/*.png lyle@rubyforge.org:/var/www/gforge-projects/fxruby/1.6/doc/images} + system %{scp -Cq examples/*.rb lyle@rubyforge.org:/var/www/gforge-projects/fxruby/1.6/examples} + system %{scp -Cq web/index.html lyle@rubyforge.org:/var/www/gforge-projects/fxruby} + system %{scp -Cq web/community.html lyle@rubyforge.org:/var/www/gforge-projects/fxruby} + system %{scp -Cq web/documentation.html lyle@rubyforge.org:/var/www/gforge-projects/fxruby} + system %{scp -Cq web/downloads.html lyle@rubyforge.org:/var/www/gforge-projects/fxruby} + system %{scp -Cq web/images/* lyle@rubyforge.org:/var/www/gforge-projects/fxruby/images} + system %{scp -Cq web/css/*.css lyle@rubyforge.org:/var/www/gforge-projects/fxruby/css} +end + desc "Upload the DOAP file to the Web site" task :doap => [:setversions] do system %{scp -Cq doap.rdf lyle@rubyforge.org:/var/www/gforge-projects/fxruby} @@ -66,3 +80,163 @@ task :swig do system %{make depend; make} cd ".." end + +DISTFILES = [ + "ANNOUNCE", + "LICENSE", + "README", + "README.win32.txt", + "pre-config.rb", + "install.rb", + "doap.rdf", + "FXRuby-ruby1.8.6-i386-msvcrt.iss", + "Rakefile", + "index.html", + "doc/*.css", + "doc/*.html", + "doc/images/*.png", + "examples/README", + "examples/*.rb", + "examples/*.xml", + "examples/icons/*.png", + "examples/icons/*.ico", + "examples/textedit/*.rb", + "lib/fox16/*.rb", + "ext/fox16/MANIFEST", + "ext/fox16/extconf.rb", + "ext/fox16/*.c", + "ext/fox16/*.cpp", + "ext/fox16/include/*.h", + "swig-interfaces/README", + "swig-interfaces/Makefile", + "swig-interfaces/swig.sed", + "swig-interfaces/*.i", + "tests/README", + "tests/*.rb", + "tests/*.ps", + "rdoc-sources/*.rb", + "rdoc-sources/README.rdoc", + "scripts/make-installers.rb" +] + +def distdir + "FXRuby-#{PKG_VERSION}" +end + +task :distdir => [:swig, :docs, :setversions, :generate_kwargs_lib] do + rm_rf "#{distdir}" + mkdir "#{distdir}" + chmod(0777, distdir) + DISTFILES.each do |filespec| + Dir.glob(filespec) { |filename| + mkdir_p "#{distdir}/#{File.dirname(filename)}" + File.syscopy(filename, "#{distdir}/#{File.dirname(filename)}") + } + end + rm_f "#{distdir}/lib/fox16/acceltable.rb" + rm_f "#{distdir}/lib/fox16/canvas.rb" + rm_f "#{distdir}/lib/fox16/html.rb" + rm_f "#{distdir}/lib/fox16/sugar.rb" + rm_f "#{distdir}/lib/fox16/tkcompat.rb" + rm_f "#{distdir}/examples/canvasdemo.rb" + rm_f "#{distdir}/examples/examples.rb" + rm_f "#{distdir}/examples/gdchart.rb" + rm_f "#{distdir}/examples/rapt-gui.rb" + rm_f "#{distdir}/examples/WhatAQuietStiff.rb" + rm_f "#{distdir}/examples/gembrowser.rb" + rm_f "#{distdir}/examples/rmagick.rb" + rm_f "#{distdir}/examples/tablenew.rb" +end + +desc "Build the source tarball." +task :dist => [:distdir] do + system "chmod -R a+r #{distdir}" + system "tar czf #{distdir}.tar.gz #{distdir}" + system "rm -rf #{distdir}" +end + +desc "Generate all of the documentation files." +task :doc do + cd "doc" + system %{make} + cd ".." +end + +def make_impl + cd "ext/fox16" + ruby "make_impl.rb" + cd "../.." +end + +task :configure => [:scintilla, :setversions, :generate_kwargs_lib] do + unless File.exist?(".config") +# ruby "install.rb config -- --with-fxscintilla-include=/usr/include/fxscintilla --with-fxscintilla-lib=/usr/lib" +# ruby "install.rb config -- --without-fxscintilla" +# ruby "install.rb config -- --with-fox-include=/opt/local/include/fox-1.6 --with-fox-lib=/opt/local/lib --with-fxscintilla-include=/opt/local/include/fxscintilla --with-fxscintilla-lib=/opt/local/lib" + ruby "install.rb config -- --with-fox-include=/usr/local/include/fox-1.6 --with-fox-lib=/usr/local/lib --with-fxscintilla-include=/usr/local/include/fxscintilla --with-fxscintilla-lib=/usr/local/lib" + make_impl + end +end + +desc "Build it." +task :build => [:configure] do + ruby "install.rb setup" +end + +task :scintilla do + ruby "scripts/iface.rb -i ~/src/fxscintilla/scintilla/include/Scintilla.iface -o lib/fox16/scintilla.rb" +end + +# Given the distribution tarball, build the installer for Win32 +desc "Build Win32 installer" +task :build_win32 do + if File.exist? ".config" + ruby "install.rb clean" + end + ruby "install.rb config --make-prog=nmake -- --with-fox-include=#{FOX_INSTALL_DIR}\\include --with-fox-lib=#{FOX_INSTALL_DIR}\\lib --with-fxscintilla-include=#{FXSCINTILLA_INSTALL_DIR}\\include --with-fxscintilla-lib=#{FXSCINTILLA_INSTALL_DIR}\\lib" +# ruby "install.rb config --make-prog=nmake -- --with-fox-include=#{FOX_INSTALL_DIR}\\include --with-fox-lib=#{FOX_INSTALL_DIR}\\lib" + ruby "install.rb setup" +end + +desc "Build Win32 installer using INNO Setup" +task :build_win32_installer => [:build_win32] do + iss_script_name = nil + case VERSION + when /1.8.2/ + iss_script_name = "FXRuby-ruby1.8.2-i386-msvcrt.iss" + when /1.8.4/ + iss_script_name = "FXRuby-ruby1.8.4-i386-msvcrt.iss" + when /1.8.5/ + iss_script_name = "FXRuby-ruby1.8.5-i386-msvcrt.iss" + when /1.8.6/ + iss_script_name = "FXRuby-ruby1.8.6-i386-msvcrt.iss" + end + system(ISCC, iss_script_name) +end + +desc "Build Win32 binary Gem" +task :build_win32_gem => [:build_win32] do + spec = create_gemspec + spec.platform = Gem::Platform::CURRENT + spec.files += ["ext/fox16/fox16.so"] + Gem::Builder.new(spec).build +end + +desc "Build Win32 binary installer and Gem" +task :release_win32 => [:build_win32_installer, :build_win32_gem] do +end + +desc "Build Mac OS X binary Gem" +task :build_macosx_gem do + raise RuntimeError, "remove libFOX*.dylib and recompile before building gem" unless Dir.glob("/usr/local/lib/libFOX*.dylib").empty? + spec = create_gemspec + spec.platform = Gem::Platform::CURRENT + spec.files += ["ext/fox16/fox16.bundle"] + Gem::Builder.new(spec).build +end + +task :generate_kwargs_lib do + ruby 'scripts/generate_kwargs_lib.rb' +end + +