IMPORTED_LINK_INTERFACE_LANGUAGES should enforce languages to be enabled
project(Ex LANGUAGES C)
add_library(lib STATIC IMPORTED)
set_target_properties(lib PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "/path/to/liblib.a"
)
add_executable(exe src.c)
target_link_libraries(exe PRIVATE lib)
Problem: CMake silently uses cc
to link exe
. If CXX
is enabled, it uses c++
.
Fix: When setting IMPORTED_LINK_INTERFACE_LANGUAGES
or IMPORTED_LINK_INTERFACE_LANGUAGES_<config>
, verify that all languages in the argument are actually enabled.