aboutsummaryrefslogtreecommitdiff
path: root/configuration
diff options
context:
space:
mode:
authorMarco Poletti <poletti.marco@gmail.com>2017-06-11 20:04:03 +0100
committerMarco Poletti <poletti.marco@gmail.com>2017-06-11 20:04:03 +0100
commitc9e7a0b7e3ca6a4e58ed59567d5e5aa229d1cf77 (patch)
treed86abb3eb0280bbda752cff87a22a52e328a6409 /configuration
parent050763e458d79bccc84ffc66f8bd4cbc9fcb7d99 (diff)
downloadgoogle-fruit-c9e7a0b7e3ca6a4e58ed59567d5e5aa229d1cf77.tar.gz
Mark the old PartialComponent::install() method as deprecated.
Diffstat (limited to 'configuration')
-rw-r--r--configuration/CMakeLists.txt34
-rw-r--r--configuration/bazel/fruit/impl/fruit-config-base.h6
-rw-r--r--configuration/fruit-config-base.h.in4
3 files changed, 44 insertions, 0 deletions
diff --git a/configuration/CMakeLists.txt b/configuration/CMakeLists.txt
index e8a8407..3103e03 100644
--- a/configuration/CMakeLists.txt
+++ b/configuration/CMakeLists.txt
@@ -134,6 +134,36 @@ int main() {
"
FRUIT_HAS_FORCEINLINE)
+CHECK_CXX_SOURCE_COMPILES("
+[[deprecated]] void f() {
+}
+
+int main() {
+ return 0;
+}
+"
+FRUIT_HAS_ATTRIBUTE_DEPRECATED)
+
+CHECK_CXX_SOURCE_COMPILES("
+void f() __attribute__((deprecated)) {
+}
+
+int main() {
+ return 0;
+}
+"
+FRUIT_HAS_GCC_ATTRIBUTE_DEPRECATED)
+
+CHECK_CXX_SOURCE_COMPILES("
+__declspec(deprecated) void f() {
+}
+
+int main() {
+ return 0;
+}
+"
+FRUIT_HAS_DECLSPEC_DEPRECATED)
+
if (NOT "${FRUIT_HAS_STD_MAX_ALIGN_T}" AND NOT "${FRUIT_HAS_MAX_ALIGN_T}")
message(WARNING "The current C++ standard library doesn't support std::max_align_t nor ::max_align_t. Attempting to use std::max_align_t anyway, but it most likely won't work.")
endif()
@@ -143,6 +173,10 @@ if(NOT "${FRUIT_HAS_STD_IS_TRIVIALLY_COPYABLE}" AND NOT "${FRUIT_HAS_IS_TRIVIALL
message(WARNING "The current standard library doesn't support std::is_trivially_copyable<T>, and the current compiler doesn't support __is_trivially_copyable(T) nor __has_trivial_copy(T). Attemping to use std::is_trivially_copyable<T> anyway, but it most likely won't work.")
endif()
+if (NOT "${FRUIT_HAS_ATTRIBUTE_DEPRECATED}" AND NOT "${FRUIT_HAS_GCC_ATTRIBUTE_DEPRECATED}" AND NOT "${FRUIT_HAS_DECLSPEC_DEPRECATED}")
+ message(WARNING "No supported way to mark functions as deprecated was found. Continuing anyway, without the 'deprecated' markers.")
+endif()
+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fruit-config-base.h.in ${CMAKE_CURRENT_BINARY_DIR}/../include/fruit/impl/fruit-config-base.h)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/../include/fruit/impl/fruit-config-base.h
diff --git a/configuration/bazel/fruit/impl/fruit-config-base.h b/configuration/bazel/fruit/impl/fruit-config-base.h
index 9cd392f..65b5261 100644
--- a/configuration/bazel/fruit/impl/fruit-config-base.h
+++ b/configuration/bazel/fruit/impl/fruit-config-base.h
@@ -57,4 +57,10 @@
#define FRUIT_HAS_FORCEINLINE 0
+#define FRUIT_HAS_ATTRIBUTE_DEPRECATED 0
+
+#define FRUIT_HAS_GCC_ATTRIBUTE_DEPRECATED 1
+
+#define FRUIT_HAS_DECLSPEC_DEPRECATED 0
+
#endif // FRUIT_CONFIG_BASE_H
diff --git a/configuration/fruit-config-base.h.in b/configuration/fruit-config-base.h.in
index c710a22..9f59195 100644
--- a/configuration/fruit-config-base.h.in
+++ b/configuration/fruit-config-base.h.in
@@ -30,5 +30,9 @@
#cmakedefine FRUIT_USES_BOOST 1
#cmakedefine FRUIT_HAS_ALWAYS_INLINE_ATTRIBUTE 1
#cmakedefine FRUIT_HAS_FORCEINLINE 1
+#cmakedefine FRUIT_HAS_ATTRIBUTE_DEPRECATED 1
+#cmakedefine FRUIT_HAS_GCC_ATTRIBUTE_DEPRECATED 1
+#cmakedefine FRUIT_HAS_DECLSPEC_DEPRECATED 1
+
#endif // FRUIT_CONFIG_BASE_H