build: export vapi generation in vpp-dev
[vpp.git] / src / vpp-api / vapi / CMakeLists.txt
index 06c9f85..4c74ae8 100644 (file)
@@ -16,60 +16,13 @@ include_directories (
   ${CMAKE_CURRENT_BINARY_DIR}/..
 )
 
-unset(VAPICLIENT_API_C_HEADERS)
-unset(VAPICLIENT_API_CPP_HEADERS)
-
-get_property(VPP_API_FILES GLOBAL PROPERTY VPP_API_FILES)
-foreach(f ${VPP_API_FILES})
-  get_filename_component(output ${f}.vapi.h NAME)
-  set(input ${CMAKE_BINARY_DIR}/${f}.json)
-
-  # C VAPI Headers
-  add_custom_command(
-    OUTPUT ${output}
-    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vapi_c_gen.py
-    ARGS --remove-path ${input}
-    DEPENDS ${input} vapi_c_gen.py vapi_json_parser.py api_headers
-    COMMENT "Generating VAPI C header ${output}"
-  )
-  install(
-    FILES ${CMAKE_CURRENT_BINARY_DIR}/${output}
-    DESTINATION include/vapi
-    COMPONENT vpp-dev
-  )
-  list(APPEND VAPICLIENT_API_CPP_HEADERS ${output})
-
-  # C++ VAPI Headers
-  get_filename_component(output ${f}.vapi.hpp NAME)
-  add_custom_command(
-    OUTPUT ${output}
-    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vapi_cpp_gen.py
-    ARGS --gen-h-prefix=vapi --remove-path ${input}
-    DEPENDS ${input} vapi_cpp_gen.py vapi_json_parser.py api_headers
-    COMMENT "Generating VAPI C++ header ${output}"
-  )
-  install(
-    FILES ${CMAKE_CURRENT_BINARY_DIR}/${output}
-    DESTINATION include/vapi
-    COMPONENT vpp-dev
-  )
-  list(APPEND VAPICLIENT_API_CPP_HEADERS ${output})
-endforeach ()
-
-add_custom_target(all-vapi-headers DEPENDS
-  ${VAPICLIENT_API_C_HEADERS}
-  ${VAPICLIENT_API_CPP_HEADERS}
-)
-
 add_vpp_library(vapiclient
   SOURCES
   vapi.c
   libvapiclient.map
 
   LINK_LIBRARIES vppinfra vlibmemoryclient svm pthread m rt
-  DEPENDS all-vapi-headers
+  DEPENDS api_headers
 )
 
 install(
@@ -95,3 +48,13 @@ install(
   COMPONENT
     vpp-dev
 )
+
+install(
+  PROGRAMS
+  vapi_c_gen.py
+  vapi_cpp_gen.py
+  vapi_json_parser.py
+
+  DESTINATION bin
+  COMPONENT vpp-dev
+)