b016c8929f
* Source code restructuring * Critical trace updates following restructuring * thread_sampler, timestamps - thread_sampler - CPU frequency managed via thread_sampler - rocm-smi managed via thread_sampler - Use consistent timestamps for perfetto - removed hsa_timer_t in favor of wall_clock::record() - disable KokkosP by default - re-enable critical-trace testing * cmake-format * Fix for defines.hpp.in * Remove OMNITRACE_ROCM_SMI_FREQ - thread_sampler freq is set via OMNITRACE_SAMPLING_FREQ w/ max of 1000 * Increase CI Install Dyninst timeout * Debug macros + omnitrace_init_tooling + config - new debug macros - extern "C" omnitrace_init_tooling - guard get_rocm_smi_devices * Miscellaneous tweaks - tweak to transpose - critical_trace::Device::ANY - perfetto "critical-trace" category - OMNITRACE_VERBOSE usage * Disable key and tid data for HIP API calls - non-kernels are ignored in activity callback * critical-trace exe updates - fix perfetto generation - improved logging - improved readability * timemory submodule update - lulesh example cmake tweaks
67 líneas
2.7 KiB
CMake
67 líneas
2.7 KiB
CMake
include_guard(DIRECTORY)
|
|
|
|
# ----------------------------------------------------------------------------------------#
|
|
#
|
|
# Clang Tidy
|
|
#
|
|
# ----------------------------------------------------------------------------------------#
|
|
|
|
# clang-tidy
|
|
macro(OMNITRACE_ACTIVATE_CLANG_TIDY)
|
|
if(OMNITRACE_USE_CLANG_TIDY)
|
|
find_program(CLANG_TIDY_COMMAND NAMES clang-tidy)
|
|
omnitrace_add_feature(CLANG_TIDY_COMMAND "Path to clang-tidy command")
|
|
if(NOT CLANG_TIDY_COMMAND)
|
|
timemory_message(
|
|
WARNING "OMNITRACE_USE_CLANG_TIDY is ON but clang-tidy is not found!")
|
|
set(OMNITRACE_USE_CLANG_TIDY OFF)
|
|
else()
|
|
set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY_COMMAND})
|
|
|
|
# Create a preprocessor definition that depends on .clang-tidy content so the
|
|
# compile command will change when .clang-tidy changes. This ensures that a
|
|
# subsequent build re-runs clang-tidy on all sources even if they do not
|
|
# otherwise need to be recompiled. Nothing actually uses this definition. We
|
|
# add it to targets on which we run clang-tidy just to get the build
|
|
# dependency on the .clang-tidy file.
|
|
file(SHA1 ${CMAKE_CURRENT_LIST_DIR}/.clang-tidy clang_tidy_sha1)
|
|
set(CLANG_TIDY_DEFINITIONS "CLANG_TIDY_SHA1=${clang_tidy_sha1}")
|
|
unset(clang_tidy_sha1)
|
|
endif()
|
|
endif()
|
|
endmacro()
|
|
|
|
# ------------------------------------------------------------------------------#
|
|
#
|
|
# clang-format target
|
|
#
|
|
# ------------------------------------------------------------------------------#
|
|
|
|
find_program(OMNITRACE_CLANG_FORMAT_EXE NAMES clang-format-11 clang-format-mp-11
|
|
clang-format)
|
|
|
|
if(OMNITRACE_CLANG_FORMAT_EXE)
|
|
file(GLOB_RECURSE sources ${PROJECT_SOURCE_DIR}/source/*.cpp)
|
|
file(GLOB_RECURSE headers ${PROJECT_SOURCE_DIR}/source/*.hpp
|
|
${PROJECT_SOURCE_DIR}/source/*.hpp.in)
|
|
file(GLOB_RECURSE examples ${PROJECT_SOURCE_DIR}/examples/*.cpp
|
|
${PROJECT_SOURCE_DIR}/examples/*.hpp)
|
|
file(GLOB_RECURSE external ${PROJECT_SOURCE_DIR}/examples/lulesh/external/*.cpp
|
|
${PROJECT_SOURCE_DIR}/examples/lulesh/external/*.hpp)
|
|
if(external)
|
|
list(REMOVE_ITEM examples ${external})
|
|
endif()
|
|
add_custom_target(
|
|
format-omnitrace
|
|
${OMNITRACE_CLANG_FORMAT_EXE} -i ${sources} ${headers} ${examples}
|
|
COMMENT "Running C++ formatter ${OMNITRACE_CLANG_FORMAT_EXE}...")
|
|
if(NOT TARGET format)
|
|
add_custom_target(format)
|
|
endif()
|
|
add_dependencies(format format-omnitrace)
|
|
else()
|
|
message(
|
|
AUTHOR_WARNING
|
|
"clang-format could not be found. format build target not available.")
|
|
endif()
|