Skip to content

Commit

Permalink
Tweak export
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Carroll <[email protected]>
  • Loading branch information
mjcarroll committed Aug 4, 2023
1 parent 8fb37af commit 7030b00
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 17 deletions.
35 changes: 19 additions & 16 deletions cmake/gz_msgs_generate.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,16 @@ function(gz_msgs_generate_messages_impl)
set(depends_proto_paths)
set(depends_includes)

set(output_directory ${PROJECT_BINARY_DIR}/${PROJECT_NAME}-${generate_messages_TARGET}_genmsg)
set(target_name ${PROJECT_NAME}-${generate_messages_TARGET})

set(output_directory ${PROJECT_BINARY_DIR}/${target_name}_genmsg)
file(MAKE_DIRECTORY ${output_directory})

foreach(dep ${generate_messages_DEPENDENCIES})
get_target_property(msgs_desc_file ${dep} GZ_MSGS_DESC_FILE)

message(STATUS ${dep} "--" ${msgs_desc_file})

list(APPEND depends_msgs_desc ${msgs_desc_file})
endforeach()

Expand Down Expand Up @@ -112,7 +117,7 @@ function(gz_msgs_generate_messages_impl)

set(ARGS)
list(APPEND ARGS -I${generate_messages_PROTO_PATH})
list(APPEND ARGS --descriptor_set_out="${generate_messages_TARGET}.gz_desc")
list(APPEND ARGS --descriptor_set_out="${target_name}.gz_desc")

if (generate_messages_DEPENDENCIES)
foreach(dep ${generate_messages_DEPENDENCIES})
Expand All @@ -129,46 +134,45 @@ function(gz_msgs_generate_messages_impl)
list(APPEND ARGS ${generate_messages_INPUT_PROTOS})

add_custom_command(
OUTPUT "${generate_messages_TARGET}.gz_desc"
OUTPUT "${target_name}.gz_desc"
COMMAND protobuf::protoc
ARGS ${ARGS}
DEPENDS ${generate_messages_INPUT_PROTOS}
WORKING_DIRECTORY ${output_directory}
COMMENT "Generating descriptor set"
)

add_library(${generate_messages_TARGET} SHARED ${gen_sources} ${gen_factory_sources} ${generate_messages_TARGET}.gz_desc)
add_library(${target_name} SHARED ${gen_sources} ${gen_factory_sources} ${target_name}.gz_desc)

foreach(dep ${generate_messages_DEPENDENCIES})
add_dependencies(${generate_messages_TARGET} ${dep})
add_dependencies(${target_name} ${dep})
endforeach()

target_link_libraries(${generate_messages_TARGET} PUBLIC protobuf::libprotobuf ${generate_messages_MSGS_LIB} ${generate_messages_DEPENDENCIES})
target_include_directories(${generate_messages_TARGET} PUBLIC
target_link_libraries(${target_name} PUBLIC protobuf::libprotobuf ${generate_messages_MSGS_LIB} ${generate_messages_DEPENDENCIES})
target_include_directories(${target_name} PUBLIC
"$<INSTALL_INTERFACE:${GZ_INCLUDE_INSTALL_DIR_FULL}/>"
"$<BUILD_INTERFACE:${output_directory}>")

set_property(TARGET ${generate_messages_TARGET} PROPERTY EXPORT_PROPERTIES "GZ_MSGS_DESC_FILE")

set_target_properties(
${generate_messages_TARGET}
${target_name}
PROPERTIES
SOVERSION ${PROJECT_VERSION_MAJOR}
VERSION ${PROJECT_VERSION_FULL}
GZ_MSGS_DESC_FILE "\$\{_IMPORT_PREFIX\}/share/gz/${generate_messages_TARGET}.gz_desc"
GZ_MSGS_DESC_FILE "\$\{_IMPORT_PREFIX\}/share/gz/${target_name}.gz_desc"
)
set_property(TARGET ${target_name} PROPERTY EXPORT_PROPERTIES "GZ_MSGS_DESC_FILE")

install(
TARGETS ${generate_messages_TARGET}
EXPORT ${PROJECT_NAME}-${generate_messages_TARGET}
TARGETS ${target_name}
EXPORT ${target_name}
LIBRARY DESTINATION ${GZ_LIB_INSTALL_DIR}
ARCHIVE DESTINATION ${GZ_LIB_INSTALL_DIR}
RUNTIME DESTINATION ${GZ_BIN_INSTALL_DIR}
COMPONENT libraries)

install(FILES ${gen_headers} ${gen_factory_headers} DESTINATION ${GZ_INCLUDE_INSTALL_DIR_FULL}/${proto_package_dir})
install(FILES ${gen_detail_headers} DESTINATION ${GZ_INCLUDE_INSTALL_DIR_FULL}/${proto_package_dir}/details)
install(FILES ${output_directory}/${generate_messages_TARGET}.gz_desc DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gz)
install(FILES ${output_directory}/${target_name}.gz_desc DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gz)

if (NOT GZ_PYTHON_INSTALL_PATH)
find_package(Python3 REQUIRED COMPONENTS Interpreter)
Expand All @@ -186,11 +190,10 @@ function(gz_msgs_generate_messages_impl)
endif()

message(STATUS "Installing Python messages to ${GZ_PYTHON_INSTALL_PATH}/gz/msgs${GZ_MSGS_VER}")

install(FILES ${gen_sources_py} DESTINATION ${GZ_PYTHON_INSTALL_PATH}/gz/msgs${GZ_MSGS_VER})

set(component_name ${generate_messages_TARGET})
set(component_pkg_name ${PROJECT_NAME}-${generate_messages_TARGET})
set(component_pkg_name ${target_name})
_gz_create_cmake_package(COMPONENT ${component_name})
_gz_create_pkgconfig(COMPONENT ${component_name})
endfunction()
2 changes: 1 addition & 1 deletion test/integration/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ endif()
gz_build_tests(TYPE INTEGRATION SOURCES ${tests} TEST_LIST test_targets)

foreach(test ${test_targets})
target_link_libraries(${test} msgs)
target_link_libraries(${test} ${PROJECT_NAME}-msgs)
endforeach()

0 comments on commit 7030b00

Please sign in to comment.