Skip to content
Snippets Groups Projects
  • George Joseph's avatar
    43901e94
    build_tools: Add ability to download variants to download_externals · 43901e94
    George Joseph authored
    Some external packages have multiple variants that apply to different
    builds of asterisk.  The DPMA for instance has a "bundled" variant that
    needs to be downloaded if asterisk was configured with
    --with-pjproject-bundled.
    
    There are 2 ways to specify variants:
    
    If you need the user to make the decision about which variant to
    download, simply create multiple menuselect "member" entries like so...
    
    <member name="res_digium_phone" displayname="..snipped..">
      <support_level>external</support_level>
      <depend>xmlstarlet</depend>
      <depend>bash</depend>
      <defaultenabled>no</defaultenabled>
    </member>
    
    <member name="res_digium_phone-bundled" displayname="..snipped..">
      <support_level>external</support_level>
      <depend>xmlstarlet</depend>
      <depend>bash</depend>
      <defaultenabled>no</defaultenabled>
    </member>
    
    Note that the second entry has "-<variant>" appended to the name.
    You can then use the existing menuselect facilities to restrict which
    members to enable or disable.  Youy probably don't want the user to
    enable multiple at the same time.
    
    If you want to hide the details of the variants, the better way to
    do it is to create 1 member with "variant" elements.
    
    <member name="res_digium_phone" displayname="..snipped..">
      <support_level>external</support_level>
      <depend>xmlstarlet</depend>
      <depend>bash</depend>
      <defaultenabled>no</defaultenabled>
      <member_data>
        <downloader>
          <variants>
            <variant tag="bundled"
              condition='[[ "$PJPROJECT_BUNDLED" = "yes" ]]'/>
          </variants>
        </downloader>
      </member_data>
    </member>
    
    The condition must be a bash expression suitable for use with an "if"
    statement.  Any environment variable can be used plus those available
    in makeopts.
    
    In this case, if asterisk was configured with --with-pjproject-bundled
    the bundled variant will be automatically downloaded.  Otherwise the
    normal version will be downloaded.
    
    Change-Id: I4de23e06d4492b0a65e105c8369966547d0faa3e
    43901e94
    History
    build_tools: Add ability to download variants to download_externals
    George Joseph authored
    Some external packages have multiple variants that apply to different
    builds of asterisk.  The DPMA for instance has a "bundled" variant that
    needs to be downloaded if asterisk was configured with
    --with-pjproject-bundled.
    
    There are 2 ways to specify variants:
    
    If you need the user to make the decision about which variant to
    download, simply create multiple menuselect "member" entries like so...
    
    <member name="res_digium_phone" displayname="..snipped..">
      <support_level>external</support_level>
      <depend>xmlstarlet</depend>
      <depend>bash</depend>
      <defaultenabled>no</defaultenabled>
    </member>
    
    <member name="res_digium_phone-bundled" displayname="..snipped..">
      <support_level>external</support_level>
      <depend>xmlstarlet</depend>
      <depend>bash</depend>
      <defaultenabled>no</defaultenabled>
    </member>
    
    Note that the second entry has "-<variant>" appended to the name.
    You can then use the existing menuselect facilities to restrict which
    members to enable or disable.  Youy probably don't want the user to
    enable multiple at the same time.
    
    If you want to hide the details of the variants, the better way to
    do it is to create 1 member with "variant" elements.
    
    <member name="res_digium_phone" displayname="..snipped..">
      <support_level>external</support_level>
      <depend>xmlstarlet</depend>
      <depend>bash</depend>
      <defaultenabled>no</defaultenabled>
      <member_data>
        <downloader>
          <variants>
            <variant tag="bundled"
              condition='[[ "$PJPROJECT_BUNDLED" = "yes" ]]'/>
          </variants>
        </downloader>
      </member_data>
    </member>
    
    The condition must be a bash expression suitable for use with an "if"
    statement.  Any environment variable can be used plus those available
    in makeopts.
    
    In this case, if asterisk was configured with --with-pjproject-bundled
    the bundled variant will be automatically downloaded.  Otherwise the
    normal version will be downloaded.
    
    Change-Id: I4de23e06d4492b0a65e105c8369966547d0faa3e
res.xml 473 B