toolchain-funcs.eclass: Add tc-check-openmp() function
authorDavid Seifert <soap@gentoo.org>
Wed, 12 Oct 2016 20:15:03 +0000 (22:15 +0200)
committerDavid Seifert <soap@gentoo.org>
Sat, 22 Oct 2016 09:27:09 +0000 (11:27 +0200)
Closes: https://github.com/gentoo/gentoo/pull/2547

Signed-off-by: David Seifert <soap@gentoo.org>
eclass/toolchain-funcs.eclass

index 5bac36b6737cdd8d4e90462103733d25505e405b..63f0d6b20912d63657ab05c3f175bb683e384312 100644 (file)
@@ -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: