cmake_minimum_required(VERSION 3.5) project(bf_switchd) add_library(driver_o OBJECT bf_switchd_i2c.c bf_switchd.c bf_switchd_log.c switch_config.c switchd_ucli.c bf_hw_porting_config.c switch_config.h bf_model_pltfm_porting.c diag_py.c ) add_library(driver SHARED $ $ $ $ $ $ $ $ $ $ $ $ $ $ $<$:$> $<$:$> $<$:$> $<$:$> $<$:$> $<$:$> $<$:$> $<$:$> $<$:$> $<$:$> ) set_target_properties(driver PROPERTIES POSITION_INDEPENDENT_CODE ON) target_link_libraries(driver PUBLIC bfutils dl pthread m target_sys target_utils) find_program(MY_PROGRAM libport_mgr_hw.a HINTS ${CMAKE_INSTALL_PREFIX}/lib) if(MY_PROGRAM) message(STATUS "Found my_program: ${MY_PROGRAM}") else() message(FATAL_ERROR "my_program not found ${CMAKE_INSTALL_PREFIX}") endif() target_link_libraries(driver PRIVATE ${MY_PROGRAM}) if (NOT STANDALONE) target_link_libraries(driver PUBLIC clish) endif() if(GRPC) find_package(Protobuf REQUIRED) find_package(GRPC REQUIRED) target_link_libraries(driver PUBLIC ${PROTOBUF_LIBRARY} ${GRPC_LIBRARY} ${GRPC_GRPC++_LIBRARY} ${GRPC_GRPC++_REFLECTION_LIBRARY}) endif() if (PI) find_library(PI_ALL_LIB NAMES piall HINTS ${CMAKE_INSTALL_PREFIX}/lib REQUIRED) if (GRPC) find_library(PI_PROTOGRPC_LIB NAMES piprotogrpc HINTS ${CMAKE_INSTALL_PREFIX}/lib REQUIRED) find_library(PI_PROTOBUF_LIB NAMES piprotobuf HINTS ${CMAKE_INSTALL_PREFIX}/lib REQUIRED) target_link_libraries(driver PUBLIC ${PI_ALL_LIB} ${PI_PROTOGRPC_LIB} ${PI_PROTOBUF_LIB}) else() target_link_libraries(driver PUBLIC ${PI_ALL_LIB}) endif() endif() if (P4RT) find_library(PI_FEPROTO_LIB NAMES pifeproto HINTS ${CMAKE_INSTALL_PREFIX}/lib REQUIRED) target_link_libraries(driver PUBLIC ${PI_FEPROTO_LIB}) endif() if (THRIFT-DRIVER) target_link_libraries(driver PUBLIC ${THRIFT_LIBRARIES}) endif() if (NOT STATIC-LINK-LIB) add_executable(bf_switchd bf_switchd_main.c) target_link_libraries(bf_switchd driver) install(TARGETS bf_switchd DESTINATION bin) endif() file(COPY bf_switchd.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/bf_switchd) install(FILES zlog-cfg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/bf_switchd)