Rakefile
author Michael Granger <mgranger@laika.com>
Fri, 05 Sep 2008 23:58:48 +0000
changeset 11 7fc2d1713795
parent 5 804e1c2b9a40
child 12 3cc813140c80
permissions -rw-r--r--
Updated to new build system.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
     1
#!rake
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
     2
#
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
     3
# Ruby-Ezmlm rakefile
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
     4
#
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
     5
# Based on various other Rakefiles, especially one by Ben Bleything
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
     6
#
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
     7
# Copyright (c) 2008 The FaerieMUD Consortium
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
     8
#
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
     9
# Authors:
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    10
#  * LAIKA Information Systems <opensource@laika.com>
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    11
#
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    12
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    13
BEGIN {
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    14
	require 'pathname'
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    15
	basedir = Pathname.new( __FILE__ ).dirname
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    16
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    17
	libdir = basedir + "lib"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    18
	extdir = basedir + "ext"
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    19
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    20
	$LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    21
	$LOAD_PATH.unshift( extdir.to_s ) unless $LOAD_PATH.include?( extdir.to_s )
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    22
}
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    23
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    24
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    25
require 'rbconfig'
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    26
require 'rubygems'
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    27
require 'rake'
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    28
require 'rake/rdoctask'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    29
require 'rake/testtask'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    30
require 'rake/packagetask'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    31
require 'rake/clean'
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    32
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    33
$dryrun = false
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    34
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    35
### Config constants
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    36
BASEDIR       = Pathname.new( __FILE__ ).dirname.relative_path_from( Pathname.getwd )
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    37
BINDIR        = BASEDIR + 'bin'
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    38
LIBDIR        = BASEDIR + 'lib'
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    39
EXTDIR        = BASEDIR + 'ext'
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    40
DOCSDIR       = BASEDIR + 'docs'
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    41
PKGDIR        = BASEDIR + 'pkg'
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    42
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    43
PROJECT_NAME  = 'Ruby-Ezmlm'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    44
PKG_NAME      = PROJECT_NAME.downcase
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    45
PKG_SUMMARY   = 'A programmatic interface to ezmlm-idx lists'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    46
VERSION_FILE  = LIBDIR + 'ezmlm.rb'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    47
PKG_VERSION   = VERSION_FILE.read[ /VERSION = '(\d+\.\d+\.\d+)'/, 1 ]
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    48
PKG_FILE_NAME = "#{PKG_NAME.downcase}-#{PKG_VERSION}"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    49
GEM_FILE_NAME = "#{PKG_FILE_NAME}.gem"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    50
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    51
ARTIFACTS_DIR = Pathname.new( ENV['CC_BUILD_ARTIFACTS'] || 'artifacts' )
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    52
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    53
TEXT_FILES    = %w( Rakefile ChangeLog README LICENSE ).collect {|filename| BASEDIR + filename }
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    54
BIN_FILES     = Pathname.glob( BINDIR + '*' ).delete_if {|item| item =~ /\.svn/ }
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    55
LIB_FILES     = Pathname.glob( LIBDIR + '**/*.rb' ).delete_if {|item| item =~ /\.svn/ }
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    56
EXT_FILES     = Pathname.glob( EXTDIR + '**/*.{c,h,rb}' ).delete_if {|item| item =~ /\.svn/ }
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    57
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    58
SPECDIR       = BASEDIR + 'spec'
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    59
SPECLIBDIR    = SPECDIR + 'lib'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    60
SPEC_FILES    = Pathname.glob( SPECDIR + '**/*_spec.rb' ).delete_if {|item| item =~ /\.svn/ } +
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    61
                Pathname.glob( SPECLIBDIR + '**/*.rb' ).delete_if {|item| item =~ /\.svn/ }
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    62
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    63
TESTDIR       = BASEDIR + 'tests'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    64
TEST_FILES    = Pathname.glob( TESTDIR + '**/*.tests.rb' ).delete_if {|item| item =~ /\.svn/ }
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    65
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    66
RAKE_TASKDIR  = BASEDIR + 'rake'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    67
RAKE_TASKLIBS = Pathname.glob( RAKE_TASKDIR + '*.rb' )
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    68
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    69
LOCAL_RAKEFILE = BASEDIR + 'Rakefile.local'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    70
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    71
EXTRA_PKGFILES = []
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    72
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    73
RELEASE_FILES = TEXT_FILES + 
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    74
	SPEC_FILES + 
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    75
	TEST_FILES + 
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    76
	BIN_FILES +
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    77
	LIB_FILES + 
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    78
	EXT_FILES + 
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    79
	RAKE_TASKLIBS +
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    80
	EXTRA_PKGFILES
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    81
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    82
RELEASE_FILES << LOCAL_RAKEFILE if LOCAL_RAKEFILE.exist?
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    83
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    84
COVERAGE_MINIMUM = ENV['COVERAGE_MINIMUM'] ? Float( ENV['COVERAGE_MINIMUM'] ) : 85.0
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    85
RCOV_EXCLUDES = 'spec,tests,/Library/Ruby,/var/lib,/usr/local/lib'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    86
RCOV_OPTS = [
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    87
	'--exclude', RCOV_EXCLUDES,
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    88
	'--xrefs',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    89
	'--save',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    90
	'--callsites',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    91
	#'--aggregate', 'coverage.data' # <- doesn't work as of 0.8.1.2.0
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    92
  ]
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    93
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
    94
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    95
# Subversion constants -- directory names for releases and tags
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    96
SVN_TRUNK_DIR    = 'trunk'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    97
SVN_RELEASES_DIR = 'releases'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    98
SVN_BRANCHES_DIR = 'branches'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
    99
SVN_TAGS_DIR     = 'tags'
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   100
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   101
SVN_DOTDIR       = BASEDIR + '.svn'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   102
SVN_ENTRIES      = SVN_DOTDIR + 'entries'
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   103
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   104
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   105
### Load some task libraries that need to be loaded early
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   106
require RAKE_TASKDIR + 'helpers.rb'
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   107
require RAKE_TASKDIR + 'svn.rb'
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   108
require RAKE_TASKDIR + 'verifytask.rb'
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   109
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   110
# Define some constants that depend on the 'svn' tasklib
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   111
PKG_BUILD = get_svn_rev( BASEDIR ) || 0
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   112
SNAPSHOT_PKG_NAME = "#{PKG_FILE_NAME}.#{PKG_BUILD}"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   113
SNAPSHOT_GEM_NAME = "#{SNAPSHOT_PKG_NAME}.gem"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   114
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   115
# Documentation constants
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   116
RDOCDIR = DOCSDIR + 'api'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   117
RDOC_OPTIONS = [
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   118
	'-w', '4',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   119
	'-SHN',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   120
	'-i', '.',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   121
	'-m', 'README',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   122
	'-W', 'http://opensource.laika.com/wiki/ruby-ezmlm/browser/trunk/'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   123
  ]
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   124
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   125
# Release constants
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   126
SMTP_HOST = 'mail.faeriemud.org'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   127
SMTP_PORT = 465 # SMTP + SSL
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   128
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   129
# Project constants
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   130
PROJECT_HOST = 'deveiate.org'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   131
PROJECT_PUBDIR = "/usr/local/www/public/code"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   132
PROJECT_DOCDIR = "#{PROJECT_PUBDIR}/#{PKG_NAME}"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   133
PROJECT_SCPPUBURL = "#{PROJECT_HOST}:#{PROJECT_PUBDIR}"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   134
PROJECT_SCPDOCURL = "#{PROJECT_HOST}:#{PROJECT_DOCDIR}"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   135
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   136
# Rubyforge stuff
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   137
RUBYFORGE_GROUP = 'laika'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   138
RUBYFORGE_PROJECT = 'ezmlm'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   139
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   140
# Gem dependencies: gemname => version
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   141
DEPENDENCIES = {
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   142
	'tmail' => '>=1.2.3.1',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   143
}
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   144
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   145
# Developer Gem dependencies: gemname => version
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   146
DEVELOPMENT_DEPENDENCIES = {
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   147
	'amatch'      => '>= 0.2.3',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   148
	'rake'        => '>= 0.8.1',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   149
	'rcodetools'  => '>= 0.7.0.0',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   150
	'rcov'        => '>= 0',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   151
	'RedCloth'    => '>= 4.0.3',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   152
	'rspec'       => '>= 0',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   153
	'rubyforge'   => '>= 0',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   154
	'termios'     => '>= 0',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   155
	'text-format' => '>= 1.0.0',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   156
	'tmail'       => '>= 1.2.3.1',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   157
	'ultraviolet' => '>= 0.10.2',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   158
	'libxml-ruby' => '>= 0.8.3',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   159
}
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   160
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   161
# Non-gem requirements: packagename => version
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   162
REQUIREMENTS = {
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   163
	'ezmlm-idx' => '>=0',
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   164
}
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   165
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   166
# RubyGem specification
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   167
GEMSPEC   = Gem::Specification.new do |gem|
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   168
	gem.name              = PKG_NAME.downcase
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   169
	gem.version           = PKG_VERSION
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   170
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   171
	gem.summary           = PKG_SUMMARY
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   172
	gem.description       = <<-EOD
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   173
	Ruby-Ezmlm provides a programmatic interface to ezmlm-idx lists, their archives, and the command
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   174
	line utilities that interact with them. The library is intended to provide two sets of
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   175
	functionality: the management and setup of lists, and programmatic access to the message archive.
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   176
	EOD
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   177
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   178
	gem.authors           = 'LAIKA Information Systems'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   179
	gem.email             = 'opensource@laika.com'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   180
	gem.homepage          = 'http://opensource.laika.com/wiki/ruby-ezmlm'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   181
	gem.rubyforge_project = RUBYFORGE_PROJECT
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   182
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   183
	gem.has_rdoc          = true
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   184
	gem.rdoc_options      = RDOC_OPTIONS
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   185
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   186
	gem.bindir            = BINDIR.relative_path_from(BASEDIR).to_s
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   187
	
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   188
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   189
	gem.files             = RELEASE_FILES.
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   190
		collect {|f| f.relative_path_from(BASEDIR).to_s }
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   191
	gem.test_files        = SPEC_FILES.
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   192
		collect {|f| f.relative_path_from(BASEDIR).to_s }
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   193
		
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   194
	DEPENDENCIES.each do |name, version|
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   195
		version = '>= 0' if version.length.zero?
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   196
		gem.add_runtime_dependency( name, version )
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   197
	end
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   198
	
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   199
	DEVELOPMENT_DEPENDENCIES.each do |name, version|
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   200
		version = '>= 0' if version.length.zero?
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   201
		gem.add_development_dependency( name, version )
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   202
	end
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   203
	
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   204
	REQUIREMENTS.each do |name, version|
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   205
		gem.requirements << [ name, version ].compact.join(' ')
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   206
	end
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   207
end
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   208
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   209
# Manual-generation config
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   210
MANUALDIR = DOCSDIR + 'manual'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   211
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   212
$trace = Rake.application.options.trace ? true : false
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   213
$dryrun = Rake.application.options.dryrun ? true : false
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   214
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   215
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   216
# Load any remaining task libraries
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   217
RAKE_TASKLIBS.each do |tasklib|
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   218
	next if tasklib =~ %r{/(helpers|svn|verifytask)\.rb$}
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   219
	begin
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   220
		require tasklib
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   221
	rescue ScriptError => err
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   222
		fail "Task library '%s' failed to load: %s: %s" %
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   223
			[ tasklib, err.class.name, err.message ]
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   224
		trace "Backtrace: \n  " + err.backtrace.join( "\n  " )
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   225
	rescue => err
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   226
		log "Task library '%s' failed to load: %s: %s. Some tasks may not be available." %
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   227
			[ tasklib, err.class.name, err.message ]
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   228
		trace "Backtrace: \n  " + err.backtrace.join( "\n  " )
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   229
	end
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   230
end
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   231
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   232
# Load any project-specific rules defined in 'Rakefile.local' if it exists
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   233
import LOCAL_RAKEFILE if LOCAL_RAKEFILE.exist?
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   234
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   235
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   236
#####################################################################
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   237
###	T A S K S 	
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   238
#####################################################################
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   239
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   240
### Default task
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   241
task :default  => [:clean, :local, :spec, :rdoc, :package]
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   242
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   243
### Task the local Rakefile can append to -- no-op by default
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   244
task :local
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   245
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   246
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   247
### Task: clean
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   248
CLEAN.include 'coverage'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   249
CLOBBER.include 'artifacts', 'coverage.info', PKGDIR
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   250
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   251
# Target to hinge on ChangeLog updates
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   252
file SVN_ENTRIES
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   253
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   254
### Task: changelog
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   255
file 'ChangeLog' => SVN_ENTRIES.to_s do |task|
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   256
	log "Updating #{task.name}"
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   257
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   258
	changelog = make_svn_changelog()
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   259
	File.open( task.name, 'w' ) do |fh|
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   260
		fh.print( changelog )
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   261
	end
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   262
end
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   263
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   264
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   265
### Task: cruise (Cruisecontrol task)
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   266
desc "Cruisecontrol build"
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   267
task :cruise => [:clean, :spec, :package] do |task|
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   268
	raise "Artifacts dir not set." if ARTIFACTS_DIR.to_s.empty?
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   269
	artifact_dir = ARTIFACTS_DIR.cleanpath
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   270
	artifact_dir.mkpath
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   271
	
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   272
	coverage = BASEDIR + 'coverage'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   273
	if coverage.exist? && coverage.directory?
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   274
		$stderr.puts "Copying coverage stats..."
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   275
		FileUtils.cp_r( 'coverage', artifact_dir )
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   276
	end
5
804e1c2b9a40 * Added rdoc-generation to the cruise task and the artifacts that get saved
Michael Granger <mgranger@laika.com>
parents: 1
diff changeset
   277
	
1
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   278
	$stderr.puts "Copying packages..."
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   279
	FileUtils.cp_r( FileList['pkg/*'].to_a, artifact_dir )
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   280
end
1d3cfd4837a8 Filled out the project, added Ezmlm module + spec.
Michael Granger <mgranger@laika.com>
parents:
diff changeset
   281
11
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   282
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   283
desc "Update the build system to the latest version"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   284
task :update_build do
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   285
	log "Updating the build system"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   286
	sh 'svn', 'up', RAKE_TASKDIR
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   287
	log "Updating the Rakefile"
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   288
	sh 'rake', '-f', RAKE_TASKDIR + 'Metarakefile'
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   289
end
7fc2d1713795 Updated to new build system.
Michael Granger <mgranger@laika.com>
parents: 5
diff changeset
   290