Skip to content

The cxx14_constexpr and cxx14_return_type_deduction requirements in build.jam are problematic #1460

Description

@pdimov

cxx14_constexpr and cxx14_return_type_deduction are checked in the global project requirements in build.jam here

geometry/build.jam

Lines 49 to 53 in fe0f2f8

: requirements
[ requires
cxx14_constexpr
cxx14_return_type_deduction
]

This is somewhat problematic because it affects all Boost builds. E.g. b2 --with-headers install does this

Performing configuration checks

    - default address-model    : 64-bit (cached) [1]
    - default architecture     : x86 (cached) [1]
    - symlinks supported       : yes (cached)
    - cxx14_constexpr          : yes (cached) [2]
    - cxx14_return_type_deduction : yes (cached) [2]
    - cxx14_constexpr          : yes (cached) [3]
    - cxx14_return_type_deduction : yes (cached) [3]
    - cxx14_constexpr          : yes (cached) [4]
    - cxx14_return_type_deduction : yes (cached) [4]
    - cxx14_constexpr          : yes (cached) [5]
    - cxx14_return_type_deduction : yes (cached) [5]
    - cxx14_constexpr          : yes (cached) [6]
    - cxx14_return_type_deduction : yes (cached) [6]
    - cxx14_constexpr          : yes (cached) [7]
    - cxx14_return_type_deduction : yes (cached) [7]
    - cxx14_constexpr          : yes (cached) [8]
    - cxx14_return_type_deduction : yes (cached) [8]
    - cxx14_constexpr          : yes (cached) [9]
    - cxx14_return_type_deduction : yes (cached) [9]

which is not needed in order to install the headers.

It would be better if these requirements are moved where they are actually needed, although this might involve a bit of replication.

(Unrelated, <toolset>msvc:<asynch-exceptions>on is long obsolete, essentially never used in practice, and should probably be removed.)

Ideally, build.jam would change from this

project /boost/geometry
    : common-requirements
        <include>include
    : requirements
        [ requires
            cxx14_constexpr
            cxx14_return_type_deduction
        ]
        <toolset>msvc:<asynch-exceptions>on
    ;

explicit
    [ alias boost_geometry : : : : <library>$(boost_dependencies) ]
    [ alias all : boost_geometry test example doc/src/examples index extensions ]
    ;

to this

project /boost/geometry ;

explicit
    [ alias boost_geometry : : : : <include>include <library>$(boost_dependencies) ]
    [ alias all : boost_geometry test example doc/src/examples index extensions ]
    ;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions