I am currently playing around with CMake and want to detect the compiler and the compiler version. My current CMakeLists.txt
looks as follows:
cmake_minimum_required (VERSION 2.6)
set (PROJECT "a_tour_of_c++")
set (GNUCXX_MINIMUM_VERSION "4.8")
set (CXX_STANDARD "c++11")
message ("${CMAKE_CXX_COMPILER}") # C:/dev/MinGW/bin/g++.exe
message ("${CMAKE_CXX_COMPILER_ID}") # EMPTY
message ("${CMAKE_COMPILER_IS_GNUCXX}") # EMPTY
if (CMAKE_COMPILER_IS_GNUCXX)
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS GNUCXX_MINIMUM_VERSION)
message (FATAL_ERROR "GCC version must be at least ${GNUCXX_MINIMUM_VERSION}!")
endif()
else()
message (FATAL_ERROR "Invalid compiler!")
endif()
set (BUILD_DIR build)
set (HEADER_DIR include)
set (SOURCE_DIR src)
set (MAIN_FILE ${SOURCE_DIR}/main.cc)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${CXX_STANDARD}")
project ($(PROJECT))
include_directories (${HEADER_DIR})
add_executable (${BUILD_DIR}/${PROJECT} ${MAIN_FILE})
The file is fine and I can sucessfully clean, build and run my cli application with this file (if I comment out the else
-branch of the compiler check).
The problem is, that both CMAKE_CXX_COMPILER_ID
and CMAKE_COMPILER_IS_GNUCXX
are empty (CMAKE_CXX_COMPILER
is not).
I am using a Microsoft Windows 8 (6.3.9600) operating system and MinGW, more detailed the following tools.
As you can in the screenshot, I use NetBeans IDE to simplify the whole build progress.
So my questions are:
- What are possible reasons, that the mentioned variables are empty?
- Does any workaround exist for my problem?
And please let me know, if you see any other problems with my (simple) CMakeLists.txt
file.