I’m building a workspace with colcon build
on Windows 10 and it’s aborted with the following message:
CMake Warning at C:/colcon_ws/install/ros_industrial_cmake_boilerplate/lib/cmake/ros_industrial_cmake_boilerplate/cmake/code_coverage.cmake:182 (message):
Code coverage requires Clang or GCC, current compilers are and MSVC.
Aborting.
Call Stack (most recent call first):
CMakeLists.txt:30 (initialize_code_coverage)
I checked code_coverage.cmake
file and it expects CMAKE_CXX_COMPILER_ID=Clang
if(CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?[Cc]lang")
...
else()
message("WARNING "Code coverage requires Clang or GCC, ...Aborting.")
endif()
To check what CMAKE_CXX_COMPILER_ID
is set to I added
message("CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID}")
before if
condition and CMAKE_CXX_COMPILER_ID
is indeed set to MSVC
.
I decided to add CMAKE_CXX_COMPILER_ID=Clang
to environment variables and re-opened the terminal. But, when I run colcon build
the CMAKE_CXX_COMPILER_ID
is set to MSVC
again.
I checked all CMakeLists.txt
files and none of them sets CMAKE_CXX_COMPILER_ID
. So, who sets it? Why it’s overwritten?