GCC-based compiler.
*icl*::
Intel compiler on Windows.
+*icx*::
+ Intel LLVM-based compiler.
+*icx-cl*::
+ Intel LLVM-based MSVC-compatible compiler on Windows.
*msvc*::
Microsoft Visual C++ (MSVC).
*nvcc*::
return CompilerType::nvcc;
} else if (name == "icl") {
return CompilerType::icl;
+ } else if (name == "icx") {
+ return CompilerType::icx;
+ } else if (name == "icx-cl") {
+ return CompilerType::icx_cl;
} else if (name == "cl") {
return CompilerType::msvc;
} else {
return CompilerType::gcc;
} else if (value == "icl") {
return CompilerType::icl;
+ } else if (value == "icx") {
+ return CompilerType::icx;
+ } else if (value == "icx-cl") {
+ return CompilerType::icx_cl;
} else if (value == "msvc") {
return CompilerType::msvc;
} else if (value == "nvcc") {
return "auto";
case CompilerType::clang_cl:
return "clang-cl";
+ case CompilerType::icx_cl:
+ return "icx-cl";
CASE(clang);
CASE(gcc);
CASE(icl);
+ CASE(icx);
CASE(msvc);
CASE(nvcc);
CASE(other);
clang_cl,
gcc,
icl,
+ icx,
+ icx_cl,
msvc,
nvcc,
other
const std::filesystem::path& temporary_dir() const;
std::optional<mode_t> umask() const;
- // Return true for Clang and clang-cl.
+ // Return true for Clang, clang-cl and icx (not on Windows).
bool is_compiler_group_clang() const;
- // Return true for MSVC (cl.exe), clang-cl, and icl.
+ // Return true for MSVC (cl.exe), clang-cl, icl, icx-cl, and icx (on Windows).
bool is_compiler_group_msvc() const;
util::SizeUnitPrefixType size_unit_prefix_type() const;
Config::is_compiler_group_clang() const
{
return m_compiler_type == CompilerType::clang
+#ifndef _WIN32
+ || m_compiler_type == CompilerType::icx
+#endif
|| m_compiler_type == CompilerType::clang_cl;
}
{
return m_compiler_type == CompilerType::msvc
|| m_compiler_type == CompilerType::clang_cl
- || m_compiler_type == CompilerType::icl;
+ || m_compiler_type == CompilerType::icl
+#ifdef _WIN32
+ || m_compiler_type == CompilerType::icx
+#endif
+ || m_compiler_type == CompilerType::icx_cl;
}
inline bool