GBP: l3-out subnets
[vpp.git] / extras / vom / vom / CMakeLists.txt
index 76abd46..f68a740 100644 (file)
@@ -16,6 +16,7 @@ unset (ACL_FILE)
 unset (NAT_FILE)
 unset (L2E_FILE)
 unset (GBP_FILE)
+unset (IGMP_FILE)
 unset (VOM_SOURCES)
 unset (VOM_HEADERS)
 
@@ -33,6 +34,7 @@ find_file(ACL_FILE NAMES acl.api.vapi.hpp PATH_SUFFIXES vapi)
 find_file(NAT_FILE NAMES nat.api.vapi.hpp PATH_SUFFIXES vapi)
 find_file(L2E_FILE NAMES l2e.api.vapi.hpp PATH_SUFFIXES vapi)
 find_file(GBP_FILE NAMES gbp.api.vapi.hpp PATH_SUFFIXES vapi)
+find_file(IGMP_FILE NAMES igmp.api.vapi.hpp PATH_SUFFIXES vapi)
 
 if(ACL_FILE)
   list(APPEND VOM_SOURCES
@@ -66,16 +68,34 @@ endif()
 
 if(GBP_FILE)
   list(APPEND VOM_SOURCES
-    gbp_recirc_cmds.cpp
-    gbp_recirc.cpp
-    gbp_subnet_cmds.cpp
-    gbp_subnet.cpp
+    gbp_contract_cmds.cpp
+    gbp_contract.cpp
+    gbp_bridge_domain_cmds.cpp
+    gbp_bridge_domain.cpp
     gbp_endpoint_cmds.cpp
     gbp_endpoint.cpp
     gbp_endpoint_group_cmds.cpp
     gbp_endpoint_group.cpp
-    gbp_contract_cmds.cpp
-    gbp_contract.cpp
+    gbp_ext_itf.cpp
+    gbp_ext_itf_cmds.cpp
+    gbp_recirc_cmds.cpp
+    gbp_recirc.cpp
+    gbp_route_domain_cmds.cpp
+    gbp_route_domain.cpp
+    gbp_rule.cpp
+    gbp_subnet_cmds.cpp
+    gbp_subnet.cpp
+    gbp_vxlan.cpp
+    gbp_vxlan_cmds.cpp
+  )
+endif()
+
+if (IGMP_FILE)
+  list(APPEND VOM_SOURCES
+    igmp_binding_cmds.cpp
+    igmp_binding.cpp
+    igmp_listen_cmds.cpp
+    igmp_listen.cpp
   )
 endif()
 
@@ -112,6 +132,8 @@ list(APPEND VOM_SOURCES
   interface_span_cmds.cpp
   interface_span.cpp
   interface_types.cpp
+  ip_punt_redirect_cmds.cpp
+  ip_punt_redirect.cpp
   ip_unnumbered_cmds.cpp
   ip_unnumbered.cpp
   l2_binding_cmds.cpp
@@ -172,11 +194,23 @@ endif()
 
 if(GBP_FILE)
   list(APPEND VOM_HEADERS
+    gbp_contract.hpp
+    gbp_bridge_domain.hpp
     gbp_endpoint.hpp
     gbp_endpoint_group.hpp
-    gbp_subnet.hpp
+    gbp_ext_itf.hpp
     gbp_recirc.hpp
-    gbp_contract.hpp
+    gbp_route_domain.hpp
+    gbp_rule.hpp
+    gbp_subnet.hpp
+    gbp_vxlan.hpp
+  )
+endif()
+
+if(IGMP_FILE)
+  list(APPEND VOM_HEADERS
+    igmp_binding.hpp
+    igmp_listen.hpp
   )
 endif()
 
@@ -202,6 +236,7 @@ list(APPEND VOM_HEADERS
   interface_cmds.hpp
   interface_ip6_nd.hpp
   interface_span.hpp
+  ip_punt_redirect.hpp
   ip_unnumbered.hpp
   l2_binding.hpp
   l2_xconnect.hpp
@@ -228,12 +263,15 @@ list(APPEND VOM_HEADERS
   vxlan_tunnel.hpp
 )
 
-add_library(vom SHARED ${VOM_SOURCES})
-target_link_libraries(vom ${VAPICLIENT_LIB} Threads::Threads boost_thread
-  ${BOOST_SYSTEM_LIB} ${BOOST_FILESYSTEM_LIB} ${BOOST_ASIO_LIB} m rt)
 add_definitions(-Wall -Werror -std=gnu++11)
-install(TARGETS vom DESTINATION lib)
 
-foreach(file ${VOM_HEADERS})
-  install(FILES ${file} DESTINATION include/vom)
-endforeach()
+add_vpp_library(vom
+  SOURCES ${VOM_SOURCES}
+
+  INSTALL_HEADERS ${VOM_HEADERS}
+
+  LINK_LIBRARIES ${VAPICLIENT_LIB} Threads::Threads boost_thread
+    ${BOOST_SYSTEM_LIB} ${BOOST_FILESYSTEM_LIB} ${BOOST_ASIO_LIB} m rt
+
+  COMPONENT libvom
+)