commit:     c096c11de359ed69fda9dee31675f5f1536e79ea
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 12 20:15:03 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Oct 22 09:27:09 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c096c11d

toolchain-funcs.eclass: Add tc-check-openmp() function

Closes: https://github.com/gentoo/gentoo/pull/2547

Signed-off-by: David Seifert <soap <AT> gentoo.org>

 eclass/toolchain-funcs.eclass | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
index 5bac36b..63f0d6b 100644
--- a/eclass/toolchain-funcs.eclass
+++ b/eclass/toolchain-funcs.eclass
@@ -421,6 +421,27 @@ tc-has-openmp() {
        return ${ret}
 }
 
+# @FUNCTION: tc-check-openmp
+# @DESCRIPTION:
+# Test for OpenMP support with the current compiler and error out with
+# a clear error message, telling the user how to rectify the missing
+# OpenMP support that has been requested by the ebuild. Using this function
+# to test for OpenMP support should be preferred over tc-has-openmp and
+# printing a custom message, as it presents a uniform interface to the user.
+tc-check-openmp() {
+       if ! tc-has-openmp; then
+               eerror "Your current compiler does not support OpenMP!"
+
+               if tc-is-gcc; then
+                       eerror "Enable OpenMP support by building sys-devel/gcc 
with USE=\"openmp\"."
+               elif tc-is-clang; then
+                       eerror "OpenMP support in sys-devel/clang is provided 
by sys-libs/libomp."
+               fi
+
+               die "Active compiler does not have required support for OpenMP"
+       fi
+}
+
 # @FUNCTION: tc-has-tls
 # @USAGE: [-s|-c|-l] [toolchain prefix]
 # @DESCRIPTION:

Reply via email to