cmake: improve add_vpp_plugin macro
[vpp.git] / src / plugins / ioam / CMakeLists.txt
1 # Copyright (c) 2018 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14 add_vpp_plugin(ioam
15   SOURCES
16   # iOAM Proof of Transit
17   lib-pot/pot_util.c
18   encap/ip6_ioam_pot.c
19   lib-pot/pot_api.c
20
21   # iOAM trace export for IPv6
22   export/ioam_export.c
23   export/node.c
24   export/ioam_export_thread.c
25
26   # iOAM Trace
27   lib-trace/trace_util.c
28   encap/ip6_ioam_trace.c
29   lib-trace/trace_api.c
30
31   # VxLAN-GPE
32   lib-vxlan-gpe/ioam_encap.c
33   lib-vxlan-gpe/ioam_decap.c
34   lib-vxlan-gpe/ioam_transit.c
35   lib-vxlan-gpe/ioam_pop.c
36   lib-vxlan-gpe/vxlan_gpe_api.c
37   lib-vxlan-gpe/vxlan_gpe_ioam_trace.c
38   lib-vxlan-gpe/vxlan_gpe_ioam.c
39   export-vxlan-gpe/vxlan_gpe_ioam_export.c
40   export-vxlan-gpe/vxlan_gpe_node.c
41   export-vxlan-gpe/vxlan_gpe_ioam_export_thread.c
42
43   # iOAM E2E
44   encap/ip6_ioam_e2e.c
45   encap/ip6_ioam_seqno.c
46   lib-e2e/ioam_seqno_lib.c
47
48   # ipfix collector
49   ipfixcollector/ipfixcollector.c
50   ipfixcollector/node.c
51
52   # iOAM Analyse
53   analyse/ip6/ip6_ioam_analyse.c
54   analyse/ip6/node.c
55   analyse/ioam_summary_export.c
56
57   # iOAM record cache and rewrite
58   ip6/ioam_cache.c
59   ip6/ioam_cache_node.c
60   ip6/ioam_cache_tunnel_select_node.c
61
62   # udp ping
63   udp-ping/udp_ping_node.c
64   udp-ping/udp_ping_util.c
65   udp-ping/udp_ping_export.c
66   udp-ping/udp_ping_api.c
67
68   API_FILES
69   lib-pot/pot.api
70   export/ioam_export.api
71   lib-trace/trace.api
72   lib-vxlan-gpe/ioam_vxlan_gpe.api
73   export-vxlan-gpe/vxlan_gpe_ioam_export.api
74   ip6/ioam_cache.api
75   udp-ping/udp_ping.api
76 )
77
78 add_vpp_api_test_plugin(ioam_pot_test
79   lib-pot/pot.api
80   lib-pot/pot_test.c
81 )
82
83 add_vpp_api_test_plugin(ioam_export_test
84   export/ioam_export.api
85   export/ioam_export_test.c
86 )
87
88 add_vpp_api_test_plugin(ioam_trace_test
89   lib-trace/trace.api
90   lib-trace/trace_test.c
91 )
92
93 add_vpp_api_test_plugin(ioam_vxlan_gpe_test
94   lib-vxlan-gpe/ioam_vxlan_gpe.api
95   lib-vxlan-gpe/vxlan_gpe_test.c
96 )
97
98 add_vpp_api_test_plugin(ioam_udp_ping_test
99   udp-ping/udp_ping.api
100   udp-ping/udp_ping_test.c
101 )
102