<br><br><div class="gmail_quote">2012/9/12 Sylvain Joyeux <span dir="ltr">&lt;<a href="mailto:sylvain.joyeux@dfki.de" target="_blank">sylvain.joyeux@dfki.de</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><div class="im">
    <br>
    <blockquote type="cite">
      <div class="gmail_quote">
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div bgcolor="#FFFFFF" text="#000000">
            <div>
              <div>
                <blockquote type="cite">
                  <div class="gmail_quote">
                    <div> But then in my .autobuild file, I guessed that
                      boost_package &#39;boost1.48&#39; would have worked, but
                      autoproj complains that boost_package does not
                      exist.<br>
                      In source.yml, I have set the archive url for
                      boost1.48.<br>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
            OK ... You need to have a look in autoproj/autobuild.rb.
            That is where the package types are made available for
            autoproj users (in short: you need to define the
            boost_package method at the toplevel, not on the Autobuild
            module). This is a bit of a historical thing ...<span><font color="#888888"><br>
              </font></span></div>
        </blockquote>
        <div><br>
          ok. but I don&#39;t find where the &#39;:cmake&#39; package type is
          defined... how should I call package_common to point to the
          BoostPackage class I have defined?<br>
        </div>
      </div>
    </blockquote></div>
    This sucks ... Thanks for pointing it out.<br>
    <br>
    The chain is:<br>
      <br>
      at toplevel: def cmake_package ... end<br>
      calls: package_common(:cmake, ...)<br>
      calls: Autoproj.define(:cmake, options)<br>
      calls: Autobuild.cmake(options)<br>
    <br>
    So, you do need to define the method on Autobuild (the way you did)
    and then define the boost_package at toplevel, which <br></div></blockquote><div><br>Could you give me an example with :boost instead of :cmake? Cause cmake is working, for sure, but when I call package_common(:boost, options), I have the following error:<br>
ample.autobuild(package_set=rose):43: undefined method `boost&#39; for Autobuild:Module<br>  in /home/lesire/work/robotis/autoproj/remotes/rose/init.rb:25:in `boost_package&#39;<br>  in /home/lesire/work/robotis/autoproj/remotes/rose/ample.autobuild:43<br>
<br>And I don&#39;t know what to put instead...<br><br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    In the future, I will change this so that the code gets package
    classes directly (while keeping backward compatibility), which makes
    a lot more sense. Instead of defining your own package type (which
    is a one-time thing ...) you will then be able to directly define
    the whole package in an autobuild file:<br>
    <br>
      package_common(Autobuild::Configurable, &#39;boost&#39;) do |pkg|<br>
        def pkg.configure<br>
           ...<br>
        end<br>
        def pkg.build<br>
           ...<br>
        end<br>
      end<span class="HOEnZb"><font color="#888888"><br>
    <br>
    Sylvain
  </font></span></div>

</blockquote></div><br>