Search code examples
filenamesboost-build

boost build: dots in target file name


Is it possible to have a target which generates file with dots in the filename? I don't need them in target name, just in the filename it produces, so for example

lib Auhorization@Plugin : ...

would be perfectly fine, if it produces libAuthorization.Plugin.so and if I can use it from other targets:

exe Application : ... : <library>Authorization@Plugin ...

As using dots is the company convention, I cannot just use underscores instead.

One option would be some requirement changing the name of target - like <name>.

I also cannot use simple rename post build step, as the Application must be linked to libAuthorization.Plugin.so, not libAuthorization_Plugin.so. But if something else is possible, I could use it as well.

The build process itself runs under Linux using gcc.


Solution

  • For any complex naming schemes you can use the <tag> feature. For your purpose it could look like this:

    import regex ;
    import type ;
    
    rule at-to-dot ( name : type : property-set )
    {
        local name = [ regex.replace $(name) @ . ] ;
        local ext = [ type.generated-target-suffix $(type) : $(property-set) ] ;
        return $(name).$(ext) ;
    }
    
    lib Auhorization@Plugin : bbb.cpp : <tag>@at-to-dot ;