set(libraryname idyntree-solid-shapes) set(IDYNTREE_SOLID_SHAPES_SOURCES src/InertialParametersSolidShapesHelpers.cpp src/ModelTransformersSolidShapes.cpp) set(IDYNTREE_SOLID_SHAPES_HEADERS include/iDynTree/InertialParametersSolidShapesHelpers.h include/iDynTree/ModelTransformersSolidShapes.h) add_library(${libraryname} ${IDYNTREE_SOLID_SHAPES_HEADERS} ${IDYNTREE_SOLID_SHAPES_SOURCES}) add_library(iDynTree::${libraryname} ALIAS ${libraryname}) target_include_directories(${libraryname} PUBLIC "$" "$") target_link_libraries(${libraryname} PUBLIC idyntree-core idyntree-model PRIVATE Eigen3::Eigen) if (IDYNTREE_USES_ASSIMP) target_compile_definitions(${libraryname} PRIVATE IDYNTREE_USES_ASSIMP) # Depending on the assimp version, the way of consuming assimp changes # In assimp 5.0, only the imported assimp::assimp target is defined, in earlier # versions (that do no export the version to CMake) the ASSIMP_* variables are defined # We assume that on WIN32 we always have a valid imported target as a workaround for # https://github.com/microsoft/vcpkg/issues/14255 if((assimp_VERSION AND assimp_VERSION VERSION_GREATER_EQUAL 5.0) OR WIN32) target_link_libraries(${libraryname} PRIVATE assimp::assimp) else() target_include_directories(${libraryname} PRIVATE "${ASSIMP_INCLUDE_DIRS}") link_directories("${ASSIMP_LIBRARY_DIRS}") target_link_libraries(${libraryname} PRIVATE "${ASSIMP_LIBRARIES}") endif() endif() set_property(TARGET ${libraryname} PROPERTY PUBLIC_HEADER ${IDYNTREE_SOLID_SHAPES_HEADERS}) install(TARGETS ${libraryname} EXPORT iDynTree COMPONENT runtime RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT bin LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT shlib ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/iDynTree) set_property(GLOBAL APPEND PROPERTY ${VARS_PREFIX}_TARGETS ${libraryname}) if(IDYNTREE_COMPILE_TESTS AND IDYNTREE_USES_ASSIMP) add_subdirectory(tests) endif()