eclass/toolchain-funcs: add clang version functions
authorAustin English <wizardedit@gentoo.org>
Mon, 27 Jun 2016 21:58:07 +0000 (16:58 -0500)
committerAustin English <wizardedit@gentoo.org>
Fri, 1 Jul 2016 18:42:09 +0000 (13:42 -0500)
eclass/toolchain-funcs.eclass

index fb8b2f92742c3e7631c17563c41d321d0804d835..9bb5232d2f9fb40adf704c8a37601f8ee70538c9 100644 (file)
@@ -642,6 +642,39 @@ gcc-micro-version() {
        _gcc_fullversion '$3' "$@"
 }
 
+# Internal func. Based on _gcc_fullversion() above.
+_clang_fullversion() {
+       local ver="$1"; shift
+       set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__")
+       eval echo "$ver"
+}
+
+# @FUNCTION: clang-fullversion
+# @RETURN: compiler version (major.minor.micro: [3.4.6])
+clang-fullversion() {
+       _clang_fullversion '$1.$2.$3' "$@"
+}
+# @FUNCTION: clang-version
+# @RETURN: compiler version (major.minor: [3.4].6)
+clang-version() {
+       _clang_fullversion '$1.$2' "$@"
+}
+# @FUNCTION: clang-major-version
+# @RETURN: major compiler version (major: [3].4.6)
+clang-major-version() {
+       _clang_fullversion '$1' "$@"
+}
+# @FUNCTION: clang-minor-version
+# @RETURN: minor compiler version (minor: 3.[4].6)
+clang-minor-version() {
+       _clang_fullversion '$2' "$@"
+}
+# @FUNCTION: clang-micro-version
+# @RETURN: micro compiler version (micro: 3.4.[6])
+clang-micro-version() {
+       _clang_fullversion '$3' "$@"
+}
+
 # Returns the installation directory - internal toolchain
 # function for use by _gcc-specs-exists (for flag-o-matic).
 _gcc-install-dir() {