[feature] CMakeDeps: define IMPORTED_LINK_INTERFACE_LANGUAGES
in case of static C++ lib
#14607
Closed
1 task done
What is your suggestion?
Config files generated by
CMakeDeps
have several flaws compared to regular CMake config files generated by CMake.One of them is that they miss
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
property in case of C++ static lib (see also this summary I made in #13560 (comment)).When this property is missing, linking a static C++ lib with C API into a pure C executable or shared lib can't work out of the box -while it should with a proper CMake config file (information comes transitively from imported target linked into C executable or shared lib)- because CMake doesn't know that it should use C++ linker.
Currently, package_info() doesn't provide a way to specify which lib in a recipe is a C++ lib, nor if it's static or not (though for this one there is the global shared option, or package_type value eventually but it's not sufficient when there are components which might not be all shared or static), so it's a little bit hard to implement such feature without some improvements in package_info() and an abstraction allowing to specify if a component refers to a C or C++ lib.
Have you read the CONTRIBUTING guide?
The text was updated successfully, but these errors were encountered: