[Cmake-commits] CMake branch, next, updated. v3.0.0-rc6-3629-g7ef8d56
Stephen Kelly
steveire at gmail.com
Sat Jun 7 07:49:06 EDT 2014
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 7ef8d563d9e02bbf4412217b1af2eb0f1267c149 (commit)
via 073d8c7f5d39425760f5ca89c7f8b816fe9df5c3 (commit)
from 306b007c02d5308704d61475503648793fee8b9d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7ef8d563d9e02bbf4412217b1af2eb0f1267c149
commit 7ef8d563d9e02bbf4412217b1af2eb0f1267c149
Merge: 306b007 073d8c7
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jun 7 07:49:06 2014 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sat Jun 7 07:49:06 2014 -0400
Merge topic 'WriteCompilerDetectionHeader-deprecated-define' into next
073d8c7f WCDH: Add compatibility defines for deprecation.
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=073d8c7f5d39425760f5ca89c7f8b816fe9df5c3
commit 073d8c7f5d39425760f5ca89c7f8b816fe9df5c3
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed May 14 22:10:10 2014 +0200
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Sat Jun 7 13:48:58 2014 +0200
WCDH: Add compatibility defines for deprecation.
diff --git a/Modules/WriteCompilerDetectionHeader.cmake b/Modules/WriteCompilerDetectionHeader.cmake
index f80943d..fbcadc1 100644
--- a/Modules/WriteCompilerDetectionHeader.cmake
+++ b/Modules/WriteCompilerDetectionHeader.cmake
@@ -133,16 +133,37 @@
# ``static_assert``, or ignored if using the backward compatibility
# implementation.
#
-# ====================== ================================ ===================
-# Feature Define Symbol
-# ====================== ================================ ===================
-# ``cxx_alignas`` ``<PREFIX>_ALIGNAS`` ``alignas``
-# ``cxx_alignof`` ``<PREFIX>_ALIGNOF`` ``alignof``
-# ``cxx_nullptr`` ``<PREFIX>_NULLPTR`` ``nullptr``
-# ``cxx_static_assert`` ``<PREFIX>_STATIC_ASSERT`` ``static_assert``
-# ``cxx_static_assert`` ``<PREFIX>_STATIC_ASSERT_MSG`` ``static_assert``
-# ====================== ================================ ===================
-
+# The ``cxx_attribute_deprecated`` feature provides a macro definition
+# ``<PREFIX>_DEPRECATED``, which expands to either the standard
+# ``[[deprecated]] attribute or a compiler-specific decorator such
+# as ``__attribute__((__deprecated__))`` used by GNU compilers.
+#
+# ============================= ================================ =====================
+# Feature Define Symbol
+# ============================= ================================ =====================
+# ``cxx_alignas`` ``<PREFIX>_ALIGNAS`` ``alignas``
+# ``cxx_alignof`` ``<PREFIX>_ALIGNOF`` ``alignof``
+# ``cxx_nullptr`` ``<PREFIX>_NULLPTR`` ``nullptr``
+# ``cxx_static_assert`` ``<PREFIX>_STATIC_ASSERT`` ``static_assert``
+# ``cxx_static_assert`` ``<PREFIX>_STATIC_ASSERT_MSG`` ``static_assert``
+# ``cxx_attribute_deprecated`` ``<PREFIX>_DEPRECATED`` ``[[deprecated]]``
+# ``cxx_attribute_deprecated`` ``<PREFIX>_DEPRECATED_MSG`` ``[[deprecated]]``
+# ============================= ================================ =====================
+#
+# A use-case which arises with such deprecation macros is the deprecation
+# of an entire library. In that case, all public API in the library may
+# be decorated with the ``<PREFIX>_DEPRECATED`` macro. This results in
+# very noisy build output when building the library itself, so the macro
+# may be may be defined to empty in that case when building the deprecated
+# library:
+#
+# .. code-block:: cmake
+#
+# add_library(compat_support ${srcs})
+# target_compile_definitions(compat_support
+# PRIVATE
+# CompatSupport_DEPRECATED=
+# )
#=============================================================================
# Copyright 2014 Stephen Kelly <steveire at gmail.com>
@@ -402,6 +423,27 @@ function(write_compiler_detection_header
# endif
\n")
endif()
+ if (feature STREQUAL cxx_attribute_deprecated)
+ set(def_name ${prefix_arg}_${feature_PP})
+ set(def_value "${prefix_arg}_DEPRECATED")
+ set(file_content "${file_content}
+# ifndef ${def_value}
+# if ${def_name}
+# define ${def_value} [[deprecated]]
+# define ${def_value}_MSG(MSG) [[deprecated(MSG)]]
+# elif defined(__GNUC__) || defined(__clang__)
+# define ${def_value} __attribute__((__deprecated__))
+# define ${def_value}_MSG(MSG) __attribute__((__deprecated__(MSG)))
+# elif defined(_MSC_VER)
+# define ${def_value} __declspec(deprecated)
+# define ${def_value}_MSG(MSG) __declspec(deprecated(MSG))
+# else
+# define ${def_value}
+# define ${def_value}_MSG(MSG)
+# endif
+# endif
+\n")
+ endif()
endforeach()
set(file_content "${file_content}#endif\n")
-----------------------------------------------------------------------
Summary of changes:
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list