Sha256: 93078cb5dacbc1aef3f7d6949d344d606c1916fee57adacd950730e9f784eb18

Contents?: true

Size: 1.44 KB

Versions: 3

Compression:

Stored size: 1.44 KB

Contents

module Autobuild
    def self.orogen(opts, &proc)
        Orogen.new(opts, &proc)
    end

    class Orogen < CMake
        class << self
            attr_accessor :corba
        end

        attr_accessor :corba

        attr_accessor :orogen_file
        def initialize(*args, &config)
            @corba       = Orogen.corba
            super

            @orogen_file ||= "#{File.basename(name)}.orogen"

            # Find out where orogen is, and make sure the configurestamp depend
            # on it. Ignore if orogen is too old to have a --base-dir option
            orogen_root = File.join(`orogen --base-dir`.chomp, 'orogen')
            if !orogen_root.empty?
                file genstamp => Autobuild.source_tree(orogen_root)
            end

            file configurestamp => genstamp
            file genstamp => File.join(srcdir, orogen_file) do
                regen
            end
        end

        def depends_on(*packages)
            super

            packages.each do |p|
                file genstamp => Package[p].installstamp
            end
        end

        def genstamp; File.join(srcdir, '.orogen', 'orogen-stamp') end

        def regen
            cmdline = [Autobuild.tool('orogen')]
            cmdline << '--corba' if corba
            cmdline << orogen_file

            Dir.chdir(srcdir) do
                Subprocess.run name, 'orogen', *cmdline
                touch_stamp genstamp
            end
        end
    end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
autobuild-1.2.15 lib/autobuild/packages/orogen.rb
autobuild-1.2.14 lib/autobuild/packages/orogen.rb
autobuild-1.2.13 lib/autobuild/packages/orogen.rb