KevinD
KevinD

Reputation: 1789

Clang version confusion (OSX and Cmake)

I'm attempting to lock down the compiler version I use (for a number of reasons I won't go into). To do this, I'd like to check the version of the compiler on build using CMAKE_CXX_COMPILER_VERSION and CMAKE_CXX_COMPILER_VERSION.

On OSX CMake reports:

CMAKE_CXX_COMPILER_VERSION  7.0.2.7000181
CMAKE_CXX_COMPILER_ID       Clang
CMAKE_CXX_COMPILER          /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++

However, the version reported via terminal is:

Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin15.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

This is true of:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ --version
clang --version
gcc --version
g++ --version

Why the discrepancy in version numbers as reported by CMake and the command line (for the same executable)? And for the purposes of restricting to a particular compiler version, is CMAKE_CXX_COMPILER_VERSION reliable?

Upvotes: 1

Views: 1668

Answers (1)

KevinD
KevinD

Reputation: 1789

Turns out CMake sets the compiler version in CMakeFiles/3.5.0/CmakeCXXCompiler.cmake (for version 3.5.0). Only by deleting this file and re-building is the correct compiler version reported (assuming you had a different one installed at some point).

Upvotes: 1

Related Questions