X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fcmake%2Fapi.cmake;h=dac2a7d31131e0eddb156b3d005107b2135da2f4;hb=e4f849c137101871b1caa0d959c7ea794e7d77f7;hp=533448ad16ea35839cd8617a5348686242f2b36f;hpb=4c64b6edc86f7732f4a160b948b3386e4021a265;p=vpp.git diff --git a/src/cmake/api.cmake b/src/cmake/api.cmake index 533448ad16e..dac2a7d3113 100644 --- a/src/cmake/api.cmake +++ b/src/cmake/api.cmake @@ -17,26 +17,36 @@ function(vpp_generate_api_c_header file) set (output_name ${CMAKE_CURRENT_BINARY_DIR}/${file}.h) get_filename_component(output_dir ${output_name} DIRECTORY) + if(NOT VPP_APIGEN) + set(VPP_APIGEN ${CMAKE_SOURCE_DIR}/tools/vppapigen/vppapigen) + endif() add_custom_command (OUTPUT ${output_name} COMMAND mkdir -p ${output_dir} - COMMAND ${CMAKE_SOURCE_DIR}/tools/vppapigen/vppapigen + COMMAND ${VPP_APIGEN} ARGS --includedir ${CMAKE_SOURCE_DIR} --input ${CMAKE_CURRENT_SOURCE_DIR}/${file} --output ${output_name} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} + DEPENDS ${VPP_APIGEN} ${CMAKE_CURRENT_SOURCE_DIR}/${file} COMMENT "Generating API header ${output_name}" ) endfunction() -function(vpp_generate_api_json_header file dir) +function(vpp_generate_api_json_header file dir component) set (output_name ${CMAKE_CURRENT_BINARY_DIR}/${file}.json) get_filename_component(output_dir ${output_name} DIRECTORY) + if(NOT VPP_APIGEN) + set(VPP_APIGEN ${CMAKE_SOURCE_DIR}/tools/vppapigen/vppapigen) + endif() add_custom_command (OUTPUT ${output_name} COMMAND mkdir -p ${output_dir} - COMMAND ${CMAKE_SOURCE_DIR}/tools/vppapigen/vppapigen + COMMAND ${VPP_APIGEN} ARGS --includedir ${CMAKE_SOURCE_DIR} --input ${CMAKE_CURRENT_SOURCE_DIR}/${file} JSON --output ${output_name} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} + DEPENDS ${VPP_APIGEN} ${CMAKE_CURRENT_SOURCE_DIR}/${file} COMMENT "Generating API header ${output_name}" ) - install(FILES ${output_name} DESTINATION share/vpp/api/${dir}/) + install( + FILES ${output_name} + DESTINATION share/vpp/api/${dir}/ + COMPONENT ${component} + ) endfunction() ############################################################################## @@ -45,9 +55,9 @@ endfunction() # @param dir - the install directory under ROOT/share/vpp/api to place the # generated .json file ############################################################################## -function(vpp_generate_api_header file dir) +function(vpp_generate_api_header file dir component) vpp_generate_api_c_header (${file}) - vpp_generate_api_json_header (${file} ${dir}) + vpp_generate_api_json_header (${file} ${dir} ${component}) endfunction() function(vpp_add_api_files name) @@ -55,7 +65,7 @@ function(vpp_add_api_files name) set(target ${name}_api_headers) file(RELATIVE_PATH rpath ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) foreach(file ${ARGN}) - vpp_generate_api_header (${file} core) + vpp_generate_api_header (${file} core vpp) list(APPEND header_files ${file}.h ${file}.json) set_property(GLOBAL APPEND PROPERTY VPP_API_FILES ${rpath}/${file}) endforeach()