Skip to content

ament_cmake_auto

ament_auto_add_library

引数

  • 【bool】 NO_TARGET_LINK_LIBRARIES
  • 【bool】 EXCLUDE_FROM_ALL
  • 【bool】 MODULE
  • 【bool】 SHARED
  • 【bool】 STATIC
  • DIRECTORY
  • ここにあるソースファイルはすべてビルド対象に
  • target

自動実行される処理

  • add_library
  • DIRECTORYで指定したフォルダのソースファイル全部
  • target_include_directories
  • includeフォルダ
  • target_link_libraries
  • プロジェクトで作ったライブラリ全部
  • ament_target_dependencies
  • プロジェクトの依存関係にあるやつ全部

ament_auto_package

引数

  • 【bool】 INSTALL_TO_PATH
  • 【複数指定可】 INSTALL_TO_SHARE
  • launchフォルダとかを指定すると追加でインストールできる

自動実行される処理

  • ament_export_dependencies
  • ament_export_include_directories
  • ament_export_libraries
  • ⚠️ ament_auto_add_libraryを使っていないライブラリはexportされないので注意
  • install
  • include/* → include
  • ライブラリ → lib / bin
  • 実行ファイル → lib
  • その他 → INSTALL_TO_SHAREで指定したもの → share
  • ament_package
  • 使わなかった引数はこちらに渡される

ament_auto_find_build_dependencies

基本的な使用法

ament_auto_find_build_dependencies(
  REQUIRED geometry_msgs
)

内部動作

ament_package_xml()build/<pkg>/ament_cmake_core/package.cmake に情報が抜き出される

参考: ament_cmake/ament_package_xml.cmake

生成される package.cmake の例

set(_AMENT_PACKAGE_NAME "traffic_simulator")
set(traffic_simulator_VERSION "0.6.7")
set(traffic_simulator_MAINTAINER "masaya kataoka <masaya.kataoka@tier4.jp>")
set(traffic_simulator_BUILD_DEPENDS "ament_index_cpp" "concealer")
set(traffic_simulator_BUILDTOOL_DEPENDS "ament_cmake" "ament_cmake_auto")
set(traffic_simulator_BUILD_EXPORT_DEPENDS "ament_index_cpp" "concealer")
set(traffic_simulator_BUILDTOOL_EXPORT_DEPENDS )
set(traffic_simulator_EXEC_DEPENDS "ament_index_cpp" "concealer")
set(traffic_simulator_TEST_DEPENDS "ament_cmake_gtest" "ament_lint_auto" "ament_cmake_clang_format" "ament_cmake_copyright" "ament_cmake_lint_cmake" "ament_cmake_pep257" "ament_cmake_xmllint")
set(traffic_simulator_GROUP_DEPENDS )
set(traffic_simulator_MEMBER_OF_GROUPS )
set(traffic_simulator_DEPRECATED "")
set(traffic_simulator_EXPORT_TAGS)
list(APPEND traffic_simulator_EXPORT_TAGS "<build_type>ament_cmake</build_type>")

条件付き依存関係の追加

自動処理したくない依存関係を手動で追加する場合:

find_package(autoware_adapi_v1_msgs)
if(autoware_adapi_v1_msgs_FOUND)
  add_compile_options(-D USE_ADAPI_V1_MSGS)
  list(APPEND ${PROJECT_NAME}_BUILD_DEPENDS autoware_adapi_v1_msgs)
  list(APPEND ${PROJECT_NAME}_BUILD_EXPORT_DEPENDS autoware_adapi_v1_msgs)
  list(APPEND ${PROJECT_NAME}_EXEC_DEPENDS autoware_adapi_v1_msgs)
  list(APPEND ${PROJECT_NAME}_FOUND_BUILD_DEPENDS autoware_adapi_v1_msgs)
  list(APPEND ${PROJECT_NAME}_FOUND_DEFINITIONS ${autoware_adapi_v1_msgs_DEFINITIONS})
  list(APPEND ${PROJECT_NAME}_FOUND_INCLUDE_DIRS ${autoware_adapi_v1_msgs_INCLUDE_DIRS})
  list(APPEND ${PROJECT_NAME}_FOUND_LIBRARIES ${autoware_adapi_v1_msgs_LIBRARIES})
endif()