Sha256: 5e3cdea907eb21cb072b9e0733a4ebd914d7d7747c7927376258143f10946f36

Contents?: true

Size: 1.24 KB

Versions: 3

Compression:

Stored size: 1.24 KB

Contents

# -*- coding: UTF-8 -*-

require 'mj/tools/subprocess'


module BuildTool; module BuildSystem


    # The make buildsystem.
    #
    # Provides helper methods for other build-system currently.
    class Make

        include MJ::Tools::SubProcess

        class MakeError < BuildTool::Error; end

        # Class Methods
        class << self

            def make( target, build_directory, environment )
                rc = self.execute( "make #{target ? target : "" }", build_directory, environment ) do |line|
                    line.chomp
                    if line.index( /[^\w]error:/ )
                        logger.error( line )
                    elsif line.index( /\/ld:/ )
                        logger.error( line )
                    elsif line.index( /(core dumped)/ )
                        logger.error( line )
                    elsif line.index( /undefined reference to / )
                        logger.error( line )
                    else
                        logger.verbose( line )
                    end
                end

                if rc != 0
                    raise MakeError, "make #{ target || "" } failed with error code #{rc}";
                end
                rc
            end

        end


    end


end; end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
build-tool-0.6.9 lib/build-tool/build-system/make.rb
build-tool-0.6.8 lib/build-tool/build-system/make.rb
build-tool-0.6.7 lib/build-tool/build-system/make.rb