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?