46b6db1a4c
* Submitting jobs to cdash * Fail on submit * submit url env * submit url env * try passing submit url as arg * fix submit url * Updated default URL * Add submissions for remaining ubuntu focal workflow jobs * Replace g++ with gcc in dashboard build name * Add --ctest-args to run-ci.sh * Add cdash support for bionic, jammy, and opensuse workflows * Decrease CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE * OMNITRACE_BUILD_CODECOV option * Support code coverage in CDash script * CI dyninst built with debug info * Update ci-containers - cron schedule moved 4 hours later to UTC+5 * Update implementation of config::configure_signal_handler - using lambdas failed to compile with codecov flags * Add codecov job to ubuntu focal workflow * Fix support for --ctest-args in run-ci script * Fix ubuntu workflows * Fix quotation handling in run-ci script * git safe directory for codecov * New MPI examples * Remove --stop-on-failure * dynamic_library update - find_library_path checks procfs maps - invoke find_library_path with no additional args to resolve to mapped file * RCCLP uses dynamic_library * check if file exists for memory_map_files metadata * Testing updates - include new mpi examples in tests - fix test labels - test critical-trace exe * Update MPI C examples tests (needed arg) * Remove try/catch block from critical-trace * Fix sampling max wait when shutting down * Fix test env for critical-trace * Fix settings for critical-trace - disable time output: data is deterministic - disable PID suffixes: not multiprocess * Update critical-trace ctest * Update critical-trace exe - throw error if input cannot be opened - throw error if input has no data * Update lulesh example with more kokkos tools usage * Fix tasking issue with critical_trace and roctracer - were not setting pools to active - also sync before critical_trace::get_entries * Increase verbosity of critical-trace tests * Update code coverage tests - skip code coverage + preload - code-coverage python example and test * Remove duplication omnitrace.initialize function * Skip python3.6 for ubuntu jammy * Update MPI examples - use MPI_Isend and MPI_Irecv - explicitly use MPI_Bcast * Update Formatting.cmake - include C files in examples * run-ci script does not check return of coverage * mpi-allreduce link to libm * Update ctest args in run-ci script * Update dyninst submodule - safety improvements in BinaryEdit::openResolvedLibraryName * capture cmake error for ctest_coverage
124 satır
4.7 KiB
CMake
124 satır
4.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)
|
|
|
|
find_program(OMNITRACE_CMAKE_FORMAT_EXE NAMES cmake-format)
|
|
find_program(OMNITRACE_BLACK_FORMAT_EXE NAMES black)
|
|
|
|
add_custom_target(format-omnitrace)
|
|
if(NOT TARGET format)
|
|
add_custom_target(format)
|
|
endif()
|
|
foreach(_TYPE source python cmake)
|
|
if(NOT TARGET format-${_TYPE})
|
|
add_custom_target(format-${_TYPE})
|
|
endif()
|
|
endforeach()
|
|
|
|
if(OMNITRACE_CLANG_FORMAT_EXE
|
|
OR OMNITRACE_BLACK_FORMAT_EXE
|
|
OR OMNITRACE_CMAKE_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 ${PROJECT_SOURCE_DIR}/source/*.h
|
|
${PROJECT_SOURCE_DIR}/source/*.h.in)
|
|
file(GLOB_RECURSE examples ${PROJECT_SOURCE_DIR}/examples/*.cpp
|
|
${PROJECT_SOURCE_DIR}/examples/*.c ${PROJECT_SOURCE_DIR}/examples/*.hpp)
|
|
file(GLOB_RECURSE external ${PROJECT_SOURCE_DIR}/examples/lulesh/external/kokkos/*)
|
|
file(
|
|
GLOB_RECURSE
|
|
cmake_files
|
|
${PROJECT_SOURCE_DIR}/source/*CMakeLists.txt
|
|
${PROJECT_SOURCE_DIR}/examples/*CMakeLists.txt
|
|
${PROJECT_SOURCE_DIR}/tests/*CMakeLists.txt
|
|
${PROJECT_SOURCE_DIR}/cmake/*.cmake
|
|
${PROJECT_SOURCE_DIR}/source/*.cmake)
|
|
list(APPEND cmake_files ${PROJECT_SOURCE_DIR}/CMakeLists.txt)
|
|
if(external)
|
|
list(REMOVE_ITEM examples ${external})
|
|
list(REMOVE_ITEM cmake_files ${external})
|
|
endif()
|
|
|
|
if(OMNITRACE_CLANG_FORMAT_EXE)
|
|
add_custom_target(
|
|
format-omnitrace-source
|
|
${OMNITRACE_CLANG_FORMAT_EXE} -i ${sources} ${headers} ${examples}
|
|
COMMENT "[omnitrace] Running C++ formatter ${OMNITRACE_CLANG_FORMAT_EXE}...")
|
|
endif()
|
|
|
|
if(OMNITRACE_BLACK_FORMAT_EXE)
|
|
add_custom_target(
|
|
format-omnitrace-python
|
|
${OMNITRACE_BLACK_FORMAT_EXE} -q ${PROJECT_SOURCE_DIR}
|
|
COMMENT
|
|
"[omnitrace] Running Python formatter ${OMNITRACE_BLACK_FORMAT_EXE}...")
|
|
if(NOT TARGET format-python)
|
|
add_custom_target(format-python)
|
|
endif()
|
|
endif()
|
|
|
|
if(OMNITRACE_CMAKE_FORMAT_EXE)
|
|
add_custom_target(
|
|
format-omnitrace-cmake
|
|
${OMNITRACE_CMAKE_FORMAT_EXE} -i ${cmake_files}
|
|
COMMENT "[omnitrace] Running CMake formatter ${OMNITRACE_CMAKE_FORMAT_EXE}..."
|
|
)
|
|
if(NOT TARGET format-cmake)
|
|
add_custom_target(format-cmake)
|
|
endif()
|
|
endif()
|
|
|
|
foreach(_TYPE source python cmake)
|
|
if(TARGET format-omnitrace-${_TYPE})
|
|
add_dependencies(format-omnitrace format-omnitrace-${_TYPE})
|
|
add_dependencies(format-${_TYPE} format-omnitrace-${_TYPE})
|
|
endif()
|
|
endforeach()
|
|
|
|
foreach(_TYPE source python)
|
|
if(TARGET format-omnitrace-${_TYPE})
|
|
add_dependencies(format format-omnitrace-${_TYPE})
|
|
endif()
|
|
endforeach()
|
|
else()
|
|
message(STATUS "clang-format could not be found. format build target not available.")
|
|
endif()
|