Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion ament_cmake_auto/cmake/ament_auto_add_executable.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@ macro(ament_auto_add_executable target)
# add include directory of this package if it exists
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/include")
target_include_directories("${target}" PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/include")
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:include/${PROJECT_NAME}>")
endif()
# link against other libraries of this package
if(NOT ${PROJECT_NAME}_LIBRARIES STREQUAL "" AND
Expand Down
6 changes: 4 additions & 2 deletions ament_cmake_auto/cmake/ament_auto_add_library.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,12 @@ macro(ament_auto_add_library target)
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/include")
if(ARG_INTERFACE)
target_include_directories("${target}" INTERFACE
"${CMAKE_CURRENT_SOURCE_DIR}/include")
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:include/${PROJECT_NAME}>")
else()
target_include_directories("${target}" PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/include")
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:include/${PROJECT_NAME}>")
endif()
endif()
# link against other libraries of this package
Expand Down
24 changes: 20 additions & 4 deletions ament_cmake_auto/cmake/ament_auto_package.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -71,38 +71,54 @@ macro(ament_auto_package)
install(DIRECTORY include/ DESTINATION include/${PROJECT_NAME})
endif()

set(_has_targets FALSE)
set(_has_library_targets FALSE)

# export and install all libraries
if(NOT ${PROJECT_NAME}_LIBRARIES STREQUAL "")
if(NOT "${${PROJECT_NAME}_LIBRARIES}" STREQUAL "")
set(_has_targets TRUE)
set(_has_library_targets TRUE)
set(without_interfaces "")
foreach(library_name ${${PROJECT_NAME}_LIBRARIES})
get_target_property(library_type ${library_name} TYPE)
if(NOT "${library_type}" STREQUAL "INTERFACE_LIBRARY")
list(APPEND without_interfaces ${library_name})
endif()
endforeach()

ament_export_libraries(${without_interfaces})
install(
TARGETS ${without_interfaces}
TARGETS ${${PROJECT_NAME}_LIBRARIES}
EXPORT export_${PROJECT_NAME}
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
)
endif()

# install all executables
if(NOT ${PROJECT_NAME}_EXECUTABLES STREQUAL "")
if(NOT "${${PROJECT_NAME}_EXECUTABLES}" STREQUAL "")
set(_has_targets TRUE)
if(_ARG_AMENT_AUTO_PACKAGE_INSTALL_TO_PATH)
set(_destination "bin")
else()
set(_destination "lib/${PROJECT_NAME}")
endif()
install(
TARGETS ${${PROJECT_NAME}_EXECUTABLES}
EXPORT export_${PROJECT_NAME}
DESTINATION ${_destination}
)
endif()

# export all targets
if(_has_targets)
if(_has_library_targets)
ament_export_targets(export_${PROJECT_NAME} HAS_LIBRARY_TARGET)
else()
ament_export_targets(export_${PROJECT_NAME})
endif()
endif()

# install directories to share
foreach(_dir ${_ARG_AMENT_AUTO_PACKAGE_INSTALL_TO_SHARE})
install(
Expand Down