include(cmake/library.cmake)
include(cmake/exec.cmake)
include(cmake/plugin.cmake)
-include(cmake/deb.cmake)
##############################################################################
# subdirs - order matters
add_subdirectory(${DIR})
endforeach()
+include(cmake/pack.cmake)
macro(add_vpp_library lib)
cmake_parse_arguments(ARG
""
- ""
+ "COMPONENT"
"SOURCES;MULTIARCH_SOURCES;API_FILES;LINK_LIBRARIES;INSTALL_HEADERS;DEPENDS"
${ARGN}
)
target_link_libraries(${lib} ${ARG_LINK_LIBRARIES})
endif()
# install .so
- install(TARGETS ${lib} DESTINATION ${VPP_LIB_DIR_NAME})
+ if(NOT ARG_COMPONENT)
+ set(ARG_COMPONENT vpp)
+ endif()
+ install(
+ TARGETS ${lib}
+ DESTINATION ${VPP_LIB_DIR_NAME}
+ COMPONENT ${ARG_COMPONENT}
+ )
if(ARG_MULTIARCH_SOURCES)
vpp_library_set_multiarch_sources(${lib} ${ARG_MULTIARCH_SOURCES})
vpp_add_api_files(${lib} ${ARG_API_FILES})
foreach(file ${ARG_API_FILES})
get_filename_component(dir ${file} DIRECTORY)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}.h DESTINATION include/${lib}/${dir})
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}.h
+ DESTINATION include/${lib}/${dir}
+ COMPONENT vpp-dev
+ )
endforeach()
endif()
if(ARG_INSTALL_HEADERS)
foreach(file ${ARG_INSTALL_HEADERS})
get_filename_component(dir ${file} DIRECTORY)
- install(FILES ${file} DESTINATION include/${lib}/${dir})
+ install(
+ FILES ${file}
+ DESTINATION include/${lib}/${dir}
+ COMPONENT vpp-dev
+ )
endforeach()
endif()
endmacro()
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "VPP Team")
set(CPACK_PACKAGE_NAME "vpp")
set(CPACK_PACKAGE_VENDOR "fd.io")
-set(CPACK_PACKAGE_VERSION "18.08")
+set(CPACK_PACKAGE_VERSION "18.10")
set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
-set(CPACK_DEBIAN_VPP_PACKAGE_NAME "vpp")
-set(CPACK_DEBIAN_VPP_FILE_NAME "vpp.deb")
-set(CPACK_DEBIAN_DEV_PACKAGE_NAME "vpp-dev")
-set(CPACK_DEBIAN_DEV_FILE_NAME "vpp-dev.deb")
-set(CPACK_DEBIAN_PLUGINS_PACKAGE_NAME "vpp-plugins")
-set(CPACK_DEBIAN_PLUGINS_FILE_NAME "vpp-plugins.deb")
+
+get_cmake_property(components COMPONENTS)
+foreach(lc ${components})
+ string(TOUPPER ${lc} uc)
+ set(CPACK_DEBIAN_${uc}_PACKAGE_NAME "${lc}")
+ set(CPACK_DEBIAN_${uc}_FILE_NAME "${lc}.deb")
+endforeach()
+
include(CPack)
macro(add_vpp_plugin name)
cmake_parse_arguments(PLUGIN
""
- "LINK_FLAGS"
+ "LINK_FLAGS;COMPONENT"
"SOURCES;API_FILES;MULTIARCH_SOURCES;LINK_LIBRARIES;INSTALL_HEADERS;API_TEST_SOURCES"
${ARGN}
)
vpp_generate_api_header(${f} plugins)
list(APPEND api_headers ${f}.h ${f}.json)
set_property(GLOBAL APPEND PROPERTY VPP_API_FILES ${rpath}/${f})
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${f}.h DESTINATION
- include/vpp_plugins/${name}/${dir})
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/${f}.h
+ DESTINATION include/vpp_plugins/${name}/${dir}
+ COMPONENT vpp-dev
+ )
endforeach()
add_library(${plugin_name} SHARED ${PLUGIN_SOURCES} ${api_headers})
target_compile_options(${plugin_name} PRIVATE -Wall)
if(PLUGIN_INSTALL_HEADERS)
foreach(file ${PLUGIN_INSTALL_HEADERS})
get_filename_component(dir ${file} DIRECTORY)
- install(FILES ${file} DESTINATION include/vpp_plugins/${name}/${dir})
+ install(
+ FILES ${file}
+ DESTINATION include/vpp_plugins/${name}/${dir}
+ COMPONENT vpp-dev
+ )
endforeach()
endif()
+ if(NOT PLUGIN_COMPONENT)
+ set(PLUGIN_COMPONENT vpp-plugin-misc)
+ endif()
if(PLUGIN_API_TEST_SOURCES)
set(test_plugin_name ${name}_test_plugin)
add_library(${test_plugin_name} SHARED ${PLUGIN_API_TEST_SOURCES} ${api_headers})
set_target_properties(${test_plugin_name} PROPERTIES
PREFIX ""
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/vpp_api_test_plugins)
- install(TARGETS ${test_plugin_name} DESTINATION ${VPP_LIB_DIR_NAME}/vpp_api_test_plugins COMPONENT
- plugins)
+ install(
+ TARGETS ${test_plugin_name}
+ DESTINATION ${VPP_LIB_DIR_NAME}/vpp_api_test_plugins
+ COMPONENT ${PLUGIN_COMPONENT}
+ )
endif()
- install(TARGETS ${plugin_name} DESTINATION ${VPP_LIB_DIR_NAME}/vpp_plugins COMPONENT plugins)
+ install(
+ TARGETS ${plugin_name}
+ DESTINATION ${VPP_LIB_DIR_NAME}/vpp_plugins
+ COMPONENT ${PLUGIN_COMPONENT}
+ )
endmacro()
LINK_FLAGS
${DPDK_LINK_FLAGS}
+
+ COMPONENT
+ vpp-plugin-dpdk
)
else()
message(WARNING "DPDK not found - dpdk disabled")
--dist-dir=${CMAKE_INSTALL_PREFIX}
OUTPUT_QUIET
)"
+ COMPONENT vpp-api-python
)
endif()
install(
FILES ${CMAKE_BINARY_DIR}/vppinfra/config.h
DESTINATION include/vppinfra
- COMPONENT dev
+ COMPONENT vpp-dev
)
##############################################################################
SOURCES ${VPPINFRA_SRCS}
LINK_LIBRARIES m
INSTALL_HEADERS ${VPPINFRA_HEADERS}
+ COMPONENT libvppinfra
)
##############################################################################