diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f5f986a..402a0b0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: - name: Coverage run: | lcov --directory ./build --capture --output-file ./build/coverage_all.info - lcov --remove ./build/coverage_all.info -o ./build/coverage.info '/usr/include/*' "$PWD/tests/beman/utf_view/*" "$PWD/deps/*" + lcov --remove ./build/coverage_all.info -o ./build/coverage.info '/usr/include/*' "$PWD/tests/beman/utf_view/*" "$PWD/build/_deps/*" - name: Coveralls uses: coverallsapp/github-action@master with: diff --git a/.gitmodules b/.gitmodules index 0da792a..e78867f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,3 @@ -[submodule "deps/stl_interfaces"] - path = deps/stl_interfaces - url = https://github.com/ednolan/stl_interfaces.git -[submodule "deps/assert"] - path = deps/assert - url = https://github.com/boostorg/assert.git -[submodule "deps/config"] - path = deps/config - url = https://github.com/boostorg/config.git [submodule "deps/wg21"] path = deps/wg21 url = https://github.com/mpark/wg21.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d43e2e..fc41230 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,8 @@ cmake_minimum_required(VERSION 3.27) project(beman.utf_view CXX) +include(FetchContent) + option( UTF_VIEW_BUILD_TESTING "Enable building tests and test infrastructure. Default: ON. Values: { ON, OFF }." @@ -20,20 +22,14 @@ option( OFF ) -if (NOT TARGET boost_config) - add_subdirectory(deps/config) -endif() - -if (NOT TARGET boost_assert) - add_subdirectory(deps/assert) -endif() +FetchContent_Declare( + beman.iterator_interface + GIT_REPOSITORY https://github.com/beman-project/iterator_interface.git + GIT_TAG 94adc3ea613384dc9da64c9de1a7d9a21395ede7 + EXCLUDE_FROM_ALL +) -if (NOT TARGET boost_stl_interfaces) - add_definitions(-DBOOST_STL_INTERFACES_ENABLE_DEDUCED_THIS) - add_subdirectory(deps/stl_interfaces) -else() - message(FATAL_ERROR "Conflicting dependency: boost_stl_interfaces already exists, but we need our own fork") -endif() +FetchContent_MakeAvailable(beman.iterator_interface) add_subdirectory(src/beman/utf_view) diff --git a/deps/assert b/deps/assert deleted file mode 160000 index 242fdfb..0000000 --- a/deps/assert +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 242fdfb1373127331cb229379b50b1dba0f53e49 diff --git a/deps/config b/deps/config deleted file mode 160000 index 5734e16..0000000 --- a/deps/config +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5734e160e08b8df898c7f747000f27a3aafb7b2b diff --git a/deps/stl_interfaces b/deps/stl_interfaces deleted file mode 160000 index 93d9220..0000000 --- a/deps/stl_interfaces +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 93d9220f6b4494231d7afdb720e8e8d7763d5b72 diff --git a/include/beman/utf_view/code_unit_view.hpp b/include/beman/utf_view/code_unit_view.hpp index f55ba43..adb867b 100644 --- a/include/beman/utf_view/code_unit_view.hpp +++ b/include/beman/utf_view/code_unit_view.hpp @@ -9,7 +9,7 @@ #define BEMAN_UTF_VIEW_CODE_UNIT_VIEW_HPP #include -#include +#include #include #include #include @@ -114,7 +114,7 @@ class as_char8_t_view : public std::ranges::view_interface> { template V> template class as_char8_t_view::exposition_only_iterator - : public boost::stl_interfaces::iterator_interface< + : public beman::iterator_interface::iterator_interface< exposition_only_iterator_to_tag_t< std::ranges::iterator_t>>, char8_t, char8_t, void, std::ptrdiff_t> { @@ -125,7 +125,7 @@ class as_char8_t_view::exposition_only_iterator using exposition_only_iterator_type = std::ranges::iterator_t< exposition_only_maybe_const>; // @*exposition only*@ - friend boost::stl_interfaces::access; + friend beman::iterator_interface::iterator_interface_access; constexpr exposition_only_iterator_type& base_reference() noexcept { return it_; @@ -277,7 +277,7 @@ class as_char16_t_view : public std::ranges::view_interface> template V> template class as_char16_t_view::exposition_only_iterator - : public boost::stl_interfaces::iterator_interface< + : public beman::iterator_interface::iterator_interface< exposition_only_iterator_to_tag_t< std::ranges::iterator_t>>, char16_t, char16_t, void, std::ptrdiff_t> { @@ -288,7 +288,7 @@ class as_char16_t_view::exposition_only_iterator using exposition_only_iterator_type = std::ranges::iterator_t< exposition_only_maybe_const>; // @*exposition only*@ - friend boost::stl_interfaces::access; + friend beman::iterator_interface::iterator_interface_access; constexpr exposition_only_iterator_type& base_reference() noexcept { return it_; @@ -440,7 +440,7 @@ class as_char32_t_view : public std::ranges::view_interface> template V> template class as_char32_t_view::exposition_only_iterator - : public boost::stl_interfaces::iterator_interface< + : public beman::iterator_interface::iterator_interface< exposition_only_iterator_to_tag_t< std::ranges::iterator_t>>, char32_t, char32_t, void, std::ptrdiff_t> { @@ -451,7 +451,7 @@ class as_char32_t_view::exposition_only_iterator using exposition_only_iterator_type = std::ranges::iterator_t< exposition_only_maybe_const>; // @*exposition only*@ - friend boost::stl_interfaces::access; + friend beman::iterator_interface::iterator_interface_access; constexpr exposition_only_iterator_type& base_reference() noexcept { return it_; diff --git a/src/beman/utf_view/CMakeLists.txt b/src/beman/utf_view/CMakeLists.txt index 12377d0..04e053f 100644 --- a/src/beman/utf_view/CMakeLists.txt +++ b/src/beman/utf_view/CMakeLists.txt @@ -16,7 +16,7 @@ target_include_directories( $ # /include/beman/utf_view ) -target_link_libraries(beman_utf_view INTERFACE boost_stl_interfaces) +target_link_libraries(beman_utf_view INTERFACE beman::iterator_interface) install( TARGETS beman_utf_view