mirror of
https://github.com/boostorg/context.git
synced 2026-01-19 04:02:17 +00:00
Currently we do not have fcontext related ASM files for Windows ARM64. So we can use winfib context-impl only for Windows ARM64. Fixes issue : https://github.com/boostorg/boost/issues/1070 Related to PR: https://github.com/boostorg/boost/pull/1077
237 lines
6.6 KiB
Plaintext
237 lines
6.6 KiB
Plaintext
# Boost.Context Library Tests Jamfile
|
|
|
|
# Copyright Oliver Kowalke 2009.
|
|
# Distributed under the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or copy at
|
|
# http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
import common ;
|
|
import feature ;
|
|
import indirect ;
|
|
import modules ;
|
|
import os ;
|
|
import testing ;
|
|
import toolset ;
|
|
import-search /boost/config/checks ;
|
|
import config : requires ;
|
|
using flags ;
|
|
|
|
project boost/context/test
|
|
: requirements
|
|
<library>/boost/array//boost_array
|
|
<library>/boost/lexical_cast//boost_lexical_cast
|
|
<library>/boost/context//boost_context
|
|
<library>/boost/variant//boost_variant
|
|
<target-os>linux,<toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
|
|
<target-os>linux,<toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
|
|
<toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack
|
|
<toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
|
|
<link>static
|
|
<threading>multi
|
|
<variant>release
|
|
;
|
|
|
|
|
|
rule native-impl ( properties * )
|
|
{
|
|
local result ;
|
|
if ( <target-os>android in $(properties) ||
|
|
<target-os>darwin in $(properties) ||
|
|
<target-os>openbsd in $(properties) )
|
|
{
|
|
result = <build>no ;
|
|
}
|
|
else if ( <target-os>windows in $(properties) && <architecture>arm in $(properties) && <address-model>64 in $(properties) )
|
|
{
|
|
return <context-impl>winfib ; # for windows arm64 always use winfib and skip ASM
|
|
}
|
|
else if ( ! ( <target-os>windows in $(properties) ) )
|
|
{
|
|
result = <context-impl>ucontext ;
|
|
}
|
|
else
|
|
{
|
|
result = <context-impl>winfib ;
|
|
}
|
|
return $(result) ;
|
|
}
|
|
|
|
rule fcontext-impl ( properties * )
|
|
{
|
|
# Skip on Windows ARM64
|
|
if ( <target-os>windows in $(properties) &&
|
|
<architecture>arm in $(properties) &&
|
|
<address-model>64 in $(properties) )
|
|
{
|
|
return <build>no ; # for windows arm64 always use winfib and skip fcontext
|
|
}
|
|
else
|
|
{
|
|
return <context-impl>fcontext ;
|
|
}
|
|
}
|
|
|
|
|
|
obj is_libstdcxx : is_libstdcxx.cpp ;
|
|
explicit is_libstdcxx ;
|
|
|
|
local only-when-segmented-stack-is-available =
|
|
[ check-has-flag <cxxflags>-fsplit-stack : <segmented-stacks>on : <build>no ]
|
|
[ check-target-builds is_libstdcxx "is libstdc++" : : <build>no ]
|
|
;
|
|
|
|
test-suite minimal :
|
|
[ run test_invoke.cpp :
|
|
: :
|
|
[ requires cxx11_auto_declarations
|
|
cxx11_constexpr
|
|
cxx11_defaulted_functions
|
|
cxx11_final
|
|
cxx11_hdr_thread
|
|
cxx11_hdr_tuple
|
|
cxx11_lambdas
|
|
cxx11_noexcept
|
|
cxx11_nullptr
|
|
cxx11_rvalue_references
|
|
cxx11_template_aliases
|
|
cxx11_thread_local
|
|
cxx11_variadic_templates ] ]
|
|
|
|
[ run test_apply.cpp :
|
|
: :
|
|
[ requires cxx11_auto_declarations
|
|
cxx11_constexpr
|
|
cxx11_defaulted_functions
|
|
cxx11_final
|
|
cxx11_hdr_thread
|
|
cxx11_hdr_tuple
|
|
cxx11_lambdas
|
|
cxx11_noexcept
|
|
cxx11_nullptr
|
|
cxx11_rvalue_references
|
|
cxx11_template_aliases
|
|
cxx11_thread_local
|
|
cxx11_variadic_templates ] ]
|
|
|
|
[ run test_fiber.cpp :
|
|
: :
|
|
<conditional>@fcontext-impl
|
|
[ requires cxx11_auto_declarations
|
|
cxx11_constexpr
|
|
cxx11_defaulted_functions
|
|
cxx11_final
|
|
cxx11_hdr_thread
|
|
cxx11_hdr_tuple
|
|
cxx11_lambdas
|
|
cxx11_noexcept
|
|
cxx11_nullptr
|
|
cxx11_rvalue_references
|
|
cxx11_template_aliases
|
|
cxx11_thread_local
|
|
cxx11_variadic_templates ]
|
|
: test_fiber_asm ]
|
|
|
|
[ run test_fiber.cpp :
|
|
: :
|
|
<conditional>@native-impl
|
|
[ requires cxx11_auto_declarations
|
|
cxx11_constexpr
|
|
cxx11_defaulted_functions
|
|
cxx11_final
|
|
cxx11_hdr_thread
|
|
cxx11_hdr_tuple
|
|
cxx11_lambdas
|
|
cxx11_noexcept
|
|
cxx11_nullptr
|
|
cxx11_rvalue_references
|
|
cxx11_template_aliases
|
|
cxx11_thread_local
|
|
cxx11_variadic_templates ]
|
|
: test_fiber_native ]
|
|
|
|
[ run test_fiber.cpp :
|
|
: :
|
|
<context-impl>ucontext
|
|
$(only-when-segmented-stack-is-available)
|
|
[ requires cxx11_auto_declarations
|
|
cxx11_constexpr
|
|
cxx11_defaulted_functions
|
|
cxx11_final
|
|
cxx11_hdr_thread
|
|
cxx11_hdr_tuple
|
|
cxx11_lambdas
|
|
cxx11_noexcept
|
|
cxx11_nullptr
|
|
cxx11_rvalue_references
|
|
cxx11_template_aliases
|
|
cxx11_thread_local
|
|
cxx11_variadic_templates ]
|
|
: test_fiber_segmented ]
|
|
|
|
[ run test_callcc.cpp :
|
|
: :
|
|
<conditional>@fcontext-impl
|
|
[ requires cxx11_auto_declarations
|
|
cxx11_constexpr
|
|
cxx11_defaulted_functions
|
|
cxx11_final
|
|
cxx11_hdr_thread
|
|
cxx11_hdr_tuple
|
|
cxx11_lambdas
|
|
cxx11_noexcept
|
|
cxx11_nullptr
|
|
cxx11_rvalue_references
|
|
cxx11_template_aliases
|
|
cxx11_thread_local
|
|
cxx11_variadic_templates ]
|
|
: test_callcc_asm ]
|
|
|
|
[ run test_callcc.cpp :
|
|
: :
|
|
<conditional>@native-impl
|
|
[ requires cxx11_auto_declarations
|
|
cxx11_constexpr
|
|
cxx11_defaulted_functions
|
|
cxx11_final
|
|
cxx11_hdr_thread
|
|
cxx11_hdr_tuple
|
|
cxx11_lambdas
|
|
cxx11_noexcept
|
|
cxx11_nullptr
|
|
cxx11_rvalue_references
|
|
cxx11_template_aliases
|
|
cxx11_thread_local
|
|
cxx11_variadic_templates ]
|
|
: test_callcc_native ]
|
|
|
|
[ run test_callcc.cpp :
|
|
: :
|
|
<context-impl>ucontext
|
|
$(only-when-segmented-stack-is-available)
|
|
[ requires cxx11_auto_declarations
|
|
cxx11_constexpr
|
|
cxx11_defaulted_functions
|
|
cxx11_final
|
|
cxx11_hdr_thread
|
|
cxx11_hdr_tuple
|
|
cxx11_lambdas
|
|
cxx11_noexcept
|
|
cxx11_nullptr
|
|
cxx11_rvalue_references
|
|
cxx11_template_aliases
|
|
cxx11_thread_local
|
|
cxx11_variadic_templates ]
|
|
: test_callcc_segmented ] ;
|
|
|
|
|
|
test-suite full :
|
|
minimal ;
|
|
|
|
test-suite fc :
|
|
[ run test_fcontext.cpp :
|
|
: :
|
|
] ;
|
|
|
|
explicit minimal ;
|
|
explicit fc ;
|