You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@Nicogene experienced the following problem when compiling against a static version of iDynTree:
Severity Code Description Project File Line Suppression State
Error CMake Error at C:/Users/ngenesio/robotology/install/lib/cmake/iDynTree/iDynTreeTargets.cmake:61 (set_target_properties):
The link interface of target "iDynTree::idyntree-core" contains:
Eigen3::Eigen
but the target was not found. Possible reasons include:
* There is a typo in the target name.
* A find_package call is missing for an IMPORTED target.
* An ALIAS target is missing. C:/Users/ngenesio/robotology/install/lib/cmake/iDynTree/iDynTreeTargets.cmake 61
*
The problem is that we are linking Eigen3::Eigen as PRIVATE in several place, and when a library is compiled as static the PRIVATE target links are promoted to PUBLIC . This would make sense if Eigen3 was itself a non-header library, but given that Eigen3::Eigen is an header-only library, no Eigen3 is actually necessary. To avoid that, we should only include the headers of Eigen3::Eigen, without linking it directly, see https://discourse.cmake.org/t/add-only-library-headers-during-target-link-libraries/2973 for a similar use case.
@Nicogene experienced the following problem when compiling against a static version of iDynTree:
The problem is that we are linking
Eigen3::Eigen
asPRIVATE
in several place, and when a library is compiled as static thePRIVATE
target links are promoted toPUBLIC
. This would make sense ifEigen3
was itself a non-header library, but given thatEigen3::Eigen
is an header-only library, no Eigen3 is actually necessary. To avoid that, we should only include the headers of Eigen3::Eigen, without linking it directly, see https://discourse.cmake.org/t/add-only-library-headers-during-target-link-libraries/2973 for a similar use case.A function that plays a similar role is
onnxruntime_add_include_to_target
from https://github.com/microsoft/onnxruntime/blob/d49a8de9b1db3486246e65700380e1eb8e7d581d/cmake/CMakeLists.txt#L940 .The text was updated successfully, but these errors were encountered: