aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp/CMakeLists.txt
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2018-08-26 11:04:40 +0200
committerDamjan Marion <damarion@cisco.com>2018-08-26 13:50:53 +0200
commit4553c95ab7cac75838433fdd5cd3c0d0c1d6e2e6 (patch)
tree248b50ad7df32be9f1662920ed9c322e23de6b91 /src/vpp/CMakeLists.txt
parentd16004d56c22635a0e21b177933dc39b65a3642a (diff)
cmake: add add_vpp_library and add_vpp_executable macros
Change-Id: I1382021a6f616571b4b3243ba8c8999239d10815 Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/vpp/CMakeLists.txt')
-rw-r--r--src/vpp/CMakeLists.txt61
1 files changed, 37 insertions, 24 deletions
diff --git a/src/vpp/CMakeLists.txt b/src/vpp/CMakeLists.txt
index 8799d26f4c8..80114bd5249 100644
--- a/src/vpp/CMakeLists.txt
+++ b/src/vpp/CMakeLists.txt
@@ -33,12 +33,22 @@ add_custom_target(vpp_version_h
##############################################################################
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_api_headers ${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}
+ )
+endforeach()
+
set(VPP_SOURCES
vnet/main.c
app/vpe_cli.c
@@ -61,15 +71,14 @@ if(VPP_API_TEST_BUILTIN)
add_definitions(-DVPP_API_TEST_BUILTIN=1)
endif()
-add_executable (vpp ${VPP_SOURCES})
-
-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_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
+)
-vpp_add_header_files(vpp
+add_vpp_headers(vpp
api/vpe_msg_enum.h
api/vpe_all_api_h.h
)
@@ -77,28 +86,32 @@ vpp_add_header_files(vpp
##############################################################################
# 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
+)
-##############################################################################
-# install
-##############################################################################
+add_vpp_executable(stat_client
+ SOURCES app/stat_client.c
+ LINK_LIBRARIES vppinfra svm vlibmemoryclient
+ DEPENDS api_headers
+)