Newbie: few questions

View: New views
5 Messages — Rating Filter:   Alert me  

Newbie: few questions

by Thomas Lehmann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi!

Again about Example: 1-to-1 generator.
When trying to use this like here...

type.register ERR : err ;
generators.register-standard err.convert : ERR : H ;

... then the output is "...found 1 target..." and the defined action will be not executed.
Changing it to...

generators.register-standard err.convert : ERR : CPP ;


the action will be called. How do I use this for headers?

Another issue:

My script (inside of actions) does accept two parameters (input and output);
so I use $(>) and $(<). How can I access part of the file (path, filename, extension)?
Why? The script could do it by I intent to do something like --name=$(>).name
(filename.ext -> filename) But here I get filename.ext.name!


Final:
What do I have to do for using CXX instead of CPP. Registering as a type
like above didn't work.

sincerely
Thomas


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: Newbie: few questions

by Juraj Ivančić :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thomas Lehmann wrote:

> Again about Example: 1-to-1 generator.
> When trying to use this like here...
>
> type.register ERR : err ;
> generators.register-standard err.convert : ERR : H ;
>
> ... then the output is "...found 1 target..." and the defined action
> will be not executed.
> Changing it to...
>
> generators.register-standard err.convert : ERR : CPP ;
>
>
> the action will be called. How do I use this for headers?
>

See

http://www.boost.org/doc/tools/build/doc/html/bbv2/reference/generated_headers.html

> My script (inside of actions) does accept two parameters (input and output);
> so I use $(>) and $(<). How can I access part of the file (path,
> filename, extension)?
> Why? The script could do it by I intent to do something like
> --name=$(>).name
> (filename.ext -> filename) But here I get filename.ext.name!

See

http://www.boost.org/doc/tools/jam/jam/language.html
Section VARIABLES.

E. g.

$(1:P) for parent directory
$(1:BS) for filename + extension

> Final:
> What do I have to do for using CXX instead of CPP. Registering as a type
> like above didn't work.

Try this:

type.register CXX : cxx : CPP ;

The last parameter is optional and denotes 'base-type'.
Although I think that boost build does this somewhere for you.


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: Newbie: few questions

by Thomas Lehmann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

A)
The CXX problem is not solved that way:
type.register CXX : cxx : CPP ;
error: Attempting to specify type for suffix "cxx"
error: Old type CPP, New type CXX

B)
The header generation still does not work. I have a lib target and
inside a dummy.err. From this a dummyerrors.h should be generated. The
documentation (link) is working with a lib AND a exe target using this
specifier ...

I have:

lib dummy
    : dummyerrors.err
    : <link>static
      <implicit-dependency>dummyerrors.err
    ;

BJam is not yelling but also it is not doing the job...
Also it is not very nice to write dummyerrors.err two times as here...
Can somebody help, please?

sincerely
Thomas

Juraj Ivančić schrieb:
Thomas Lehmann wrote:
  
Again about Example: 1-to-1 generator.
When trying to use this like here...

type.register ERR : err ;
generators.register-standard err.convert : ERR : H ;

... then the output is "...found 1 target..." and the defined action 
will be not executed.
Changing it to...

generators.register-standard err.convert : ERR : CPP ;


the action will be called. How do I use this for headers?

    

See

http://www.boost.org/doc/tools/build/doc/html/bbv2/reference/generated_headers.html

  
My script (inside of actions) does accept two parameters (input and output);
so I use $(>) and $(<). How can I access part of the file (path, 
filename, extension)?
Why? The script could do it by I intent to do something like 
--name=$(>).name
(filename.ext -> filename) But here I get filename.ext.name!
    

See

http://www.boost.org/doc/tools/jam/jam/language.html
Section VARIABLES.

E. g.

$(1:P) for parent directory
$(1:BS) for filename + extension

  
Final:
What do I have to do for using CXX instead of CPP. Registering as a type
like above didn't work.
    

Try this:

type.register CXX : cxx : CPP ;

The last parameter is optional and denotes 'base-type'.
Although I think that boost build does this somewhere for you.


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

  


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: Newbie: few questions

by Juraj Ivančić :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thomas Lehmann wrote:
> A)
> The CXX problem is not solved that way:
>
> type.register CXX : cxx : CPP ;
>
> error: Attempting to specify type for suffix "cxx"
> error: Old type CPP, New type CXX

This means that Boost build already recognizes cxx as CPP type.
.cxx should behave exactly like .cpp.

> B)
> The header generation still does not work. I have a lib target and
> inside a dummy.err. From this a dummyerrors.h should be generated. The
> documentation (link) is working with a lib AND a exe target using this
> specifier ...
>
> I have:
>
> lib dummy
>     : dummyerrors.err
>     : <link>static
>       <implicit-dependency>dummyerrors.err
>     ;
>
> BJam is not yelling but also it is not doing the job...
> Also it is not very nice to write dummyerrors.err two times as here...
> Can somebody help, please?

Boost build will not build/generate anything unless it is a main target
or a dependency for a main target. Here dummyerrors.h is not generated
because it is not needed by the main target 'lib dummy' (becase .h files
are not type which ends up in a lib). If you want to explicitly invoke
this conversion you could declare a target like this:

h dummyerrors : dummyerrors.err ;

In case you have a library which includes 'dummyerrors.h' and you want
it to catch changes made in the .err file this is where you would use
<implicit-dependency>.

h dummyerrors : dummyerrors.err ;
# The following line prevents a top level target from being built
# unless required by another target.
explicit dummyerrors ;

lib dummy
:    cxx_which_includes_dummyerrors_h.cxx
:    <implicit-dependency>dummyerrors
;

HTH

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: Newbie: few questions

by Thomas Lehmann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

A)
...but using CPP a .cpp file will be generated and using CXX is not known:

error: Unknown target type CXX

B) Perfect; the header issue is working fine now! Thanks!

Thomas

Juraj Ivančić schrieb:
Thomas Lehmann wrote:
  
A)
The CXX problem is not solved that way:

type.register CXX : cxx : CPP ;

error: Attempting to specify type for suffix "cxx"
error: Old type CPP, New type CXX
    

This means that Boost build already recognizes cxx as CPP type.
.cxx should behave exactly like .cpp.

  
B)
The header generation still does not work. I have a lib target and
inside a dummy.err. From this a dummyerrors.h should be generated. The
documentation (link) is working with a lib AND a exe target using this
specifier ...

I have:

lib dummy
    : dummyerrors.err
    : <link>static
      <implicit-dependency>dummyerrors.err
    ;

BJam is not yelling but also it is not doing the job...
Also it is not very nice to write dummyerrors.err two times as here...
Can somebody help, please?
    

Boost build will not build/generate anything unless it is a main target
or a dependency for a main target. Here dummyerrors.h is not generated 
because it is not needed by the main target 'lib dummy' (becase .h files
are not type which ends up in a lib). If you want to explicitly invoke 
this conversion you could declare a target like this:

h dummyerrors : dummyerrors.err ;

In case you have a library which includes 'dummyerrors.h' and you want
it to catch changes made in the .err file this is where you would use
<implicit-dependency>.

h dummyerrors : dummyerrors.err ;
# The following line prevents a top level target from being built
# unless required by another target.
explicit dummyerrors ;

lib dummy
:    cxx_which_includes_dummyerrors_h.cxx
:    <implicit-dependency>dummyerrors
;

HTH

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

  


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build