diff options
-rwxr-xr-x | eclass/tests/toolchain-funcs.sh | 28 | ||||
-rw-r--r-- | eclass/toolchain-funcs.eclass | 12 |
2 files changed, 40 insertions, 0 deletions
diff --git a/eclass/tests/toolchain-funcs.sh b/eclass/tests/toolchain-funcs.sh index 6f3799679a00..e6a15389c913 100755 --- a/eclass/tests/toolchain-funcs.sh +++ b/eclass/tests/toolchain-funcs.sh @@ -120,6 +120,20 @@ export CC=gcc ) tend $? +tbegin "tc-is-gcc (gcc)" +( +export CC=gcc +tc-is-gcc +) +tend $? + +tbegin "! tc-is-clang (gcc)" +( +export CC=gcc +! tc-is-clang +) +tend $? + if type -P clang &>/dev/null; then tbegin "tc-get-compiler-type (clang)" ( @@ -127,6 +141,20 @@ if type -P clang &>/dev/null; then [[ $(tc-get-compiler-type) == clang ]] ) tend $? + + tbegin "! tc-is-gcc (clang)" + ( + export CC=clang + ! tc-is-gcc + ) + tend $? + + tbegin "tc-is-clang (clang)" + ( + export CC=clang + tc-is-clang + ) + tend $? fi if type -P pathcc &>/dev/null; then diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass index a29784cd14a4..d3abfb528936 100644 --- a/eclass/toolchain-funcs.eclass +++ b/eclass/toolchain-funcs.eclass @@ -607,6 +607,18 @@ tc-get-compiler-type() { esac } +# @FUNCTION: tc-is-gcc +# @RETURN: Shell true if the current compiler is GCC, false otherwise. +tc-is-gcc() { + [[ $(tc-get-compiler-type) == gcc ]] +} + +# @FUNCTION: tc-is-clang +# @RETURN: Shell true if the current compiler is clang, false otherwise. +tc-is-clang() { + [[ $(tc-get-compiler-type) == clang ]] +} + # Internal func. The first argument is the version info to expand. # Query the preprocessor to improve compatibility across different # compilers rather than maintaining a --version flag matrix. #335943 |