From 0535f6c2ec6f013a64432f1903b1fb5839decb36 Mon Sep 17 00:00:00 2001 From: isidorostsa Date: Sat, 17 Feb 2024 17:40:07 +0200 Subject: [PATCH] move code to HPX_SetupStdexec --- CMakeLists.txt | 24 ------------------------ cmake/HPX_SetupStdexec.cmake | 24 ++++++++++++++++++++++++ libs/CMakeLists.txt | 5 ----- 3 files changed, 24 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 014e0b230c51..e0d135d8271c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -601,30 +601,6 @@ hpx_option( ADVANCED ) -if(Stdexec_ROOT OR HPX_WITH_FETCH_STDEXEC) - # explicitly enable HPX_WITH_STDEXEC - set(HPX_WITH_STDEXEC ON) - - # prefer Stdexec_ROOT over HPX_WITH_FETCH_STDEXEC by default - if(Stdexec_ROOT AND HPX_WITH_FETCH_STDEXEC) - set(HPX_WITH_FETCH_STDEXEC OFF) - hpx_warn( - "Both Stdexec_ROOT and HPX_WITH_FETCH_STDEXEC are provided. HPX_WITH_FETCH_STDEXEC is set to OFF." - ) - endif() -elseif(HPX_WITH_STDEXEC) - hpx_error( - "HPX_WITH_STDEXEC is set to ON, but Stdexec_ROOT is not provided and HPX_WITH_FETCH_STDEXEC is not enabled. Please provide Stdexec_ROOT or set HPX_WITH_FETCH_STDEXEC to ON." - ) -endif() - -# STDEXEC requires C++20 -if(HPX_WITH_STDEXEC AND HPX_WITH_CXX_STANDARD LESS 20) - hpx_error( - "HPX_WITH_STDEXEC is set to ON, but HPX_WITH_CXX_STANDARD is less than 20. Please set HPX_WITH_CXX_STANDARD to 20 or higher." - ) -endif() - if(HPX_WITH_FETCH_STDEXEC) hpx_option( HPX_WITH_STDEXEC_TAG diff --git a/cmake/HPX_SetupStdexec.cmake b/cmake/HPX_SetupStdexec.cmake index 28af68810e74..58a9cf03a069 100644 --- a/cmake/HPX_SetupStdexec.cmake +++ b/cmake/HPX_SetupStdexec.cmake @@ -4,6 +4,30 @@ # 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) +if(Stdexec_ROOT OR HPX_WITH_FETCH_STDEXEC) + # explicitly enable HPX_WITH_STDEXEC + set(HPX_WITH_STDEXEC ON) + + # prefer Stdexec_ROOT over HPX_WITH_FETCH_STDEXEC by default + if(Stdexec_ROOT AND HPX_WITH_FETCH_STDEXEC) + set(HPX_WITH_FETCH_STDEXEC OFF) + hpx_warn( + "Both Stdexec_ROOT and HPX_WITH_FETCH_STDEXEC are provided. HPX_WITH_FETCH_STDEXEC is set to OFF." + ) + endif() +elseif(HPX_WITH_STDEXEC) + hpx_error( + "HPX_WITH_STDEXEC is set to ON, but Stdexec_ROOT is not provided and HPX_WITH_FETCH_STDEXEC is not enabled. Please provide Stdexec_ROOT or set HPX_WITH_FETCH_STDEXEC to ON." + ) +endif() + +# STDEXEC requires C++20 +if(HPX_WITH_STDEXEC AND HPX_WITH_CXX_STANDARD LESS 20) + hpx_error( + "HPX_WITH_STDEXEC is set to ON, but HPX_WITH_CXX_STANDARD is less than 20. Please set HPX_WITH_CXX_STANDARD to 20 or higher." + ) +endif() + if(HPX_WITH_STDEXEC AND NOT TARGET STDEXEC::stdexec) hpx_add_config_define(HPX_HAVE_STDEXEC) diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt index e7340db5bdd5..cc4381550257 100644 --- a/libs/CMakeLists.txt +++ b/libs/CMakeLists.txt @@ -113,11 +113,6 @@ if(TARGET APEX::apex) target_link_libraries(hpx_full INTERFACE APEX::apex) endif() -# Do I need this here? -# if(TARGET STDEXEC::stdexec) -# target_link_libraries(hpx_full INTERFACE STDEXEC::stdexec) -# endif() - if(TARGET Gperftools::gperftools) target_link_libraries(hpx_full PRIVATE Gperftools::gperftools) endif()