From 372c067335feca50fcc213913cc3c3c36ce5a3b3 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Thu, 20 Jul 2023 13:30:21 +0200 Subject: [PATCH] T GUI tools: guard with cmake option, default off The T tools offering a GUI use libxft as a dependency. By default, we try to limit the amount of dependencies, but libxft comes with X11. Put the GUI tools behind cmake option T_TOOLS_GUI (default: off) to only build on demand with a cmake option. --- common/utils/T/tracer/CMakeLists.txt | 80 +++++++++++++++------------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/common/utils/T/tracer/CMakeLists.txt b/common/utils/T/tracer/CMakeLists.txt index 6f66c2f4ee..b60649d2d4 100644 --- a/common/utils/T/tracer/CMakeLists.txt +++ b/common/utils/T/tracer/CMakeLists.txt @@ -21,30 +21,6 @@ target_link_libraries(extract_output_subframe PRIVATE tracer_utils) add_executable(extract extract.c) target_link_libraries(extract PRIVATE tracer_utils) -add_executable(textlog textlog.c) -target_link_libraries(textlog PRIVATE tracer_utils tracer_filter tracer_gui - tracer_logger tracer_view tracer_events) - - -find_library(png png REQUIRED) -add_executable(enb enb.c) -target_link_libraries(enb PRIVATE tracer_utils tracer_filter tracer_gui - tracer_logger tracer_view tracer_events) -target_link_libraries(enb PRIVATE png) - -add_executable(ue ue.c) -target_link_libraries(ue PRIVATE tracer_utils tracer_filter tracer_gui - tracer_logger tracer_view tracer_events) -target_link_libraries(ue PRIVATE png) - -add_executable(vcd vcd.c) -target_link_libraries(vcd PRIVATE tracer_utils tracer_filter tracer_gui - tracer_logger tracer_view tracer_events) - -add_executable(to_vcd to_vcd.c) -target_link_libraries(to_vcd PRIVATE tracer_utils tracer_filter tracer_gui - tracer_logger tracer_view tracer_events) - add_executable(macpdu2wireshark macpdu2wireshark.c) target_link_libraries(macpdu2wireshark PRIVATE tracer_utils) @@ -52,22 +28,52 @@ add_executable(multi multi.c) target_link_libraries(multi PRIVATE tracer_utils T) target_include_directories(multi PRIVATE ..) -add_executable(gnb gnb.c) -target_link_libraries(gnb PRIVATE tracer_utils tracer_filter tracer_gui - tracer_logger tracer_view tracer_events) -target_link_libraries(gnb PRIVATE png) - -add_subdirectory(filter) -add_subdirectory(gui) -add_subdirectory(logger) -add_subdirectory(view) - add_custom_target(T_tools) add_dependencies(T_tools - record replay extract_config textlog enb ue vcd macpdu2wireshark - extract_input_subframe extract_output_subframe to_vcd extract multi - gnb) + record replay extract_config extract_input_subframe + extract_output_subframe extract macpdu2wireshark multi) add_dependencies(nr-softmodem T_tools) add_dependencies(nr-uesoftmodem T_tools) add_dependencies(lte-softmodem T_tools) add_dependencies(lte-uesoftmodem T_tools) + +# Some T tracer tools need additional libraries (Xft, also PNG) that come with +# a long list of dependencies. We put it behind a separate option for +# GUI-related tools so they can be added on demand, if necessary. +add_boolean_option(T_TRACER_GUI OFF "Compile T tracer GUI tools" OFF) +if(T_TRACER_GUI) + add_executable(textlog textlog.c) + target_link_libraries(textlog PRIVATE tracer_utils tracer_filter tracer_gui + tracer_logger tracer_view tracer_events) + + find_library(png png REQUIRED) + add_executable(enb enb.c) + target_link_libraries(enb PRIVATE tracer_utils tracer_filter tracer_gui + tracer_logger tracer_view tracer_events) + target_link_libraries(enb PRIVATE png) + + add_executable(gnb gnb.c) + target_link_libraries(gnb PRIVATE tracer_utils tracer_filter tracer_gui + tracer_logger tracer_view tracer_events) + target_link_libraries(gnb PRIVATE png) + + add_executable(ue ue.c) + target_link_libraries(ue PRIVATE tracer_utils tracer_filter tracer_gui + tracer_logger tracer_view tracer_events) + target_link_libraries(ue PRIVATE png) + + add_executable(vcd vcd.c) + target_link_libraries(vcd PRIVATE tracer_utils tracer_filter tracer_gui + tracer_logger tracer_view tracer_events) + + add_executable(to_vcd to_vcd.c) + target_link_libraries(to_vcd PRIVATE tracer_utils tracer_filter tracer_gui + tracer_logger tracer_view tracer_events) + + add_subdirectory(gui) + add_subdirectory(filter) + add_subdirectory(logger) + add_subdirectory(view) + + add_dependencies(T_tools textlog enb gnb ue vcd to_vcd) +endif()