2
0
mirror of https://github.com/boostorg/context.git synced 2026-01-19 04:02:17 +00:00
Files
context/test/Jamfile.v2
Vasanth Karanam 68ea30dfd7 Add Windows ARM64 support
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
2025-09-23 20:44:35 +01:00

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 ;