Boost logo

Boost-Build :

Subject: Re: [Boost-build] [boost] [1.56] Sorry but no PDF doc build (build script has been broken)
From: Vladimir Prus (ghost_at_[hidden])
Date: 2014-08-11 12:20:09


On 08/11/2014 03:24 PM, John Maddock wrote:
>>> Sorry folks, but as things stand there will be no PDF build of the docs
>>> for 1.56 as the build script appears to be hopelessly broken :-(
>>>
>>> Each time I fix one Boost.Build error it just leads to another, and
>>> frankly at present I have neither time nor inclination to keep tracking
>>> these down. If anyone wants to experience some pain then trying to
>>> invoke bjam in /doc/pdf/ will give you an idea of some of the issues.
>>
>> You mean :
>
> Nope, I *think* that one is probably caused by you not having an FO processor registered in your user-config.jam, I get:
>
> error: at ..\..\libs\bind\doc\Jamfile.v2:6
> error: Attempt to redeclare already registered project id '/boost/doc'.
> error: Original project:
> error: Name: Jamfile<M:\data\boost\boost-1_56_0\doc>
> error: Module: Jamfile<M:\data\boost\boost-1_56_0\doc>
> error: Main id: /boost/doc
> error: File: ..\Jamfile.v2
> error: Location: ..
> error: New project:
> error: Module: Jamfile<M:\data\boost\boost-1_56_0\libs\bind\doc>
> error: File: ..\..\libs\bind\doc\Jamfile.v2
> error: Location: ../../libs/bind/doc
>
> Which I can workaround, but then I get the same error from Boost.Context, work around that one as well

I would say that's fixing an actual bug in these jamfiles? Could you push these to git?

> and then I get:
>
> M:/data/boost/boost-1_56_0/tools/build/src/build\targets.jam:397: in find-really
> *** argument error
> * rule project.is-registered-id ( id )
> * called with: ( )
> * missing argument id
> M:/data/boost/boost-1_56_0/tools/build/src/build\project.jam:600:see definition of rule 'project.is-registered-id' being called
> M:/data/boost/boost-1_56_0/tools/build/src/build\targets.jam:457: in class_at_project-target.find
> M:/data/boost/boost-1_56_0/tools/build/src/build\targets.jam:841: in resolve-reference
> M:/data/boost/boost-1_56_0/tools/build/src/build\targets.jam:858: in targets.generate-from-reference
> M:/data/boost/boost-1_56_0/tools/build/src/build\targets.jam:1245: in generate-dependencies
> M:/data/boost/boost-1_56_0/tools/build/src/build\targets.jam:1302: in class_at_basic-target.generate
> M:/data/boost/boost-1_56_0/tools/build/src/build\targets.jam:757: in generate-really
> M:/data/boost/boost-1_56_0/tools/build/src/build\targets.jam:729: in class_at_main-target.generate
> M:/data/boost/boost-1_56_0/tools/build/src/build\targets.jam:272: in class_at_project-target.generate
> M:/data/boost/boost-1_56_0/tools/build/src\build-system.jam:707: in load
> M:\data\boost\boost-1_56_0\tools\build\src/kernel\modules.jam:289: in import
> M:\data\boost\boost-1_56_0\tools\build\src/kernel/bootstrap.jam:139: in boost-build
> M:\data\boost\boost-1_56_0\boost-build.jam:17: in module scope
>
> Which so freaking inscrutable that I'm pretty sure it's a Japanese translation of Klingon.

Does the patch below make for a more readable complaint?

diff --git a/src/build/targets.jam b/src/build/targets.jam
index 3bd39a3..fb199ca 100644
--- a/src/build/targets.jam
+++ b/src/build/targets.jam
@@ -830,6 +830,10 @@ rule resolve-reference ( target-reference : project )
      # Separate target name from properties override.
      local split = [ MATCH "^([^<]*)(/(<.*))?$" : $(target-reference) ] ;
      local id = $(split[1]) ;
+ if ! $(split) || ! $(id)
+ {
+ error "Malformed target reference $(target-reference)" ;
+ }
      local sproperties = ;
      if $(split[3])
      {


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk