diff --git a/.github/workflows/osx.yml b/.github/workflows/osx.yml index 41ac08c..6e009dc 100644 --- a/.github/workflows/osx.yml +++ b/.github/workflows/osx.yml @@ -39,7 +39,7 @@ jobs: run: micromamba install 'openblas==0.3.29=openmp*' blas-devel - name: Configure using CMake - run: cmake -Bbuild -DDOWNLOAD_GTEST=ON -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib + run: cmake -Bbuild -DCMAKE_CXX_STANDARD=17 -DDOWNLOAD_GTEST=ON -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib - name: Build working-directory: build diff --git a/CMakeLists.txt b/CMakeLists.txt index eaf10e2..8886cda 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ message(STATUS "xtensor-blas v${${PROJECT_NAME}_VERSION}") # Dependencies # ============ -set(xtensor_REQUIRED_VERSION 0.25.0) +set(xtensor_REQUIRED_VERSION 0.26.0) if(TARGET xtensor) set(xtensor_VERSION ${XTENSOR_VERSION_MAJOR}.${XTENSOR_VERSION_MINOR}.${XTENSOR_VERSION_PATCH}) # Note: This is not SEMVER compatible comparison diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index aeb40ea..1b66d74 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -28,13 +28,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunused-parameter -Wextra -Wreorder") - CHECK_CXX_COMPILER_FLAG("-std=c++14" HAS_CPP14_FLAG) - - if (HAS_CPP14_FLAG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") - else() - message(FATAL_ERROR "Unsupported compiler -- xtensor requires C++14 support!") - endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") # Enable link time optimization and set the default symbol # visibility to hidden (very important to obtain small binaries) diff --git a/benchmark/benchmark_blas.hpp b/benchmark/benchmark_blas.hpp index 97a0828..953a683 100644 --- a/benchmark/benchmark_blas.hpp +++ b/benchmark/benchmark_blas.hpp @@ -11,9 +11,9 @@ #include -#include "xtensor/xarray.hpp" -#include "xtensor/xnoalias.hpp" -#include "xtensor/xtensor.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xtensor.hpp" +#include "xtensor/core/xnoalias.hpp" #include "xtensor-blas/xlinalg.hpp" diff --git a/environment-dev.yml b/environment-dev.yml index ea65f05..a86cef4 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -3,4 +3,4 @@ channels: - conda-forge dependencies: - cmake -- xtensor>=0.25.0,<0.26 +- xtensor>=0.26.0,<0.27 diff --git a/include/xtensor-blas/xblas.hpp b/include/xtensor-blas/xblas.hpp index 371842c..53c8e2e 100644 --- a/include/xtensor-blas/xblas.hpp +++ b/include/xtensor-blas/xblas.hpp @@ -12,11 +12,11 @@ #include -#include "xtensor/xarray.hpp" -#include "xtensor/xcomplex.hpp" -#include "xtensor/xio.hpp" -#include "xtensor/xtensor.hpp" -#include "xtensor/xutils.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xtensor.hpp" +#include "xtensor/io/xio.hpp" +#include "xtensor/misc/xcomplex.hpp" +#include "xtensor/utils/xutils.hpp" #include "xflens/cxxblas/cxxblas.cxx" #include "xtensor-blas/xblas_config.hpp" diff --git a/include/xtensor-blas/xblas_utils.hpp b/include/xtensor-blas/xblas_utils.hpp index dad99a5..a9ab531 100644 --- a/include/xtensor-blas/xblas_utils.hpp +++ b/include/xtensor-blas/xblas_utils.hpp @@ -14,7 +14,7 @@ #include #include -#include "xtensor/xutils.hpp" +#include "xtensor/utils/xutils.hpp" #include "xflens/cxxblas/typedefs.h" #include "xtensor-blas/xblas_config.hpp" diff --git a/include/xtensor-blas/xlapack.hpp b/include/xtensor-blas/xlapack.hpp index af86971..cffecf0 100644 --- a/include/xtensor-blas/xlapack.hpp +++ b/include/xtensor-blas/xlapack.hpp @@ -12,12 +12,12 @@ #include -#include "xtensor/xarray.hpp" -#include "xtensor/xcomplex.hpp" -#include "xtensor/xio.hpp" -#include "xtensor/xstorage.hpp" -#include "xtensor/xtensor.hpp" -#include "xtensor/xutils.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xstorage.hpp" +#include "xtensor/containers/xtensor.hpp" +#include "xtensor/io/xio.hpp" +#include "xtensor/misc/xcomplex.hpp" +#include "xtensor/utils/xutils.hpp" #include "xflens/cxxlapack/cxxlapack.cxx" #include "xtensor-blas/xblas_config.hpp" diff --git a/include/xtensor-blas/xlinalg.hpp b/include/xtensor-blas/xlinalg.hpp index 77cfb3b..6fa00fa 100644 --- a/include/xtensor-blas/xlinalg.hpp +++ b/include/xtensor-blas/xlinalg.hpp @@ -15,15 +15,15 @@ #include #include -#include "xtensor/xarray.hpp" -#include "xtensor/xcomplex.hpp" -#include "xtensor/xeval.hpp" -#include "xtensor/xio.hpp" -#include "xtensor/xmanipulation.hpp" -#include "xtensor/xstrided_view.hpp" -#include "xtensor/xtensor.hpp" -#include "xtensor/xutils.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xtensor.hpp" +#include "xtensor/core/xeval.hpp" +#include "xtensor/io/xio.hpp" +#include "xtensor/misc/xcomplex.hpp" +#include "xtensor/misc/xmanipulation.hpp" +#include "xtensor/utils/xutils.hpp" +#include "xtensor/views/xstrided_view.hpp" +#include "xtensor/views/xview.hpp" #include "xtensor-blas/xblas.hpp" #include "xtensor-blas/xblas_utils.hpp" diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2b555dc..025233f 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -33,27 +33,27 @@ string(TOUPPER "${CMAKE_BUILD_TYPE}" U_CMAKE_BUILD_TYPE) include(set_compiler_flag.cmake) -if(CPP17) - # User requested C++17, but compiler might not oblige. +if(CPP20) + # User requested C++20, but compiler might not oblige. set_compiler_flag( _cxx_std_flag CXX - "-std=c++17" # this should work with GNU, Intel, PGI - "/std:c++17" # this should work with MSVC + "-std=c++20" # this should work with GNU, Intel, PGI + "/std:c++20" # this should work with MSVC ) if(_cxx_std_flag) - message(STATUS "Building with C++17") + message(STATUS "Building with C++20") endif() else() set_compiler_flag( _cxx_std_flag CXX REQUIRED - "-std=c++14" # this should work with GNU, Intel, PGI - "/std:c++14" # this should work with MSVC + "-std=c++17" # this should work with GNU, Intel, PGI + "/std:c++17" # this should work with MSVC ) - message(STATUS "Building with C++14") + message(STATUS "Building with C++17") endif() if(NOT _cxx_std_flag) - message(FATAL_ERROR "xtensor-blas needs a C++14-compliant compiler.") + message(FATAL_ERROR "xtensor-blas needs a C++17-compliant compiler.") endif() if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Intel" AND NOT WIN32)) @@ -115,10 +115,7 @@ if(DOWNLOAD_GTEST OR GTEST_SRC_DIR) ${CMAKE_CURRENT_BINARY_DIR}/googletest-build EXCLUDE_FROM_ALL) set(GTEST_INCLUDE_DIRS "${gtest_SOURCE_DIR}/include") - add_library(GTest::GTest INTERFACE IMPORTED) - target_link_libraries(GTest::GTest INTERFACE gtest) - add_library(GTest::Main INTERFACE IMPORTED) - target_link_libraries(GTest::Main INTERFACE gtest_main) + set(GTEST_BOTH_LIBRARIES gtest_main gtest) else() find_package(GTest REQUIRED) endif() @@ -161,7 +158,7 @@ if(DOWNLOAD_GTEST OR GTEST_SRC_DIR) add_dependencies(test_xtensor_blas gtest_main) endif() -target_link_libraries(test_xtensor_blas ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES} GTest::GTest GTest::Main ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries(test_xtensor_blas ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES} ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) add_custom_target(xtest COMMAND test_xtensor_blas DEPENDS test_xtensor_blas) add_test(NAME xtest COMMAND test_xtensor_blas) diff --git a/test/test_blas.cpp b/test/test_blas.cpp index 88e1eed..e1e5a52 100644 --- a/test/test_blas.cpp +++ b/test/test_blas.cpp @@ -7,10 +7,10 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -#include "xtensor/xarray.hpp" -#include "xtensor/xbuilder.hpp" -#include "xtensor/xrandom.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/generators/xbuilder.hpp" +#include "xtensor/generators/xrandom.hpp" +#include "xtensor/views/xview.hpp" #include "gtest/gtest.h" #include "xtensor-blas/xblas.hpp" diff --git a/test/test_dot.cpp b/test/test_dot.cpp index 6a83cb7..63acf68 100644 --- a/test/test_dot.cpp +++ b/test/test_dot.cpp @@ -7,10 +7,10 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -#include "xtensor/xarray.hpp" -#include "xtensor/xbuilder.hpp" -#include "xtensor/xstrided_view.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/generators/xbuilder.hpp" +#include "xtensor/views/xstrided_view.hpp" +#include "xtensor/views/xview.hpp" #include "gtest/gtest.h" #include "xtensor-blas/xlinalg.hpp" diff --git a/test/test_dot_extended.cpp b/test/test_dot_extended.cpp index ea1906f..c93bc1e 100644 --- a/test/test_dot_extended.cpp +++ b/test/test_dot_extended.cpp @@ -12,8 +12,8 @@ #include -#include "xtensor/xarray.hpp" -#include "xtensor/xtensor.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xtensor.hpp" #include "gtest/gtest.h" #include "xtensor-blas/xlinalg.hpp" diff --git a/test/test_float_norm.cpp b/test/test_float_norm.cpp index 6d7f8f9..c087238 100644 --- a/test/test_float_norm.cpp +++ b/test/test_float_norm.cpp @@ -9,10 +9,10 @@ // this test is for https://github.com/xtensor-stack/xtensor-blas/issues/206 -#include "xtensor/xarray.hpp" -#include "xtensor/xbuilder.hpp" -#include "xtensor/xrandom.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/generators/xbuilder.hpp" +#include "xtensor/generators/xrandom.hpp" +#include "xtensor/views/xview.hpp" #include "gtest/gtest.h" #include "xtensor-blas/xblas.hpp" diff --git a/test/test_generator/cppy_source/test_dot_extended.cppy b/test/test_generator/cppy_source/test_dot_extended.cppy index 15969f5..20cbd20 100644 --- a/test/test_generator/cppy_source/test_dot_extended.cppy +++ b/test/test_generator/cppy_source/test_dot_extended.cppy @@ -10,8 +10,8 @@ #include #include "gtest/gtest.h" -#include "xtensor/xarray.hpp" -#include "xtensor/xtensor.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xtensor.hpp" #include "xtensor-blas/xlinalg.hpp" diff --git a/test/test_generator/cppy_source/test_lstsq.cppy b/test/test_generator/cppy_source/test_lstsq.cppy index 727c358..ce504eb 100644 --- a/test/test_generator/cppy_source/test_lstsq.cppy +++ b/test/test_generator/cppy_source/test_lstsq.cppy @@ -10,12 +10,12 @@ #include #include "gtest/gtest.h" -#include "xtensor/xarray.hpp" -#include "xtensor/xfixed.hpp" -#include "xtensor/xnoalias.hpp" -#include "xtensor/xstrided_view.hpp" -#include "xtensor/xtensor.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xfixed.hpp" +#include "xtensor/core/xnoalias.hpp" +#include "xtensor/views/xstrided_view.hpp" +#include "xtensor/containers/xtensor.hpp" +#include "xtensor/views/xview.hpp" #include "xtensor-blas/xlinalg.hpp" diff --git a/test/test_generator/cppy_source/test_qr.cppy b/test/test_generator/cppy_source/test_qr.cppy index 7ed03bb..b81573e 100644 --- a/test/test_generator/cppy_source/test_qr.cppy +++ b/test/test_generator/cppy_source/test_qr.cppy @@ -10,12 +10,12 @@ #include #include "gtest/gtest.h" -#include "xtensor/xarray.hpp" -#include "xtensor/xfixed.hpp" -#include "xtensor/xnoalias.hpp" -#include "xtensor/xstrided_view.hpp" -#include "xtensor/xtensor.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xfixed.hpp" +#include "xtensor/core/xnoalias.hpp" +#include "xtensor/views/xstrided_view.hpp" +#include "xtensor/containers/xtensor.hpp" +#include "xtensor/views/xview.hpp" #include "xtensor-blas/xlinalg.hpp" diff --git a/test/test_lapack.cpp b/test/test_lapack.cpp index 2a1ae35..dcf507b 100644 --- a/test/test_lapack.cpp +++ b/test/test_lapack.cpp @@ -7,11 +7,11 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -#include "xtensor/xarray.hpp" -#include "xtensor/xbuilder.hpp" -#include "xtensor/xcomplex.hpp" -#include "xtensor/xio.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/generators/xbuilder.hpp" +#include "xtensor/io/xio.hpp" +#include "xtensor/misc/xcomplex.hpp" +#include "xtensor/views/xview.hpp" #include "gtest/gtest.h" #include "xtensor-blas/xblas.hpp" diff --git a/test/test_linalg.cpp b/test/test_linalg.cpp index 5df2feb..bb1327a 100644 --- a/test/test_linalg.cpp +++ b/test/test_linalg.cpp @@ -7,12 +7,12 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -#include "xtensor/xarray.hpp" -#include "xtensor/xbuilder.hpp" -#include "xtensor/xcomplex.hpp" -#include "xtensor/xio.hpp" -#include "xtensor/xrandom.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/generators/xbuilder.hpp" +#include "xtensor/generators/xrandom.hpp" +#include "xtensor/io/xio.hpp" +#include "xtensor/misc/xcomplex.hpp" +#include "xtensor/views/xview.hpp" #include "gtest/gtest.h" #include "xtensor-blas/xblas.hpp" diff --git a/test/test_lstsq.cpp b/test/test_lstsq.cpp index 8a2ea4e..5ebe8a8 100644 --- a/test/test_lstsq.cpp +++ b/test/test_lstsq.cpp @@ -12,12 +12,12 @@ #include -#include "xtensor/xarray.hpp" -#include "xtensor/xfixed.hpp" -#include "xtensor/xnoalias.hpp" -#include "xtensor/xstrided_view.hpp" -#include "xtensor/xtensor.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xfixed.hpp" +#include "xtensor/containers/xtensor.hpp" +#include "xtensor/core/xnoalias.hpp" +#include "xtensor/views/xstrided_view.hpp" +#include "xtensor/views/xview.hpp" #include "gtest/gtest.h" #include "xtensor-blas/xlinalg.hpp" diff --git a/test/test_qr.cpp b/test/test_qr.cpp index 11667a0..183f676 100644 --- a/test/test_qr.cpp +++ b/test/test_qr.cpp @@ -12,12 +12,12 @@ #include -#include "xtensor/xarray.hpp" -#include "xtensor/xfixed.hpp" -#include "xtensor/xnoalias.hpp" -#include "xtensor/xstrided_view.hpp" -#include "xtensor/xtensor.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xfixed.hpp" +#include "xtensor/containers/xtensor.hpp" +#include "xtensor/core/xnoalias.hpp" +#include "xtensor/views/xstrided_view.hpp" +#include "xtensor/views/xview.hpp" #include "gtest/gtest.h" #include "xtensor-blas/xlinalg.hpp" diff --git a/test/test_tensordot.cpp b/test/test_tensordot.cpp index 240818f..74a99c6 100644 --- a/test/test_tensordot.cpp +++ b/test/test_tensordot.cpp @@ -7,10 +7,10 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -#include "xtensor/xarray.hpp" -#include "xtensor/xbuilder.hpp" -#include "xtensor/xstrided_view.hpp" -#include "xtensor/xview.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/generators/xbuilder.hpp" +#include "xtensor/views/xstrided_view.hpp" +#include "xtensor/views/xview.hpp" #include "gtest/gtest.h" #include "xtensor-blas/xlinalg.hpp" diff --git a/xtensor-blasConfig.cmake.in b/xtensor-blasConfig.cmake.in index f700e55..dbff8cc 100644 --- a/xtensor-blasConfig.cmake.in +++ b/xtensor-blasConfig.cmake.in @@ -23,9 +23,6 @@ if(NOT TARGET @PROJECT_NAME@) find_dependency(BLAS REQUIRED) find_dependency(LAPACK REQUIRED) target_link_libraries(xtensor-blas INTERFACE ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}) - if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.8) - target_compile_features(xtensor-blas INTERFACE cxx_std_14) - endif() endif() set(PN xtensor_blas)