mpark-variant: ICC Patch (#22727)

* Add patch for Intel C++ compiler

- On some machines (in particular MacOSX Catalina), the icpc in some way
utilizes the preprocessor of the associated "developer tools" used by
icpc. This leads to, in some cases, a preprocessor claiming support for
__tuple_element_packs, even though icpc (as of version 21.1) can't
actually parse such code. Just use the MPARK_TUPLE_ELEMENT_PACK impl
with __icc until icpc supports it, to avoid issues with developer tools
that are untested.
- The same patch has been PRed against mpark-variant
This commit is contained in:
Simon Bolding 2021-04-01 17:15:25 -06:00 committed by GitHub
parent 2ae7e25501
commit 9c139bf7a2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 0 deletions

View file

@ -0,0 +1,33 @@
From 2d933fe544bd5841e9016ab7e8066521ebe33f30 Mon Sep 17 00:00:00 2001
From: sbolding <sbolding@lanl.gov>
Date: Mon, 29 Mar 2021 19:13:28 -0600
Subject: [PATCH] Apply patch for icpc
icpc in some way utilizes the preprocessor of the associated "developer
tools" used by the compiler. This leads to, in some cases, a
preprocessor claiming support for `__tuple_element_packs`, even though
icpc (as of version 21.1) can't actually parse such code. Just use the
MPARK_TUPLE_ELEMENT_PACK impl with __icc until icpc supports it.
Fixes #77
---
include/mpark/config.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/mpark/config.hpp b/include/mpark/config.hpp
index f85ffb55c..128fa9235 100644
--- a/include/mpark/config.hpp
+++ b/include/mpark/config.hpp
@@ -50,7 +50,7 @@
#define MPARK_BUILTIN_UNREACHABLE
#endif
-#if __has_builtin(__type_pack_element)
+#if __has_builtin(__type_pack_element) && !(defined(__ICC))
#define MPARK_TYPE_PACK_ELEMENT
#endif
--
2.24.3 (Apple Git-128)

View file

@ -19,7 +19,10 @@ class MparkVariant(CMakePackage):
# Ref.: https://github.com/mpark/variant/pull/73
patch('nvcc.patch', when='@:1.4.0')
# Ref.: https://github.com/mpark/variant/issues/60
patch('version.patch', when='@1.4.0')
# Ref.: https://github.com/mpark/variant/pull/78
patch('icpc.patch', when='@:1.4.0')
cxx11_msg = 'MPark.Variant needs a C++11-capable compiler. ' \
'See https://github.com/mpark/variant#requirements'