1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00
puma--puma/projects/mongrel_service/Rakefile
luislavena a6c058e7a6 Exclude mongrel_service executable from being _linked_ by RubyGems.
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@737 19e92222-5c0b-0410-8929-a290d50e31e9
2007-10-23 01:11:18 +00:00

91 lines
2.4 KiB
Ruby

require 'echoe'
require 'tools/freebasic'
# Task :package needs compile before doing the gem stuff.
# (weird behavior of Rake?)
task :package => [:compile]
echoe_spec = Echoe.new("mongrel_service") do |p|
p.summary = "Mongrel Native Win32 Service Plugin for Rails"
p.summary += " (debug build)" unless ENV['RELEASE']
p.description = "This plugin offer native win32 services for rails, powered by Mongrel."
p.author = "Luis Lavena"
p.platform = Gem::Platform::WIN32
p.dependencies = ['gem_plugin >=0.2.3', 'mongrel >=1.0.2', 'win32-service >=0.5.0']
p.executable_pattern = ""
p.need_tar_gz = false
p.need_zip = true
p.certificate_chain = ['~/gem_certificates/mongrel-public_cert.pem',
'~/gem_certificates/luislavena-mongrel-public_cert.pem']
p.require_signed = true
end
desc "Compile native code"
task :compile => [:native_lib, :native_service]
# global options shared by all the project in this Rakefile
OPTIONS = {
:debug => false,
:profile => false,
:errorchecking => :ex,
:mt => true,
:pedantic => true }
OPTIONS[:debug] = true if ENV['DEBUG']
OPTIONS[:profile] = true if ENV['PROFILE']
OPTIONS[:errorchecking] = :exx if ENV['EXX']
OPTIONS[:pedantic] = false if ENV['NOPEDANTIC']
# ServiceFB namespace (lib)
namespace :lib do
project_task 'servicefb' do
lib 'ServiceFB'
build_to 'lib'
define 'SERVICEFB_DEBUG_LOG' unless ENV['RELEASE']
source 'lib/ServiceFB/ServiceFB.bas'
option OPTIONS
end
project_task 'servicefb_utils' do
lib 'ServiceFB_Utils'
build_to 'lib'
define 'SERVICEFB_DEBUG_LOG' unless ENV['RELEASE']
source 'lib/ServiceFB/ServiceFB_Utils.bas'
option OPTIONS
end
end
# add lib namespace to global tasks
#include_projects_of :lib
task :native_lib => "lib:build"
task :clean => "lib:clobber"
# mongrel_service (native)
namespace :native do
project_task 'mongrel_service' do
executable 'mongrel_service'
build_to 'bin'
define 'DEBUG_LOG' unless ENV['RELEASE']
define "GEM_VERSION=#{echoe_spec.version}"
main 'native/mongrel_service.bas'
source 'native/console_process.bas'
lib_path 'lib'
library 'ServiceFB', 'ServiceFB_Utils'
library 'user32', 'advapi32', 'psapi'
option OPTIONS
end
end
#include_projects_of :native
task :native_service => "native:build"
task :clean => "native:clobber"