Changeset 95 for branches/rakefile-work/Rakefile
- Timestamp:
- 09/05/08 11:49:25 (4 months ago)
- Files:
-
- 1 modified
-
branches/rakefile-work/Rakefile (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/rakefile-work/Rakefile
r94 r95 35 35 ### Config constants 36 36 BASEDIR = Pathname.new( __FILE__ ).dirname.relative_path_from( Pathname.getwd ) 37 BINDIR = BASEDIR + 'bin' 37 38 LIBDIR = BASEDIR + 'lib' 38 39 EXTDIR = BASEDIR + 'ext' 39 40 DOCSDIR = BASEDIR + 'docs' 40 41 PKGDIR = BASEDIR + 'pkg' 41 RAKE_TASKDIR = BASEDIR + 'rake' 42 43 PKG_NAME = 'wordnet'44 PKG_SUMMARY = ' '42 43 PROJECT_NAME = 'WordNet' 44 PKG_NAME = PROJECT_NAME.downcase 45 PKG_SUMMARY = 'a Ruby interface to the WordNet Lexical Database' 45 46 VERSION_FILE = LIBDIR + 'wordnet.rb' 46 47 PKG_VERSION = VERSION_FILE.read[ /VERSION = '(\d+\.\d+\.\d+)'/, 1 ] … … 48 49 GEM_FILE_NAME = "#{PKG_FILE_NAME}.gem" 49 50 50 RELEASE_NAME = "RELEASE_#{PKG_VERSION.gsub(/\./, '_')}"51 52 51 ARTIFACTS_DIR = Pathname.new( ENV['CC_BUILD_ARTIFACTS'] || 'artifacts' ) 53 52 54 53 TEXT_FILES = %w( Rakefile ChangeLog README LICENSE ).collect {|filename| BASEDIR + filename } 54 BIN_FILES = Pathname.glob( BINDIR + '*' ).delete_if {|item| item =~ /\.svn/ } 55 55 LIB_FILES = Pathname.glob( LIBDIR + '**/*.rb' ).delete_if {|item| item =~ /\.svn/ } 56 56 EXT_FILES = Pathname.glob( EXTDIR + '**/*.{c,h,rb}' ).delete_if {|item| item =~ /\.svn/ } … … 62 62 TEST_FILES = Pathname.glob( TESTDIR + '**/*.tests.rb' ).delete_if {|item| item =~ /\.svn/ } 63 63 64 RELEASE_FILES = FileList[ TEXT_FILES + SPEC_FILES + TEST_FILES + LIB_FILES + EXT_FILES ] 64 RAKE_TASKDIR = BASEDIR + 'rake' 65 RAKE_TASKLIBS = Pathname.glob( RAKE_TASKDIR + '*.rb' ) 66 67 LOCAL_RAKEFILE = BASEDIR + 'Rakefile.local' 68 69 EXTRA_PKGFILES = [] 70 EXTRA_PKGFILES.concat Pathname.glob( BASEDIR + 'covertdb.rb' ).delete_if {|item| item =~ /\.svn/ } 71 EXTRA_PKGFILES.concat Pathname.glob( BASEDIR + 'utils.rb' ).delete_if {|item| item =~ /\.svn/ } 72 EXTRA_PKGFILES.concat Pathname.glob( BASEDIR + 'examples/*.rb' ).delete_if {|item| item =~ /\.svn/ } 73 74 RELEASE_FILES = TEXT_FILES + 75 SPEC_FILES + 76 TEST_FILES + 77 BIN_FILES + 78 LIB_FILES + 79 EXT_FILES + 80 RAKE_TASKLIBS + 81 EXTRA_PKGFILES 82 83 RELEASE_FILES << LOCAL_RAKEFILE if LOCAL_RAKEFILE.exist? 65 84 66 85 COVERAGE_MINIMUM = ENV['COVERAGE_MINIMUM'] ? Float( ENV['COVERAGE_MINIMUM'] ) : 85.0 … … 81 100 SVN_TAGS_DIR = 'tags' 82 101 102 SVN_DOTDIR = BASEDIR + '.svn' 103 SVN_ENTRIES = SVN_DOTDIR + 'entries' 104 105 83 106 ### Load some task libraries that need to be loaded early 84 107 require RAKE_TASKDIR + 'helpers.rb' … … 92 115 93 116 # Documentation constants 117 RDOCDIR = DOCSDIR + 'api' 94 118 RDOC_OPTIONS = [ 95 119 '-w', '4', … … 108 132 PROJECT_PUBDIR = "/usr/local/www/public/code" 109 133 PROJECT_DOCDIR = "#{PROJECT_PUBDIR}/#{PKG_NAME}" 110 PROJECT_SCPURL = "#{PROJECT_HOST}:#{PROJECT_DOCDIR}" 134 PROJECT_SCPPUBURL = "#{PROJECT_HOST}:#{PROJECT_PUBDIR}" 135 PROJECT_SCPDOCURL = "#{PROJECT_HOST}:#{PROJECT_DOCDIR}" 136 137 # Rubyforge stuff 138 RUBYFORGE_GROUP = 'deveiate' 139 RUBYFORGE_PROJECT = 'wordnet' 111 140 112 141 # Gem dependencies: gemname => version 113 142 DEPENDENCIES = { 143 } 144 145 # Developer Gem dependencies: gemname => version 146 DEVELOPMENT_DEPENDENCIES = { 147 'amatch' => '>= 0.2.3', 148 'rake' => '>= 0.8.1', 149 'rcodetools' => '>= 0.7.0.0', 150 'rcov' => '>= 0', 151 'RedCloth' => '>= 4.0.3', 152 'rspec' => '>= 0', 153 'rubyforge' => '>= 0', 154 'termios' => '>= 0', 155 'text-format' => '>= 1.0.0', 156 'tmail' => '>= 1.2.3.1', 157 'ultraviolet' => '>= 0.10.2', 158 'libxml-ruby' => '>= 0.8.3', 114 159 } 115 160 … … 126 171 gem.summary = PKG_SUMMARY 127 172 gem.description = <<-EOD 128 A Ruby implementation of the WordNet lexical dictionary 173 A Ruby implementation of the WordNet lexical dictionary an online lexical reference system whose 174 design is inspired by current psycholinguistic theories of human lexical memory. 129 175 EOD 130 176 … … 132 178 gem.email = 'ged@FaerieMUD.org' 133 179 gem.homepage = 'http://deveiate.org/projects/Ruby-WordNet' 134 gem.rubyforge_project = 'deveiate'180 gem.rubyforge_project = RUBYFORGE_PROJECT 135 181 136 182 gem.has_rdoc = true 137 183 gem.rdoc_options = RDOC_OPTIONS 184 185 gem.bindir = BINDIR.relative_path_from(BASEDIR).to_s 186 138 187 139 188 gem.files = RELEASE_FILES. … … 144 193 DEPENDENCIES.each do |name, version| 145 194 version = '>= 0' if version.length.zero? 146 gem.add_dependency( name, version ) 195 gem.add_runtime_dependency( name, version ) 196 end 197 198 DEVELOPMENT_DEPENDENCIES.each do |name, version| 199 version = '>= 0' if version.length.zero? 200 gem.add_development_dependency( name, version ) 147 201 end 148 202 … … 152 206 end 153 207 208 # Manual-generation config 209 MANUALDIR = DOCSDIR + 'manual' 210 211 $trace = Rake.application.options.trace ? true : false 212 $dryrun = Rake.application.options.dryrun ? true : false 213 154 214 155 215 # Load any remaining task libraries 156 Pathname.glob( RAKE_TASKDIR + '*.rb' ).each do |tasklib| 157 RELEASE_FILES.include( tasklib ) 158 216 RAKE_TASKLIBS.each do |tasklib| 159 217 next if tasklib =~ %r{/(helpers|svn|verifytask)\.rb$} 160 218 begin … … 171 229 end 172 230 173 $trace = Rake.application.options.trace ? true : false174 $dryrun = Rake.application.options.dryrun ? true : false175 176 231 # Load any project-specific rules defined in 'Rakefile.local' if it exists 177 LOCAL_RAKEFILE = BASEDIR + 'Rakefile.local' 178 if LOCAL_RAKEFILE.exist? 179 import LOCAL_RAKEFILE 180 RELEASE_FILES.include( LOCAL_RAKEFILE.to_s ) 181 end 232 import LOCAL_RAKEFILE if LOCAL_RAKEFILE.exist? 182 233 183 234 … … 187 238 188 239 ### Default task 189 task :default => [:clean, :spec, :rdoc, :package] 240 task :default => [:clean, :local, :spec, :rdoc, :package] 241 242 ### Task the local Rakefile can append to -- no-op by default 243 task :local 190 244 191 245 … … 194 248 CLOBBER.include 'artifacts', 'coverage.info', PKGDIR 195 249 196 197 ### Cruisecontrol task 250 # Target to hinge on ChangeLog updates 251 file SVN_ENTRIES 252 253 ### Task: changelog 254 file 'ChangeLog' => SVN_ENTRIES.to_s do |task| 255 log "Updating #{task.name}" 256 257 changelog = make_svn_changelog() 258 File.open( task.name, 'w' ) do |fh| 259 fh.print( changelog ) 260 end 261 end 262 263 264 ### Task: cruise (Cruisecontrol task) 198 265 desc "Cruisecontrol build" 199 266 task :cruise => [:clean, :spec, :package] do |task| … … 202 269 artifact_dir.mkpath 203 270 204 $stderr.puts "Copying coverage stats..." 205 FileUtils.cp_r( 'coverage', artifact_dir ) 271 coverage = BASEDIR + 'coverage' 272 if coverage.exist? && coverage.directory? 273 $stderr.puts "Copying coverage stats..." 274 FileUtils.cp_r( 'coverage', artifact_dir ) 275 end 206 276 207 277 $stderr.puts "Copying packages..." … … 210 280 211 281 282 desc "Update the build system to the latest version" 283 task :update_build do 284 log "Updating the build system" 285 sh 'svn', 'up', RAKE_TASKDIR 286 log "Updating the Rakefile" 287 sh 'rake', '-f', RAKE_TASKDIR + 'Metarakefile' 288 end 289
