List Info

Thread: stage plus name not working for me




stage plus name not working for me
user name
2006-02-27 17:47:57
Hi there, I have a shared library that builds like
this: 

lib MY_Blend
    # sources
    : [ glob ./src/*.cpp ]
      Foundation OpenMaya OpenMayaAnim 
    :
      <include>./src
      <link>shared
    ;

Then I am trying to install it and rename the
installed library this way:

stage MY_Blend_plugin_install
   : MY_Blend
   : <location>$(LIBS_TOP)/install/maya/plugins
     <name>MY_Blend.mll
    ;


Unfortunately I am getting a weird errror:
"<name> property cannot be specified when
staging
several targets"

And I don't understand this because it seems to me
there is only one target in the sources. Any ideas?
Thanks


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection
around 
http://mail.yahoo.com 
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
stage plus name not working for me
user name
2006-02-28 06:30:35
Hi Miguel,
> Hi there, I have a shared library that builds like
> this:
>
....
> Then I am trying to install it and rename the
> installed library this way:
>
> stage MY_Blend_plugin_install
>
>    : MY_Blend
>    : <location>$(LIBS_TOP)/install/maya/plugins
>
>      <name>MY_Blend.mll
>     ;
...

> Unfortunately I am getting a weird errror:
> "<name> property cannot be specified when
staging
> several targets"

Well, on Windows, DLL is a pair of targets -- DLL and import
lib. On Linux, 
with current CVS, you'd get a different error:

   In 'install': <name> property specified with
target that requires relinking

Generally speaking, on Linux, if you change a name of a
shared library, you 
need to relink all other libraries and executable files that
refer to it.

Of course, this is not needed for plugins, but Boost.Build
does not know if 
this is plugin, or not, and I don't know an easy way to
detect if there are 
other libraries linking to this one. And this restriction
probably does not 
makes sense for Windows, but we don't distinguish this case
yet.

Am I right that this is plugin for a specific tool, and the
extension should 
always be ".mll". Then you can just do this:

  import type ;
  type.register MLL : mll : SHARED_LIB ;

you can put this code in Jamroot, and then use this:

  mll MY_Blend
    # sources
    : [ glob ./src/*.cpp ]
      Foundation OpenMaya OpenMayaAnim 
    :
      <include>./src
      <link>shared
    ;

That's from memory, but should work, and won't require
renaming library on 
install time.

- Volodya
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )