2
0
mirror of https://github.com/boostorg/pfr.git synced 2026-01-19 04:22:13 +00:00

Add support for modular build structure. (#174)

This commit is contained in:
René Ferdinand Rivera Morell
2024-08-24 04:34:29 -05:00
committed by GitHub
parent 60391652fa
commit e1e908e804
6 changed files with 46 additions and 12 deletions

View File

@@ -5,13 +5,17 @@
# http://www.boost.org/LICENSE_1_0.txt)
#
import-search /boost/config/checks ;
import python ;
import testing ;
import ../../config/checks/config : requires ;
import config : requires ;
project
: source-location .
: requirements
<library>/boost/config//boost_config
<library>/boost/preprocessor//boost_preprocessor
<define>BOOST_PFR_DETAIL_STRICT_RVALUE_TESTING=1
;

View File

@@ -5,13 +5,20 @@
# http://www.boost.org/LICENSE_1_0.txt)
#
import-search /boost/config/checks ;
import python ;
import testing ;
import ../../config/checks/config : requires ;
import config : requires ;
project
: source-location .
: requirements
<library>/boost/config//boost_config
<library>/boost/core//boost_core
<library>/boost/container_hash//boost_container_hash
<library>/boost/type_index//boost_type_index
<define>BOOST_PFR_DETAIL_STRICT_RVALUE_TESTING=1
[ requires cxx14_constexpr ]
;
@@ -73,7 +80,7 @@ local BLACKLIST_TESTS_FOR_LOOPHOLE =
tie_anonymous_const_field # boost::pfr::structure_tie gives compile time error on const fields
;
# Those tests are either
# Those tests are either
# * reflecting a non literal type
# * or calling boost::pfr::get and the result is a user defined structure
local BLACKLIST_TESTS_FOR_CLASSIC =
@@ -99,7 +106,7 @@ for local source_file in [ glob ./run/*.cpp ] [ glob ../../example/*.cpp ]
{
local target_name = $(source_file[1]:B) ;
pfr_tests += [ run $(source_file) : : : $(STRUCTURED_BINDING_ENGINE) : $(target_name)_sb ] ;
if ! $(target_name) in $(BLACKLIST_TESTS_FOR_LOOPHOLE)
{
pfr_tests += [ run $(source_file) : : : $(LOOPHOLE_ENGINE) : $(target_name)_lh ] ;

View File

@@ -8,8 +8,10 @@
# The way to make it union and UB free by X-Ryl669, https://github.com/X-Ryl669
#
import-search /boost/config/checks ;
import testing ;
import ../../config/checks/config : requires ;
import config : requires ;
########## BEGIN of helpers to detect C++20 features support
@@ -38,6 +40,7 @@ explicit compiler_supports_cxx20_nontype_tplarg ;
project
: source-location .
: requirements
<library>/boost/core//boost_core
<define>BOOST_PFR_DETAIL_STRICT_RVALUE_TESTING=1
[ check-target-builds ../core_name//compiler_supports_cxx20_address_of_non_static_member_tplarg : : [ check-target-builds ../core_name//compiler_supports_cxx20_nontype_tplarg : : <build>no ] ]
;