# See the License for the specific language governing permissions and
# limitations under the License.
+unset (VPPAPICLIENT_LIB)
unset (VAPICLIENT_LIB)
unset (ACL_FILE)
unset (NAT_FILE)
unset (VOM_SOURCES)
unset (VOM_HEADERS)
+find_library(VPPAPICLIENT_LIB NAMES vppapiclient REQUIRED)
+find_path(VPPAPICLIENT_INCLUDE_DIR NAMES vpp-api/client/vppapiclient.h)
find_library(VAPICLIENT_LIB NAMES vapiclient REQUIRED)
find_path(VAPICLIENT_INCLUDE_DIR NAMES vapi/vapi.hpp)
+
+if(NOT VPPAPICLIENT_INCLUDE_DIR OR NOT VPPAPICLIENT_LIB)
+ message(FATAL_ERROR "Cannot find vppapiclient library and/or headers")
+endif()
if(NOT VAPICLIENT_INCLUDE_DIR OR NOT VAPICLIENT_LIB)
message(FATAL_ERROR "Cannot find vapiclient library and/or headers")
endif()
+include_directories(${VPPAPICLIENT_INCLUDE_DIR})
include_directories(${VAPICLIENT_INCLUDE_DIR})
include_directories(${CMAKE_SOURCE_DIR})
acl_binding.cpp
acl_ethertype_cmds.cpp
acl_ethertype.cpp
+ acl_l2_list.cpp
acl_l2_rule.cpp
+ acl_l3_list.cpp
acl_l3_rule.cpp
acl_list_cmds.cpp
- acl_list.cpp
acl_types.cpp
)
endif()
gbp_endpoint.cpp
gbp_endpoint_group_cmds.cpp
gbp_endpoint_group.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_types.hpp
gbp_vxlan.cpp
gbp_vxlan_cmds.cpp
)
ip_unnumbered.cpp
l2_binding_cmds.cpp
l2_binding.cpp
+ l2_vtr.cpp
+ l2_vtr_cmds.cpp
l2_xconnect_cmds.cpp
l2_xconnect.cpp
l3_binding_cmds.cpp
neighbour.cpp
neighbour_cmds.cpp
object_base.cpp
+ mroute_cmds.cpp
om.cpp
pipe.cpp
pipe_cmds.cpp
prefix.cpp
+ qos_map.cpp
+ qos_map_cmds.cpp
+ qos_mark.cpp
+ qos_mark_cmds.cpp
+ qos_record.cpp
+ qos_record_cmds.cpp
+ qos_store.cpp
+ qos_store_cmds.cpp
+ qos_types.cpp
+ qos_types_api.cpp
ra_config.cpp
ra_prefix.cpp
route.cpp
+ route_api_types.cpp
route_cmds.cpp
route_domain.cpp
route_domain_cmds.cpp
+ stat_client.cpp
+ stat_reader.cpp
sub_interface_cmds.cpp
sub_interface.cpp
tap_interface.cpp
tap_interface_cmds.cpp
+ vxlan_gbp_tunnel_cmds.cpp
vxlan_tunnel_cmds.cpp
vxlan_tunnel.cpp
)
acl_ethertype.hpp
acl_l2_rule.hpp
acl_l3_rule.hpp
- acl_list.hpp
+ acl_l3_list.hpp
+ acl_l2_list.hpp
acl_types.hpp
)
endif()
gbp_bridge_domain.hpp
gbp_endpoint.hpp
gbp_endpoint_group.hpp
+ gbp_ext_itf.hpp
gbp_recirc.hpp
gbp_route_domain.hpp
+ gbp_rule.hpp
gbp_subnet.hpp
+ gbp_types.hpp
gbp_vxlan.hpp
)
endif()
ip_punt_redirect.hpp
ip_unnumbered.hpp
l2_binding.hpp
+ l2_vtr.hpp
l2_xconnect.hpp
l3_binding.hpp
lldp_binding.hpp
om.hpp
pipe.hpp
prefix.hpp
+ qos_map.hpp
+ qos_mark.hpp
+ qos_record.hpp
+ qos_store.hpp
+ qos_types.hpp
ra_config.hpp
ra_prefix.hpp
route.hpp
rpc_cmd.hpp
singular_db.hpp
singular_db_funcs.hpp
+ stat_client.hpp
+ stat_reader.hpp
sub_interface.hpp
tap_interface.hpp
types.hpp
vxlan_tunnel.hpp
)
-add_definitions(-Wall -Werror -std=gnu++11)
-
-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
+add_definitions(-Wall -Werror -std=gnu++11 -g)
+add_library(vom SHARED ${VOM_SOURCES})
+if (VOM_LIB_VERSION)
+ set_target_properties(vom PROPERTIES SOVERSION ${VOM_LIB_VERSION})
+endif()
+target_link_libraries(vom ${VPPAPICLIENT_LIB} ${VAPICLIENT_LIB} Threads::Threads
+ ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} m rt)
+install(TARGETS vom DESTINATION lib COMPONENT vom)
+install(FILES ${VOM_HEADERS} DESTINATION include/vom COMPONENT vom)
- COMPONENT libvom
-)
+if (Boost_FOUND)
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ add_definitions(-stdlib=libstdc++)
+ endif()
+ add_executable(vom_stats_test test_stats.cpp)
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ target_link_libraries(vom_stats_test vom stdc++)
+ else()
+ target_link_libraries(vom_stats_test vom)
+ endif()
+endif()