From 85713d300f4b4ee61280d5b902c386c1ef8de3c2 Mon Sep 17 00:00:00 2001 From: Grzegorz Nosek Date: Wed, 14 Aug 2024 07:53:52 +0200 Subject: [PATCH] cleanup(build): gvisor no longer has a circular dependency on scap Signed-off-by: Grzegorz Nosek --- userspace/libscap/CMakeLists.txt | 21 +--------- .../libscap/engine/gvisor/CMakeLists.txt | 42 +++++-------------- 2 files changed, 11 insertions(+), 52 deletions(-) diff --git a/userspace/libscap/CMakeLists.txt b/userspace/libscap/CMakeLists.txt index 680cd5beb6..466a24864a 100644 --- a/userspace/libscap/CMakeLists.txt +++ b/userspace/libscap/CMakeLists.txt @@ -185,26 +185,7 @@ endif() if(HAS_ENGINE_GVISOR) add_subdirectory(engine/gvisor) - # The static and shared build differs here because a shared scap_engine_gvisor will result in - # circular dependencies. - if(BUILD_SHARED_LIBS) - # We can move this to the gvisor CMakeFile when we use CMake 3.13 or later. - # https://cmake.org/cmake/help/latest/policy/CMP0079.html - target_link_libraries( - scap - PUBLIC ${CMAKE_THREAD_LIBS_INIT} - ${GRPCPP_LIB} - ${GRPC_LIB} - ${GPR_LIB} - ${GRPC_LIBRARIES} - ${PROTOBUF_LIB} - ${CARES_LIB} - ${OPENSSL_LIBRARIES} - ${JSONCPP_LIB} - ) - else() - target_link_libraries(scap PRIVATE scap_engine_gvisor) - endif() + target_link_libraries(scap PUBLIC scap_engine_gvisor) endif() # ################################################################################################## diff --git a/userspace/libscap/engine/gvisor/CMakeLists.txt b/userspace/libscap/engine/gvisor/CMakeLists.txt index 4d6b1fcc57..85af7e6eb0 100644 --- a/userspace/libscap/engine/gvisor/CMakeLists.txt +++ b/userspace/libscap/engine/gvisor/CMakeLists.txt @@ -60,38 +60,16 @@ if(USE_BUNDLED_JSONCPP) add_dependencies(scap jsoncpp) endif() -if(BUILD_SHARED_LIBS) - # Trying to build a shared scap_engine_gvisor will result in circular dependencies, so just add - # our sources to scap. Additionally, the GENERATED property doesn't propogate across - # directories, so enforce our dependency chain using an object library. - # https://gitlab.kitware.com/cmake/cmake/-/issues/18399 - add_library( - scap_engine_gvisor_o OBJECT ${scap_engine_gvisor_sources} - ${scap_engine_gvisor_generated_sources} - ) - set_property(TARGET scap_engine_gvisor_o PROPERTY POSITION_INDEPENDENT_CODE ON) - - target_include_directories(scap_engine_gvisor_o PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - - target_link_libraries(scap_engine_gvisor_o PRIVATE scap_platform_util) - - add_dependencies(scap_engine_gvisor_o uthash) - add_dependencies(scap scap_engine_gvisor_o) - target_sources(scap PRIVATE $) -else() - add_library( - scap_engine_gvisor ${scap_engine_gvisor_sources} ${scap_engine_gvisor_generated_sources} - ) +add_library( + scap_engine_gvisor ${scap_engine_gvisor_sources} ${scap_engine_gvisor_generated_sources} +) - add_dependencies(scap_engine_gvisor uthash) - target_link_libraries( - scap_engine_gvisor - PRIVATE scap - PUBLIC scap_platform_util scap_error ${CMAKE_THREAD_LIBS_INIT} ${PROTOBUF_LIB} - ${JSONCPP_LIB} - ) +add_dependencies(scap_engine_gvisor uthash) +target_link_libraries( + scap_engine_gvisor PUBLIC scap_platform_util scap_error ${CMAKE_THREAD_LIBS_INIT} + ${PROTOBUF_LIB} ${JSONCPP_LIB} +) - target_include_directories(scap_engine_gvisor PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) +target_include_directories(scap_engine_gvisor PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - set_scap_target_properties(scap_engine_gvisor) -endif() +set_scap_target_properties(scap_engine_gvisor)