diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 73bb838..1d0cdce 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -78,7 +78,7 @@ jobs: echo "which tar" which tar export TAR="/usr/bin/tar" - R -e "library(devtools); install_github('xtensor-stack/Xtensor.R', configure.args = '--novendor')" + R -e "library(devtools); install_github('fbourgin/Xtensor.R', ref = 'update_xtensor', configure.args = '--novendor')" - name: print R HOME run: | @@ -96,7 +96,7 @@ jobs: if [[ "${{matrix.sys.compiler}}" = "gcc" ]]; then export CC=gcc-${{matrix.sys.version}}; export CXX=g++-${{matrix.sys.version}}; else export CC=clang; export CXX=clang++; fi mkdir ~/.R touch ~/.R/Makevars - echo "CXX14=$CXX" >> ~/.R/Makevars - echo "CXX14FLAGS=-fPIC -O2" >> ~/.R/Makevars + echo "CXX17=$CXX" >> ~/.R/Makevars + echo "CXX17FLAGS=-fPIC -O2" >> ~/.R/Makevars Rscript ./unittest.R diff --git a/CMakeLists.txt b/CMakeLists.txt index cffb224..371b123 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,8 +16,8 @@ set(XTENSOR_R_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) # Versionning # =========== -set(XTENSOR_REQUIRED_VERSION 0.25.0) -set(XTL_REQUIRED_VERSION 0.7.7) +set(XTENSOR_REQUIRED_VERSION 0.26.0) +set(XTL_REQUIRED_VERSION 0.8.0) set(XTENSOR_R_CONFIG_FILE "${XTENSOR_R_INCLUDE_DIR}/xtensor-r/xtensor_r_config.hpp") @@ -57,6 +57,8 @@ add_library(xtensor-r INTERFACE) target_include_directories(xtensor-r INTERFACE $ $) +target_compile_features(xtensor-r INTERFACE cxx_std_17) + target_link_libraries(xtensor-r INTERFACE xtensor) get_target_property(inc_dir xtensor-r INTERFACE_INCLUDE_DIRECTORIES) message(STATUS "${inc_dir}") diff --git a/environment-dev.yml b/environment-dev.yml index b3fd2a9..04ae19d 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - cmake - - xtensor=0.25.0 + - xtensor=0.26.0 - r-base - r-rcpp # test dependencies diff --git a/include/xtensor-r/rarray.hpp b/include/xtensor-r/rarray.hpp index b7fd112..ef0b4cb 100644 --- a/include/xtensor-r/rarray.hpp +++ b/include/xtensor-r/rarray.hpp @@ -15,11 +15,11 @@ #include #include -#include "xtensor/xbuffer_adaptor.hpp" -#include "xtensor/xcontainer.hpp" -#include "xtensor/xiterator.hpp" -#include "xtensor/xsemantic.hpp" -#include "xtensor/xutils.hpp" +#include "xtensor/containers/xbuffer_adaptor.hpp" +#include "xtensor/containers/xcontainer.hpp" +#include "xtensor/core/xiterator.hpp" +#include "xtensor/core/xsemantic.hpp" +#include "xtensor/utils/xutils.hpp" #include "xtensor-r/rcontainer.hpp" diff --git a/include/xtensor-r/rcontainer.hpp b/include/xtensor-r/rcontainer.hpp index b275ef1..6c6ce0a 100644 --- a/include/xtensor-r/rcontainer.hpp +++ b/include/xtensor-r/rcontainer.hpp @@ -14,8 +14,8 @@ #include #include -#include "xtensor/xbuffer_adaptor.hpp" -#include "xtensor/xcontainer.hpp" +#include "xtensor/containers/xbuffer_adaptor.hpp" +#include "xtensor/containers/xcontainer.hpp" #include "xtl/xsequence.hpp" @@ -142,7 +142,7 @@ namespace xt using difference_type = typename storage_type::difference_type; #ifndef XTENSOR_R_ALLOW_REINTERPRETATION - static_assert(xtl::disjunction, + static_assert(std::disjunction, std::is_same, std::is_same, std::is_same, diff --git a/include/xtensor-r/roptional.hpp b/include/xtensor-r/roptional.hpp index 5f721fa..5b2e6b9 100644 --- a/include/xtensor-r/roptional.hpp +++ b/include/xtensor-r/roptional.hpp @@ -16,8 +16,8 @@ #include -#include -#include +#include +#include #include "rarray.hpp" #include "rtensor.hpp" diff --git a/include/xtensor-r/rtensor.hpp b/include/xtensor-r/rtensor.hpp index 1f07b41..4992d5b 100644 --- a/include/xtensor-r/rtensor.hpp +++ b/include/xtensor-r/rtensor.hpp @@ -14,10 +14,10 @@ #include #include -#include "xtensor/xbuffer_adaptor.hpp" -#include "xtensor/xiterator.hpp" -#include "xtensor/xsemantic.hpp" -#include "xtensor/xutils.hpp" +#include "xtensor/containers/xbuffer_adaptor.hpp" +#include "xtensor/core/xiterator.hpp" +#include "xtensor/core/xsemantic.hpp" +#include "xtensor/utils/xutils.hpp" #include "rcontainer.hpp" diff --git a/include/xtensor-r/rvectorize.hpp b/include/xtensor-r/rvectorize.hpp index c4acad7..2cbd66d 100644 --- a/include/xtensor-r/rvectorize.hpp +++ b/include/xtensor-r/rvectorize.hpp @@ -13,7 +13,7 @@ #include #include "rarray.hpp" -#include "xtensor/xvectorize.hpp" +#include "xtensor/core/xvectorize.hpp" namespace xt { diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 093a636..7c07bc4 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -33,12 +33,12 @@ string(TOUPPER "${CMAKE_BUILD_TYPE}" U_CMAKE_BUILD_TYPE) if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Intel") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wunused-parameter -Wextra -Wreorder -Wconversion") - CHECK_CXX_COMPILER_FLAG("-std=c++14" HAS_CPP14_FLAG) + CHECK_CXX_COMPILER_FLAG("-std=c++17" HAS_CPP17_FLAG) - if (HAS_CPP14_FLAG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + if (HAS_CPP17_FLAG) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") else() - message(FATAL_ERROR "Unsupported compiler -- xtensor requires C++14 support!") + message(FATAL_ERROR "Unsupported compiler -- xtensor requires C++17 support!") endif() endif() diff --git a/test/rcpp_tests.cpp b/test/rcpp_tests.cpp index ddc58f5..7914fc1 100644 --- a/test/rcpp_tests.cpp +++ b/test/rcpp_tests.cpp @@ -7,13 +7,13 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -// [[Rcpp::plugins(cpp14)]] +// [[Rcpp::plugins(cpp17)]] // [[Rcpp::depends(xtensor)]] #include "xtensor-r/rcontainer.hpp" #include "xtensor-r/rarray.hpp" -#include "xtensor/xmath.hpp" -#include "xtensor/xio.hpp" +#include "xtensor/core/xmath.hpp" +#include "xtensor/io/xio.hpp" // [[Rcpp::export]] int modify_cpp(xt::rarray& x) diff --git a/test/test_common.hpp b/test/test_common.hpp index f21044b..d67f4c5 100644 --- a/test/test_common.hpp +++ b/test/test_common.hpp @@ -10,8 +10,8 @@ #ifndef TEST_COMMON_HPP #define TEST_COMMON_HPP -#include "xtensor/xlayout.hpp" -#include "xtensor/xmanipulation.hpp" +#include "xtensor/core/xlayout.hpp" +#include "xtensor/misc/xmanipulation.hpp" #include "xtl/xsequence.hpp" diff --git a/test/test_rarray.cpp b/test/test_rarray.cpp index fb2ca36..3fd5236 100644 --- a/test/test_rarray.cpp +++ b/test/test_rarray.cpp @@ -9,7 +9,7 @@ #include "gtest/gtest.h" -#include "xtensor/xarray.hpp" +#include "xtensor/containers/xarray.hpp" #include "xtensor-r/rarray.hpp" diff --git a/test/test_rreducer.cpp b/test/test_rreducer.cpp index bced67c..6c5e20f 100644 --- a/test/test_rreducer.cpp +++ b/test/test_rreducer.cpp @@ -9,9 +9,9 @@ #include -#include -#include -#include +#include +#include +#include #include "xtensor-r/rarray.hpp" #include "xtensor-r/rtensor.hpp" diff --git a/test/test_rtensor.cpp b/test/test_rtensor.cpp index 95e7909..505d805 100644 --- a/test/test_rtensor.cpp +++ b/test/test_rtensor.cpp @@ -14,7 +14,7 @@ #include #include -#include "xtensor/xtensor.hpp" +#include "xtensor/containers/xtensor.hpp" #include "xtensor-r/rtensor.hpp" diff --git a/test/test_sfinae.cpp b/test/test_sfinae.cpp index f961c7f..8220da1 100644 --- a/test/test_sfinae.cpp +++ b/test/test_sfinae.cpp @@ -12,8 +12,8 @@ #include "gtest/gtest.h" #include "xtensor-r/rtensor.hpp" #include "xtensor-r/rarray.hpp" -#include "xtensor/xarray.hpp" -#include "xtensor/xtensor.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xtensor.hpp" namespace xt {