diff --git a/CMakeLists.txt b/CMakeLists.txt index 31c4964..98f5b0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,8 +49,8 @@ if( endif() configure_file( - "${PROJECT_SOURCE_DIR}/include/beman/iterator_interface/config.hpp.in" - "${PROJECT_BINARY_DIR}/include/beman/iterator_interface/config.hpp" + "${PROJECT_SOURCE_DIR}/include/beman/iterator_interface/config_generated.hpp.in" + "${PROJECT_BINARY_DIR}/include/beman/iterator_interface/config_generated.hpp" @ONLY ) @@ -67,7 +67,7 @@ target_sources( FILE_SET HEADERS BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include" - "${PROJECT_BINARY_DIR}/include" + "${CMAKE_CURRENT_BINARY_DIR}/include" ) set_target_properties( diff --git a/include/beman/iterator_interface/CMakeLists.txt b/include/beman/iterator_interface/CMakeLists.txt index fd546b1..1affc32 100644 --- a/include/beman/iterator_interface/CMakeLists.txt +++ b/include/beman/iterator_interface/CMakeLists.txt @@ -5,10 +5,11 @@ target_sources( PUBLIC FILE_SET HEADERS FILES + config.hpp iterator_interface.hpp iterator_interface_access.hpp detail/stl_interfaces/config.hpp detail/stl_interfaces/fwd.hpp detail/stl_interfaces/iterator_interface.hpp - "${PROJECT_BINARY_DIR}/include/beman/iterator_interface/config.hpp" + "${PROJECT_BINARY_DIR}/include/beman/iterator_interface/config_generated.hpp" ) diff --git a/include/beman/iterator_interface/config.hpp b/include/beman/iterator_interface/config.hpp new file mode 100644 index 0000000..f823ff9 --- /dev/null +++ b/include/beman/iterator_interface/config.hpp @@ -0,0 +1,15 @@ +#ifndef BEMAN_ITERATOR_INTERFACE_CONFIG_HPP +#define BEMAN_ITERATOR_INTERFACE_CONFIG_HPP + +#if !defined(__has_include) || __has_include() + #include +#else + #include + #if defined(__cpp_explicit_this_parameter) && __cpp_explicit_this_parameter >= 202110L + #define BEMAN_ITERATOR_INTERFACE_USE_DEDUCING_THIS() 1 + #else + #define BEMAN_ITERATOR_INTERFACE_USE_DEDUCING_THIS() 0 + #endif +#endif + +#endif diff --git a/include/beman/iterator_interface/config.hpp.in b/include/beman/iterator_interface/config_generated.hpp.in similarity index 63% rename from include/beman/iterator_interface/config.hpp.in rename to include/beman/iterator_interface/config_generated.hpp.in index 30455a2..3aebf28 100644 --- a/include/beman/iterator_interface/config.hpp.in +++ b/include/beman/iterator_interface/config_generated.hpp.in @@ -1,8 +1,8 @@ // include/beman/iterator_interface/config.hpp.in -*-C++-*- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -#ifndef BEMAN_ITERATOR_INTERFACE_CONFIG_HPP -#define BEMAN_ITERATOR_INTERFACE_CONFIG_HPP +#ifndef BEMAN_ITERATOR_INTERFACE_CONFIG_GENERATED_HPP +#define BEMAN_ITERATOR_INTERFACE_CONFIG_GENERATED_HPP #cmakedefine01 BEMAN_ITERATOR_INTERFACE_USE_DEDUCING_THIS()