diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f3cb555e5553..c43bd73d7c2f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,6 +116,40 @@ message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") message(STATUS "Building for SAI Spec ${SAI_VER_MAJOR}.${SAI_VER_MINOR}.${SAI_VER_RELEASE}") +if(SAI_TAJO_IMPL) +list(APPEND CMAKE_LIBRARY_PATH /usr/lib64 /opt/grpc/lib /opt/sdk_build/klish/.libs) + + # Find libnl-3 and libnl-genl-3 libraries only if SAI_TAJO_IMPL is set + find_library(LIBNL3 NAMES nl-3) + find_library(LIBNL_GENL3 NAMES nl-genl-3) + + # Print paths for debugging + message(STATUS "LIBNL3 found at: ${LIBNL3}") + message(STATUS "LIBNL_GENL3 found at: ${LIBNL_GENL3}") + + # Check if both libraries were found; if not, show an error + if(NOT LIBNL3 OR NOT LIBNL_GENL3) + message(FATAL_ERROR "Required libnl libraries not found!") + endif() + + # Locate grpc, absl_synchronization, and protobuf libraries + find_library(GRPC NAMES grpc++) + find_library(ABSL_SYNCHRONIZATION NAMES absl_synchronization) + find_library(PROTOBUF NAMES protobuf) + + # Print paths for verification + message(STATUS "GRPC found at: ${GRPC}") + message(STATUS "ABSL_SYNCHRONIZATION found at: ${ABSL_SYNCHRONIZATION}") + message(STATUS "PROTOBUF found at: ${PROTOBUF}") + + # Check if all required libraries are found + if(NOT GRPC OR NOT ABSL_SYNCHRONIZATION OR NOT PROTOBUF) + message(FATAL_ERROR "One or more grpc/absl/protobuf libraries were not found!") + endif() + +endif() + + set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/build/fbcode_builder/CMake" ${CMAKE_MODULE_PATH}) diff --git a/cmake/AgentHwSaiHwTest.cmake b/cmake/AgentHwSaiHwTest.cmake index 6069031efabf2..81464015cc597 100644 --- a/cmake/AgentHwSaiHwTest.cmake +++ b/cmake/AgentHwSaiHwTest.cmake @@ -230,6 +230,16 @@ function(BUILD_SAI_TEST SAI_IMPL_NAME SAI_IMPL_ARG) ${LIBGMOCK_LIBRARIES} ) + if(SAI_TAJO_IMPL) + target_link_libraries(sai_test-${SAI_IMPL_NAME} + ${GRPC} + ${ABSL_SYNCHRONIZATION} + ${PROTOBUF} + ${LIBNL3} + ${LIBNL_GENL3} + ) +endif() + if (SAI_BRCM_IMPL) target_link_libraries(sai_test-${SAI_IMPL_NAME} ${YAML} diff --git a/cmake/AgentSaiLinkTests.cmake b/cmake/AgentSaiLinkTests.cmake index 792aa09109eb1..a14cffefc0634 100644 --- a/cmake/AgentSaiLinkTests.cmake +++ b/cmake/AgentSaiLinkTests.cmake @@ -28,6 +28,16 @@ function(BUILD_SAI_LINK_TEST SAI_IMPL_NAME SAI_IMPL_ARG) ${LIBGMOCK_LIBRARIES} ) +if(SAI_TAJO_IMPL) + target_link_libraries(sai_link_test-${SAI_IMPL_NAME} + ${GRPC} + ${ABSL_SYNCHRONIZATION} + ${PROTOBUF} + ${LIBNL3} + ${LIBNL_GENL3} + ) +endif() + set_target_properties(sai_link_test-${SAI_IMPL_NAME} PROPERTIES COMPILE_FLAGS "-DSAI_VER_MAJOR=${SAI_VER_MAJOR} \ diff --git a/cmake/AgentTestAgentHwTests.cmake b/cmake/AgentTestAgentHwTests.cmake index 32ba286aae383..a2cdfff7ef672 100644 --- a/cmake/AgentTestAgentHwTests.cmake +++ b/cmake/AgentTestAgentHwTests.cmake @@ -150,6 +150,17 @@ function(BUILD_SAI_AGENT_HW_TEST SAI_IMPL_NAME SAI_IMPL_ARG) -Wl,--no-whole-archive ) +if(SAI_TAJO_IMPL) + # Link libraries only under TAJO_SAI_SDK + target_link_libraries(sai_agent_hw_test-${SAI_IMPL_NAME} + ${GRPC} + ${ABSL_SYNCHRONIZATION} + ${PROTOBUF} + ${LIBNL3} + ${LIBNL_GENL3} + ) +endif() + set_target_properties(sai_agent_hw_test-${SAI_IMPL_NAME} PROPERTIES COMPILE_FLAGS "-DSAI_VER_MAJOR=${SAI_VER_MAJOR} \