Filter a library from the list of libraries?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Filter a library from the list of libraries?

Boost - Build mailing list

(Many thanks to Steven on answering my last question so quickly)

..

My next challenge is to remove the –ldl library from the list of libraries handed to the shared library linker a.k.a the link.dll action.

I’m trying to use MATCH for this with no success.

 

 

    local libraries = [ feature.get-values     <libraries>  : $(options) ] ;

    toolset.flags clang-vxworks.link     LIBRARIES    : $(libraries) ;

 

    # link shared libraries without libld.a

    for local e in $(libraries)

    {

        local dll_libs = [ MATCH "-l(?!dl)\w+" : $(e) ] ;

    }

    toolset.flags clang-vxworks.link.dll DLL_LIBS : $(dll_libs) ;

 

 

Could someone identify my issue? (perhaps something in the regex needs escaping?) or perhaps suggest a better method to accomplish the same thing?

 

Thanks,

 

Brian Kuhl

Wind River

 


_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: Filter a library from the list of libraries?

Boost - Build mailing list
AMDG

On 08/21/2018 02:49 PM, Kuhl, Brian via Boost-build wrote:

> (Many thanks to Steven on answering my last question so quickly)
> ..
> My next challenge is to remove the -ldl library from the list of libraries handed to the shared library linker a.k.a the link.dll action.
> I'm trying to use MATCH for this with no success.
>
>
>     local libraries = [ feature.get-values     <libraries>  : $(options) ] ;
>     toolset.flags clang-vxworks.link     LIBRARIES    : $(libraries) ;
>
>     # link shared libraries without libld.a
>     for local e in $(libraries)
>     {
>         local dll_libs = [ MATCH "-l(?!dl)\w+" : $(e) ] ;
>     }
>     toolset.flags clang-vxworks.link.dll DLL_LIBS : $(dll_libs) ;
>
>
> Could someone identify my issue? (perhaps something in the regex needs escaping?) or perhaps suggest a better method to accomplish the same thing?
>

"(?!)" is a perlism and is not supported by MATCH.

https://boostorg.github.io/build/manual/develop/index.html#jam.language.rules.builtins.utility._match__

If you just want to remove an option, try
[ set.difference $(libraries) : -ldl ]

In Christ,
Steven Watanabe
_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build