summaryrefslogtreecommitdiffstats
path: root/tasks/csts.rake
blob: be656e3f1baa7d848029e869913dfd220cab28cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

# GLOBAL CONFIG
F_CHMOD           = 0644
D_CHMOD           = 0755

# VERSION
RUBY_1_9        = RUBY_VERSION =~ /^1\.9/
WIN             = (RUBY_PLATFORM =~ /mswin|cygwin/)
SUDO            = (WIN ? "" : "sudo" )

# EXTENSIONS
HAVE_EXT        = File.directory? "#{EXT_DIR}"
EXT_CONF_FILES  = FileList["#{EXT_DIR}/**/extconf.rb"]
EXT_SRC_FILES   = FileList["#{EXT_DIR}/**/*.{c,h}"]
EXT_FILES       = EXT_SRC_FILES + EXT_CONF_FILES

# FILES
RAKE_FILES      = FileList[RAKEFILE, PRJ_FILE, GEM_SPEC_FILE, SETUP_FILE, "#{RAKE_DIR}/*"]
BIN_FILES       = FileList["#{BIN_DIR}/**/*"]
LIB_FILES       = FileList["#{LIB_DIR}/**/*.rb"]
TEST_FILES      = FileList["#{TEST_DIR}/**/test_*.rb"]
RDOC_FILES      = FileList[README, CHANGES, LICENSE]

# DIST FILES
DIST_FILES       = FileList[]
DIST_FILES.include(RAKE_FILES)
DIST_FILES.include(BIN_FILES)
DIST_FILES.include(LIB_FILES)
DIST_FILES.include(TEST_FILES)
DIST_FILES.include(RDOC_FILES)
DIST_FILES.include(DATA_FILES)
DIST_FILES.include(EXT_FILES) if HAVE_EXT
DIST_FILES.include("#{RDOC_DIR}/**/*.{html,css}", 'man/*.[0-9]')
DIST_FILES.exclude('**/tmp_*', '**/*.tmp')

# 
CLEAN.include( 'README' ) if File.exist? 'README.rb'
CLEAN.include( 'CHANGES' ) if File.exist? 'CHANGES.rb'
CLEAN.include( FileList["#{EXT_DIR}/**/*.{o,so}","#{EXT_DIR}/**/Makefile"], '.config' ) if HAVE_EXT

# LOADPATH
REQUIRE_PATHS   = [LIB_DIR]
REQUIRE_PATHS   << FileList["#{EXT_DIR}/**"] if HAVE_EXT
#$LOAD_PATH.concat REQUIRE_PATHS

# C EXTENSIONS TASKS
if HAVE_EXT
    CONFIG_OPTS = ENV['CONFIG']
    file_create '.config' do
        ruby "setup.rb -q config #{CONFIG_OPTS}"
    end

    desc 'Configure and make C extensions. The CONFIG variable is passed to \'setup.rb config\''
    task :make_ext => '.config' do
        ruby "setup.rb -q setup"
    end

    task :test_ext => :make_ext
    desc 'Run test after making the extensions.'
    task :test => :make_ext do
        Rake::Task[:test_ext].invoke
    end
end

# CERTIFICATE
cert_dir = ENV['CERT_DIR'] ||= File.expand_path(File.join('~', '.gem'))
HAVE_CERT = File.readable?(File.join(cert_dir, 'gem-private_key.pem')) and File.readable?(File.join(cert_dir, 'gem-public_cert.pem'))
if HAVE_CERT
    CERT_PRIVATE = File.join(cert_dir, 'gem-private_key.pem')
    CERT_PUBLIC = File.join(cert_dir, 'gem-public_cert.pem')
end