summaryrefslogtreecommitdiff
path: root/Rakefile
diff options
context:
space:
mode:
Diffstat (limited to 'Rakefile')
-rw-r--r--Rakefile84
1 files changed, 80 insertions, 4 deletions
diff --git a/Rakefile b/Rakefile
index d759e3b..8bbd7d9 100644
--- a/Rakefile
+++ b/Rakefile
@@ -20,7 +20,31 @@ CLEAN.include FileList['diagrams/*.*'], 'doc', 'coverage', 'tmp',
FileList['java/src/**/*.class']
MAKE = ENV['MAKE'] || %w[gmake make].find { |c| system(c, '-v') }
-require File.dirname(__FILE__) + '/constants'
+PKG_NAME = 'json'
+PKG_TITLE = 'JSON Implementation for Ruby'
+PKG_VERSION = File.read('VERSION').chomp
+PKG_FILES = FileList["**/*"].exclude(/CVS|pkg|tmp|coverage|Makefile|\.nfs\.|\.iml\Z/).exclude(/\.(so|bundle|o|class|#{CONFIG['DLEXT']})$/)
+
+EXT_ROOT_DIR = 'ext/json/ext'
+EXT_PARSER_DIR = "#{EXT_ROOT_DIR}/parser"
+EXT_PARSER_DL = "#{EXT_PARSER_DIR}/parser.#{CONFIG['DLEXT']}"
+RAGEL_PATH = "#{EXT_PARSER_DIR}/parser.rl"
+EXT_PARSER_SRC = "#{EXT_PARSER_DIR}/parser.c"
+PKG_FILES << EXT_PARSER_SRC
+EXT_GENERATOR_DIR = "#{EXT_ROOT_DIR}/generator"
+EXT_GENERATOR_DL = "#{EXT_GENERATOR_DIR}/generator.#{CONFIG['DLEXT']}"
+EXT_GENERATOR_SRC = "#{EXT_GENERATOR_DIR}/generator.c"
+
+JAVA_DIR = "java/src/json/ext"
+JAVA_RAGEL_PATH = "#{JAVA_DIR}/Parser.rl"
+JAVA_PARSER_SRC = "#{JAVA_DIR}/Parser.java"
+JAVA_SOURCES = FileList["#{JAVA_DIR}/*.java"]
+JAVA_CLASSES = []
+JRUBY_PARSER_JAR = File.expand_path("lib/json/ext/parser.jar")
+JRUBY_GENERATOR_JAR = File.expand_path("lib/json/ext/generator.jar")
+
+RAGEL_CODEGEN = %w[rlcodegen rlgen-cd ragel].find { |c| system(c, '-v') }
+RAGEL_DOTGEN = %w[rlgen-dot rlgen-cd ragel].find { |c| system(c, '-v') }
def myruby(*args, &block)
@myruby ||= File.join(CONFIG['bindir'], CONFIG['ruby_install_name'])
@@ -59,8 +83,32 @@ else
end
if defined?(Gem) and defined?(Rake::GemPackageTask)
- spec_pure = Gem::Specification.load(File.dirname(__FILE__) + '/json_pure.gemspec')
-
+ spec_pure = Gem::Specification.new do |s|
+ s.name = 'json_pure'
+ s.version = PKG_VERSION
+ s.summary = PKG_TITLE
+ s.description = "This is a JSON implementation in pure Ruby."
+
+ s.files = PKG_FILES
+
+ s.require_path = 'lib'
+
+ s.bindir = "bin"
+ s.executables = [ "edit_json.rb", "prettify_json.rb" ]
+ s.default_executable = "edit_json.rb"
+
+ s.has_rdoc = true
+ s.extra_rdoc_files << 'README'
+ s.rdoc_options <<
+ '--title' << 'JSON implemention for ruby' << '--main' << 'README'
+ s.test_files.concat Dir['./tests/test_*.rb']
+
+ s.author = "Florian Frank"
+ s.email = "flori@ping.de"
+ s.homepage = "http://flori.github.com/#{PKG_NAME}"
+ s.rubyforge_project = "json"
+ end
+
Rake::GemPackageTask.new(spec_pure) do |pkg|
pkg.need_tar = true
pkg.package_files = PKG_FILES
@@ -68,7 +116,35 @@ if defined?(Gem) and defined?(Rake::GemPackageTask)
end
if defined?(Gem) and defined?(Rake::GemPackageTask) and defined?(Rake::ExtensionTask)
- spec_ext = Gem::Specification.load(File.dirname(__FILE__) + '/json.gemspec')
+ spec_ext = Gem::Specification.new do |s|
+ s.name = 'json'
+ s.version = PKG_VERSION
+ s.summary = PKG_TITLE
+ s.description = "This is a JSON implementation as a Ruby extension in C."
+
+ s.files = PKG_FILES
+
+ s.extensions = FileList['ext/**/extconf.rb']
+
+ s.require_path = EXT_ROOT_DIR
+ s.require_paths << 'ext'
+ s.require_paths << 'lib'
+
+ s.bindir = "bin"
+ s.executables = [ "edit_json.rb", "prettify_json.rb" ]
+ s.default_executable = "edit_json.rb"
+
+ s.has_rdoc = true
+ s.extra_rdoc_files << 'README'
+ s.rdoc_options <<
+ '--title' << 'JSON implemention for Ruby' << '--main' << 'README'
+ s.test_files.concat Dir['./tests/test_*.rb']
+
+ s.author = "Florian Frank"
+ s.email = "flori@ping.de"
+ s.homepage = "http://flori.github.com/#{PKG_NAME}"
+ s.rubyforge_project = "json"
+ end
Rake::GemPackageTask.new(spec_ext) do |pkg|
pkg.need_tar = true