feat(top): Add new fairmq-top tool

This commit is contained in:
Dennis Klein
2021-06-18 15:13:54 +02:00
parent bc91799e56
commit cb2eca9c4a
11 changed files with 566 additions and 12 deletions

View File

@@ -77,9 +77,16 @@ if(BUILD_TIDY_TOOL)
find_package2(PRIVATE LLVM REQUIRED)
find_package2(PRIVATE Clang REQUIRED)
set(Clang_VERSION ${LLVM_VERSION})
endif()
if(BUILD_TIDY_TOOL OR BUILD_SDK_TOP_TOOL)
find_package2(PRIVATE CLI11 REQUIRED)
endif()
if(BUILD_SDK_TOP_TOOL)
find_package2(PRIVATE imtui REQUIRED)
endif()
find_package2_implicit_dependencies() # Always call last after latest find_package2
if(PROJECT_PACKAGE_DEPENDENCIES)

View File

@@ -106,7 +106,9 @@ if(ENABLE_SANITIZER_MEMORY AND CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
endif()
list(JOIN _sanitizers "," _sanitizers)
set(_sanitizers "-fsanitize=${_sanitizers}")
if(_sanitizers)
set(_sanitizers "-fsanitize=${_sanitizers}")
endif()
# Configure build types
set(CMAKE_CONFIGURATION_TYPES "Debug" "Release" "RelWithDebInfo")

View File

@@ -70,11 +70,17 @@ macro(fairmq_summary_components)
endif()
message(STATUS " ${BWhite}sdk_commands${CR} ${sdk_commands_summary}")
if(BUILD_TIDY_TOOL)
set(sdk_tidy_summary "${BGreen}YES${CR} (disable with ${BMagenta}-DBUILD_TIDY_TOOL=OFF${CR})")
set(tidy_summary "${BGreen}YES${CR} (disable with ${BMagenta}-DBUILD_TIDY_TOOL=OFF${CR})")
else()
set(sdk_tidy_summary "${BRed} NO${CR} (default, enable with ${BMagenta}-DBUILD_TIDY_TOOL=ON${CR})")
set(tidy_summary "${BRed} NO${CR} (default, enable with ${BMagenta}-DBUILD_TIDY_TOOL=ON${CR})")
endif()
message(STATUS " ${BWhite}tidy_tool${CR} ${sdk_tidy_summary}")
message(STATUS " ${BWhite}tidy_tool${CR} ${tidy_summary}")
if(BUILD_SDK_TOP_TOOL)
set(sdk_top_summary "${BGreen}YES${CR} EXPERIMENTAL (disable with ${BMagenta}-DBUILD_SDK_TOP_TOOL=OFF${CR})")
else()
set(sdk_top_summary "${BRed} NO${CR} EXPERIMENTAL (default, enable with ${BMagenta}-DBUILD_SDK_TOP_TOOL=ON${CR})")
endif()
message(STATUS " ${BWhite}sdk_top_tool${CR} ${sdk_top_summary}")
endmacro()
macro(fairmq_summary_static_analysis)

58
cmake/Findimtui.cmake Normal file
View File

@@ -0,0 +1,58 @@
################################################################################
# Copyright (C) 2021 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH #
# #
# This software is distributed under the terms of the #
# GNU Lesser General Public Licence (LGPL) version 3, #
# copied verbatim in the file "LICENSE" #
################################################################################
set(pkg imtui)
find_path(${pkg}_INCLUDE_DIR
NAMES ${pkg}.h
PATH_SUFFIXES include/${pkg}
DOC "imtui include directory"
)
get_filename_component(${pkg}_INCLUDE_DIR "${${pkg}_INCLUDE_DIR}/.." ABSOLUTE)
find_library(${pkg}_LIBRARY
NAMES lib${pkg}.so
PATH_SUFFIXES lib lib64
DOC "Path to libimtui.a"
)
find_library(${pkg}_ncurses_LIBRARY
NAMES lib${pkg}-ncurses.so
PATH_SUFFIXES lib lib64
DOC "Path to libimtui-ncurses.a"
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(${pkg} REQUIRED_VARS
${pkg}_INCLUDE_DIR
${pkg}_LIBRARY
${pkg}_ncurses_LIBRARY
)
get_filename_component(${pkg}_PREFIX "${${pkg}_INCLUDE_DIR}/.." ABSOLUTE)
if(${pkg}_FOUND AND NOT TARGET ${pkg}::${pkg}-ncurses)
add_library(${pkg}::${pkg}-ncurses SHARED IMPORTED)
set_target_properties(${pkg}::${pkg}-ncurses PROPERTIES
IMPORTED_LOCATION ${${pkg}_ncurses_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${${pkg}_INCLUDE_DIR}
)
endif()
if(${pkg}_FOUND AND NOT TARGET ${pkg}::${pkg})
add_library(${pkg}::${pkg} SHARED IMPORTED)
set_target_properties(${pkg}::${pkg} PROPERTIES
IMPORTED_LOCATION ${${pkg}_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${${pkg}_INCLUDE_DIR}
)
endif()
mark_as_advanced(
${pkg}_INCLUDE_DIR
${pkg}_LIBRARY
${pkg}_ncurses_LIBRARY
)