##############################################################################
option(VPP_API_TEST_BUILTIN "Use builtin VPP API test." ON)
-vpp_add_api_files(vpp_api_headers
+set(VPP_API_FILES
api/vpe.api
stats/stats.api
oam/oam.api
)
+vpp_add_api_files(vpp ${VPP_API_FILES})
+
+foreach(file ${VPP_API_FILES})
+ get_filename_component(dir ${file} DIRECTORY)
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}.h
+ DESTINATION include/vpp/${dir}
+ COMPONENT vpp-dev
+ )
+endforeach()
+
set(VPP_SOURCES
vnet/main.c
app/vpe_cli.c
app/version.c
oam/oam.c
oam/oam_api.c
- stats/stats.c
+ stats/stats_to_be_deprecated.c
stats/stat_segment.c
api/api.c
api/json_format.c
api/custom_dump.c
+ api/types.c
)
if(VPP_API_TEST_BUILTIN)
api/api_format.c
api/api_main.c
api/plugin.c
+ api/types.c
)
add_definitions(-DVPP_API_TEST_BUILTIN=1)
endif()
-add_executable (vpp ${VPP_SOURCES})
+add_vpp_executable(vpp
+ ENABLE_EXPORTS
+ SOURCES ${VPP_SOURCES}
+ LINK_LIBRARIES svm vlib vppinfra vlibmemory vnet Threads::Threads ${CMAKE_DL_LIBS}
+ DEPENDS vpp_version_h api_headers
+)
-target_link_libraries(vpp svm vlib vppinfra vlibmemory vnet Threads::Threads
- ${CMAKE_DL_LIBS})
-add_dependencies(vpp vpp_version_h api_headers)
-set_target_properties(vpp PROPERTIES ENABLE_EXPORTS 1)
-install(TARGETS vpp DESTINATION bin)
+add_vpp_headers(vpp
+ api/vpe_msg_enum.h
+ api/vpe_all_api_h.h
+ stats/stat_segment.h
+)
##############################################################################
# vppctl binary
##############################################################################
-add_executable(vppctl app/vppctl.c)
-target_link_libraries(vppctl vppinfra)
-install(TARGETS vppctl DESTINATION bin)
+add_vpp_executable(vppctl
+ SOURCES app/vppctl.c
+ LINK_LIBRARIES vppinfra
+)
##############################################################################
# vpp_get_metrics binary
##############################################################################
-add_executable (vpp_get_metrics api/vpp_get_metrics.c ${VPP_API_HDRS})
-target_link_libraries (vpp_get_metrics vppinfra svm svmdb)
-install(TARGETS vpp_get_metrics DESTINATION bin)
+add_vpp_executable(vpp_get_metrics
+ SOURCES api/vpp_get_metrics.c
+ LINK_LIBRARIES vppinfra svm svmdb
+ DEPENDS api_headers
+)
##############################################################################
# stats binaries
##############################################################################
-add_executable(summary_stats_client api/summary_stats_client.c)
-add_executable(stat_client app/stat_client.c)
-add_dependencies(summary_stats_client api_headers)
-add_dependencies(stat_client api_headers)
-target_link_libraries(summary_stats_client vppinfra svm vlibmemoryclient)
-target_link_libraries(stat_client vppinfra svm vlibmemoryclient)
+add_vpp_executable(summary_stats_client
+ SOURCES api/summary_stats_client.c
+ LINK_LIBRARIES vppinfra svm vlibmemoryclient
+ DEPENDS api_headers
+ NO_INSTALL
+)
-##############################################################################
-# install
-##############################################################################
+add_vpp_executable(vpp_get_stats
+ SOURCES app/vpp_get_stats.c
+ LINK_LIBRARIES vppapiclient vppinfra
+ DEPENDS api_headers
+)
+add_vpp_executable(vpp_prometheus_export
+ SOURCES app/vpp_prometheus_export.c
+ LINK_LIBRARIES vppapiclient vppinfra svm vlibmemoryclient
+ DEPENDS api_headers
+)