From 08194928895cf7bd27da6a2791bcb0386ac75f21 Mon Sep 17 00:00:00 2001 From: "Mike D. Lowis" Date: Sun, 26 Feb 2012 22:18:46 -0500 Subject: [PATCH] Updated rake config to generate library artifacts --- rakefile.rb | 73 ++++++++------------------- source/lexer/ilexer.cpp | 5 +- source/parser/ast/ast.cpp | 11 ++-- source/parser/iparser.cpp | 5 +- source/parser/llkparser/llkparser.cpp | 1 - 5 files changed, 30 insertions(+), 65 deletions(-) diff --git a/rakefile.rb b/rakefile.rb index 69518ea..06f20f2 100644 --- a/rakefile.rb +++ b/rakefile.rb @@ -1,22 +1,30 @@ include Rake::DSL -require 'tools/rake_utils/buildconfig.rb' -require 'tools/rake_utils/testconfig.rb' +require 'tools/rake_utils/source/library.rb' #------------------------------------------------------------------------------ # Configuration Objects #------------------------------------------------------------------------------ -# Configuration for the binary artifact -Binary = BuildConfig.new({ - :name => 'binary', - :compiler_options => [ '-c', '-Wall', '-Werror' ], - :source_files => [ 'source/**/*.c*' ], - :include_dirs => [ 'source/**/' ], +# Configuration for the static library +ParseUtilsStatic = Library.new({ + :name => 'libparse-utils.a', + :output_dir => 'build/static', + :compiler_options => [ '-c', '-Wall', '-Werror', '-o'], + :source_files => [ 'source/**/*.c*' ], + :include_dirs => [ 'source/**/' ], }) - -# Configuration for the unit tests -UnitTest = TestConfig.new({ - :test_files => [ 'tests/source/**.h' ], +ParseUtilsStatic.setup_default_rake_tasks() + +# Configuration for the shared library +ParseUtilsShared = Library.new({ + :name => 'libparse-utils.so', + :output_dir => 'build/shared', + :compiler_options => [ '-c', '-Wall', '-Werror', '-o'], + :linker_bin => 'c++', + :linker_options => ['-shared', '-o'], + :source_files => [ 'source/**/*.c*' ], + :include_dirs => [ 'source/**/' ], }) +ParseUtilsShared.setup_default_rake_tasks() #------------------------------------------------------------------------------ # Release Tasks @@ -24,45 +32,6 @@ UnitTest = TestConfig.new({ desc 'Execute a complete build including unit tests and binary' task :default => [ :release ] -desc 'Display build configuration info' -task :config do - puts 'Release Configuration' - puts '---------------------' - puts Binary - puts '' - puts 'Unit Test Configuration' - puts '-----------------------' - puts UnitTest -end - desc 'Build and link the binary' -task :release => [ Binary.binary_name() ] - -task Binary.binary_name() => Binary.directories() + Binary.objects() do - Binary.link() -end - -rule(/obj\/.+.o$/ => Binary.obj_src_lookup()) do |t| - Binary.compile(t.source,t.name) -end - -#------------------------------------------------------------------------------ -# Testing Tasks -#------------------------------------------------------------------------------ -desc 'Execute all unit tests' -task :test => UnitTest.directories() + UnitTest.runners() do - UnitTest.run_all_test_runners(); -end - -rule '_runner.exe' => UnitTest.bin_obj_lookup() do |t| - UnitTest.link([t.source],t.name) -end - -rule( /test\/.+_runner.o$/ => UnitTest.obj_src_lookup() ) do |t| - UnitTest.compile(t.source,t.name) -end - -rule '_runner.cpp' => UnitTest.src_test_lookup() do |t| - UnitTest.generate_test_runner(t.source,t.name) -end +task :release => [ ParseUtilsStatic.name(), ParseUtilsShared.name() ] diff --git a/source/lexer/ilexer.cpp b/source/lexer/ilexer.cpp index 6d8cac5..25e260f 100644 --- a/source/lexer/ilexer.cpp +++ b/source/lexer/ilexer.cpp @@ -1,7 +1,6 @@ #include #include "ilexer.h" #include "exception.h" -#include "cork.h" using namespace std; @@ -17,7 +16,7 @@ void ILexer::setInput(char* in) { line = 1; column = 0; - input = _new istringstream( string( in ) ); + input = new istringstream( string( in ) ); consume(); } @@ -25,7 +24,7 @@ void ILexer::setInput(string& in) { line = 1; column = 0; - input = _new istringstream( in ); + input = new istringstream( in ); consume(); } diff --git a/source/parser/ast/ast.cpp b/source/parser/ast/ast.cpp index d090428..44600f1 100644 --- a/source/parser/ast/ast.cpp +++ b/source/parser/ast/ast.cpp @@ -2,27 +2,26 @@ #include #include #include -#include "cork.h" AST::AST(ASTNodeType type) { node_type = type; node_text = ""; - node_children = _new list(); + node_children = new list(); } AST::AST(ASTNodeType type, const char* text) { node_type = type; node_text = string(text); - node_children = _new list(); + node_children = new list(); } AST::AST(ASTNodeType type, std::string text) { node_type = type; node_text = text; - node_children = _new list(); + node_children = new list(); } AST::AST(ASTNodeType type, int child_count, ...) @@ -31,7 +30,7 @@ AST::AST(ASTNodeType type, int child_count, ...) int i = 0; node_type = type; node_text = ""; - node_children = _new list(); + node_children = new list(); va_start (arg_list, child_count); for (i = 0; i < child_count ; i++) { @@ -87,7 +86,7 @@ void AST::addChild(AST* node) AST* AST::clone(void) { - AST* new_clone = _new AST( node_type, node_text ); + AST* new_clone = new AST( node_type, node_text ); list::iterator it = node_children->begin(); for(; it != node_children->end(); it++) { diff --git a/source/parser/iparser.cpp b/source/parser/iparser.cpp index 82829b7..a6ccb2a 100644 --- a/source/parser/iparser.cpp +++ b/source/parser/iparser.cpp @@ -19,7 +19,6 @@ *****************************************************************************/ #include #include "iparser.h" -#include "cork.h" using namespace std; @@ -40,12 +39,12 @@ IParser::~IParser() void IParser::setInput(char* in) { - input = _new istringstream( string( in ) ); + input = new istringstream( string( in ) ); } void IParser::setInput(string& in) { - input = _new istringstream( in ); + input = new istringstream( in ); } void IParser::setInput(istream* in) diff --git a/source/parser/llkparser/llkparser.cpp b/source/parser/llkparser/llkparser.cpp index 4569dec..d7a2469 100644 --- a/source/parser/llkparser/llkparser.cpp +++ b/source/parser/llkparser/llkparser.cpp @@ -1,6 +1,5 @@ #include "llkparser.h" #include "exception.h" -#include "cork.h" LLKParser::LLKParser(int k_val, ILexer* lxer) : k(k_val), next(0), lexer(lxer) { -- 2.52.0