From 372c067335feca50fcc213913cc3c3c36ce5a3b3 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Thu, 20 Jul 2023 13:30:21 +0200 Subject: [PATCH 1/2] 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() From 0ba050f419c0d682d1c7fc6681fa454c3c4f0bb7 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Thu, 20 Jul 2023 13:45:20 +0200 Subject: [PATCH 2/2] libxft is an optional dependency Reason: see previous commit. Don't install libxft by default --- cmake_targets/tools/build_helper | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 88f84538ef..357f0f0dc2 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -562,12 +562,14 @@ check_install_additional_tools (){ iperf3 \ libforms-bin \ libforms-dev \ + libxft-dev \ xmlstarlet" elif [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]] || [[ "$OS_DISTRO" == "rocky" ]]; then PACKAGE_LIST="\ doxygen \ ctags \ iperf3 \ + libXft-devel \ xforms \ xforms-devel \ xmlstarlet" @@ -576,6 +578,7 @@ check_install_additional_tools (){ doxygen \ ctags \ iperf3 \ + libXft-devel \ xforms \ xforms-devel \ xmlstarlet" @@ -619,7 +622,6 @@ check_install_oai_software() { libsctp-dev \ libssl-dev \ libtool \ - libxft-dev \ patch \ openssl \ zlib1g-dev \ @@ -649,7 +651,6 @@ check_install_oai_software() { lksctp-tools \ lksctp-tools-devel \ libtool \ - libXft-devel \ ninja-build \ make \ openssl \