aboutsummaryrefslogtreecommitdiffstats
path: root/src/cmake/api.cmake
AgeCommit message (Collapse)AuthorFilesLines
2024-06-24build: conditional dependency handling of depfileOle Troan1-6/+18
Older distributions like Ubuntu 20.04 uses an old version of cmake that does not handle absolute paths. Leave .api dependency handling like before, i.e. not handle interdependency between .api files for those older builds. Type: fix Change-Id: I3f15a4506f6c95fca7a5b00893dc354cbed42a29 Signed-off-by: Ole Troan <otroan@employees.org>
2024-06-19build: vppapigen dependency handlingOle Troan1-4/+20
Add dependency generation to the vppapigen compiler, so that when an API file depends on another, that's registered as a dependency with the build system. Add a build dependency on vppapigen submodules so that all api files are regenerated if the compiler itself changes. Type: improvement Change-Id: I392853754129778ef15532d1b04813786b943b44 Signed-off-by: Ole Troan <otroan@employees.org>
2024-04-10build: use GNUInstallDirs where possibleWim de With1-3/+3
Some installation destinations were already converted to the GNUInstallDirs standard in e3cf4d0cf. This patch converts the share and include directories (typically /usr/share and /usr/include respectively) as well. Type: improvement Change-Id: Id481b16604f3f52203166a5c0647f43d6eb05239 Signed-off-by: Wim de With <wf@dewith.io>
2024-01-29api: provide api definition over apiOle Troan1-1/+1
This patch allows a client to bootstrap itself by downloading the JSON API definitions over the API itself. This patch enables it for Python (probably need a dynamic language). Call VPPApiClient with the new bootstrapapi=True parameter. Example (Python): from vpp_papi import VPPApiClient vpp = VPPApiClient(bootstrapapi=True) rv = vpp.connect("foobar") assert rv == 0 print(f'SHOW VERSION: {vpp.api.show_version()}') vpp.disconnect() Type: feature Change-Id: Id903fdccc82b2e22aa1994331d2c150253f2ccae Signed-off-by: Ole Troan <otroan@employees.org>
2021-05-27build: kindly ask python not to polute src/Damjan Marion1-4/+4
Type: make Change-Id: I1ec82e0f3c19dee79f942996339240c73d4e380c Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-30misc: experimental configure scriptDamjan Marion1-6/+6
Type: make Change-Id: Iaeb9d22eec9a7a763b63899814a44e78c8050f1f Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-02-08misc: support api generated dependency for multiarch sourceOle Troan1-0/+4
Fix dependency issues where multi-arch file is using API generated file. Type: improvement Change-Id: I5d4af7a630529bc138c35841723e38938f36d963 Signed-off-by: Ole Troan <ot@cisco.com>
2020-11-25api: vat2 and json autogeneration for api messagesOle Troan1-1/+20
VAT2: A completely auto-generated replacement of VAT. Reads input message in JSON from stdin and outputs received messages in JSON. A VAT2 plugin is automatically built for a .api file. There no longer a need for a separate _test.c. Example: vat2 show_version {} { "_msgname": "show_version_reply", "retval": 0, "program": "vpe", "version": "21.01-rc0~411-gf6eb348a6", "build_date": "2020-11-19T09:49:25", "build_directory": "/vpp/autogen3" } vat2 sw_interface_dump '{"sw_if_index": -1, "name_filter_valid": 0, "name_filter": ""}' [{ "_msgname": "sw_interface_details", "sw_if_index": 0, "sup_sw_if_index": 0, "l2_address": "00:00:00:00:00:00", "flags": "Invalid ENUM", "type": "IF_API_TYPE_HARDWARE", "link_duplex": "LINK_DUPLEX_API_UNKNOWN", "link_speed": 0, "link_mtu": 0, "mtu": [0, 0, 0, 0], "sub_id": 0, "sub_number_of_tags": 0, "sub_outer_vlan_id": 0, "sub_inner_vlan_id": 0, "sub_if_flags": "Invalid ENUM", "vtr_op": 0, "vtr_push_dot1q": 0, "vtr_tag1": 0, "vtr_tag2": 0, "outer_tag": 0, "b_dmac": "00:00:00:00:00:00", "b_smac": "00:00:00:00:00:00", "b_vlanid": 0, "i_sid": 0, "interface_name": "local0", "interface_dev_type": "local", "tag": "" }] This is the first phase and vat2 is not integrated in packaging yet. Type: feature Signed-off-by: Ole Troan <ot@cisco.com> Change-Id: Ib45ddeafb180ea7da8c5dc274a9274d7a4edc876 Signed-off-by: Ole Troan <ot@cisco.com>
2020-03-31vlib: move pci api types from vnet/pci to vlib/pciJakub Grajciar1-2/+1
Type: fix Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: I1a60809a8bbbbb8ac8b65ab990d51aae1229647f Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
2019-12-17build: export vapi generation in vpp-devOliver Giles1-6/+77
Adds the higher-level vapi generation to cmake/api.cmake and exposes the necessary python scripts in vpp-dev, so that out-of-tree/downstream plugins can also leverage the more convenient API. Type: feature Signed-off-by: Oliver Giles <oliver_g@radwin.com> Change-Id: I8c40a14d27ba3cb972c6907632e03c0e7b0ce982
2019-09-25api: split api generated filesOle Troan1-1/+1
Split generation of API message enum and the typedefs into separate files, so that the type file can be included from elsewhere. Generate a C file for VPP that contains the API registration, this was previously done via X macros by the C pre- processor. This allows deleting lots of skeleton/copy paste code for each feature. plugins/flowprobe plugins/map examples/sample-plugin vnet/ipip used as Guinea pigs. Generate a C Test file for VAT, that does the same for VAT plugins. Also add support for a per-message CLI option, that is currently limited to VAT help text. option vat_help = "<help text>"; Type: refactor Change-Id: I245e3104bb76f7e1fb69a59ab20cc7c8dfcdd460 Signed-off-by: Ole Troan <ot@cisco.com>
2019-07-25build: vppapigen search VPP_INCLUDE_DIR if setBenoît Ganne1-2/+8
When building out-of-tree plugins, we must search for .api in VPP installed include directory. Type: fix Change-Id: I76b7bace69ff54a385d944313879e2aeb7293648 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2018-11-30API: Add dependency on compiler for API .json and .api generation.Ole Troan1-2/+2
Add dependency on the API compiler, so that builds can deal with changes to the tool. Change-Id: I2587235fefa93a69955495870d49f36b4203bfea Signed-off-by: Ole Troan <ot@cisco.com>
2018-09-12cmake: create cmake VPP module, update sample-plugin so it uses itDamjan Marion1-2/+8
Change-Id: I32e91ba8e55797ffe169f98b09bdb42caa5c7de2 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-09-07cmake: set packaging component for different filesDamjan Marion1-5/+9
Change-Id: I033a1f5cdb24f77462cb5ec90a62226d93f52925 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-27cmake: add vapi buildDamjan Marion1-2/+5
Change-Id: Id939a0cbe35601478ad262f49bb0a1abdb62aa45 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-26cmake: move functions to src/cmakeDamjan Marion1-0/+65
Change-Id: Ibcb7105fa7e3c09efdce01bccd4de235fe33ea99 Signed-off-by: Damjan Marion <damarion@cisco.com>