Use gersemi for CMake formatting (#257)

* Replace `cmake-format` with `gersemi`

Signed-off-by: David Galiffi <David.Galiffi@amd.com>

* Remove .cmake-format.yaml

Signed-off-by: David Galiffi <David.Galiffi@amd.com>

* Update workflow to use gersemi

Signed-off-by: David Galiffi <David.Galiffi@amd.com>

* Update CONTRIBUTING.md

* Update helper scripts

* Don't include `*/external/*` in workflows

---------

Signed-off-by: David Galiffi <David.Galiffi@amd.com>
Šī revīzija ir iekļauta:
David Galiffi
2025-06-22 10:44:33 -04:00
revīziju iesūtīja GitHub
vecāks 1e13b590e7
revīzija 122623a929
106 mainīti faili ar 5116 papildinājumiem un 3156 dzēšanām
+120 -66
Parādīt failu
@@ -12,44 +12,51 @@ rocprofiler_systems_checkout_git_submodule(
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
REPO_URL https://bitbucket.org/icl/papi.git
REPO_BRANCH effd1ef4e0fd4b80e36546791277215a2d6b9eba
TEST_FILE src/configure)
TEST_FILE src/configure
)
set(PAPI_LIBPFM_SOVERSION
"4.11.1"
CACHE STRING "libpfm.so version")
set(PAPI_LIBPFM_SOVERSION "4.11.1" CACHE STRING "libpfm.so version")
set(ROCPROFSYS_PAPI_SOURCE_DIR ${PROJECT_BINARY_DIR}/external/papi/source)
set(ROCPROFSYS_PAPI_INSTALL_DIR ${PROJECT_BINARY_DIR}/external/papi/install)
if(NOT EXISTS "${ROCPROFSYS_PAPI_SOURCE_DIR}")
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/external/papi
${ROCPROFSYS_PAPI_SOURCE_DIR})
COMMAND
${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/external/papi
${ROCPROFSYS_PAPI_SOURCE_DIR}
)
endif()
if(NOT EXISTS "${ROCPROFSYS_PAPI_INSTALL_DIR}")
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory
${ROCPROFSYS_PAPI_INSTALL_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory
${ROCPROFSYS_PAPI_INSTALL_DIR}/include)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib)
execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory ${ROCPROFSYS_PAPI_INSTALL_DIR}
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory ${ROCPROFSYS_PAPI_INSTALL_DIR}/include
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory ${ROCPROFSYS_PAPI_INSTALL_DIR}/lib
)
execute_process(
COMMAND
${CMAKE_COMMAND} -E touch ${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpapi.a
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpfm.a
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpfm.so)
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpfm.so
)
set(_ROCPROFSYS_PAPI_BUILD_BYPRODUCTS
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpapi.a
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpfm.a
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpfm.so)
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpfm.so
)
endif()
# Set ROCPROFSYS_PAPI_CONFIGURE_JOBS for commands that need to be run nonparallel
set(ROCPROFSYS_PAPI_CONFIGURE_JOBS 1)
rocprofiler_systems_add_option(ROCPROFSYS_PAPI_AUTO_COMPONENTS
"Automatically enable components" OFF)
"Automatically enable components" OFF
)
# -------------- PACKAGES -----------------------------------------------------
@@ -89,10 +96,13 @@ set(_ROCPROFSYS_VALID_PAPI_COMPONENTS
sensors_ppc
stealtime
sysdetect
vmware)
vmware
)
set(ROCPROFSYS_VALID_PAPI_COMPONENTS
"${_ROCPROFSYS_VALID_PAPI_COMPONENTS}"
CACHE STRING "Valid PAPI components")
CACHE STRING
"Valid PAPI components"
)
mark_as_advanced(ROCPROFSYS_VALID_PAPI_COMPONENTS)
# default components which do not require 3rd-party headers or libraries
@@ -106,12 +116,14 @@ set(_ROCPROFSYS_PAPI_COMPONENTS
perf_event
perf_event_uncore
# rapl stealtime
)
)
if(ROCPROFSYS_PAPI_AUTO_COMPONENTS)
# lmsensors
find_path(ROCPROFSYS_PAPI_LMSENSORS_ROOT_DIR NAMES include/sensors/sensors.h
include/sensors.h)
find_path(
ROCPROFSYS_PAPI_LMSENSORS_ROOT_DIR
NAMES include/sensors/sensors.h include/sensors.h
)
if(ROCPROFSYS_PAPI_LMSENSORS_ROOT_DIR)
list(APPEND _ROCPROFSYS_PAPI_COMPONENTS lmsensors)
@@ -119,10 +131,7 @@ if(ROCPROFSYS_PAPI_AUTO_COMPONENTS)
# pcp
find_path(ROCPROFSYS_PAPI_PCP_ROOT_DIR NAMES include/pcp/impl.h)
find_library(
ROCPROFSYS_PAPI_PCP_LIBRARY
NAMES pcp
PATH_SUFFIXES lib lib64)
find_library(ROCPROFSYS_PAPI_PCP_LIBRARY NAMES pcp PATH_SUFFIXES lib lib64)
if(ROCPROFSYS_PAPI_PCP_ROOT_DIR AND ROCPROFSYS_PAPI_PCP_LIBRARY)
list(APPEND _ROCPROFSYS_PAPI_COMPONENTS pcp)
@@ -132,19 +141,26 @@ endif()
# set the ROCPROFSYS_PAPI_COMPONENTS cache variable
set(ROCPROFSYS_PAPI_COMPONENTS
"${_ROCPROFSYS_PAPI_COMPONENTS}"
CACHE STRING "PAPI components")
CACHE STRING
"PAPI components"
)
rocprofiler_systems_add_feature(ROCPROFSYS_PAPI_COMPONENTS "PAPI components")
string(REPLACE ";" "\ " _ROCPROFSYS_PAPI_COMPONENTS "${ROCPROFSYS_PAPI_COMPONENTS}")
set(ROCPROFSYS_PAPI_EXTRA_ENV)
foreach(_COMP ${ROCPROFSYS_PAPI_COMPONENTS})
string(REPLACE ";" ", " _ROCPROFSYS_VALID_PAPI_COMPONENTS_MSG
"${ROCPROFSYS_VALID_PAPI_COMPONENTS}")
string(
REPLACE
";"
", "
_ROCPROFSYS_VALID_PAPI_COMPONENTS_MSG
"${ROCPROFSYS_VALID_PAPI_COMPONENTS}"
)
if(NOT "${_COMP}" IN_LIST ROCPROFSYS_VALID_PAPI_COMPONENTS)
rocprofiler_systems_message(
AUTHOR_WARNING
"ROCPROFSYS_PAPI_COMPONENTS contains an unknown component '${_COMP}'. Known components: ${_ROCPROFSYS_VALID_PAPI_COMPONENTS_MSG}"
)
)
endif()
unset(_ROCPROFSYS_VALID_PAPI_COMPONENTS_MSG)
endforeach()
@@ -155,32 +171,34 @@ if("rocm" IN_LIST ROCPROFSYS_PAPI_COMPONENTS)
endif()
if("lmsensors" IN_LIST ROCPROFSYS_PAPI_COMPONENTS AND ROCPROFSYS_PAPI_LMSENSORS_ROOT_DIR)
list(APPEND ROCPROFSYS_PAPI_EXTRA_ENV
PAPI_LMSENSORS_ROOT=${ROCPROFSYS_PAPI_LMSENSORS_ROOT_DIR})
list(
APPEND
ROCPROFSYS_PAPI_EXTRA_ENV
PAPI_LMSENSORS_ROOT=${ROCPROFSYS_PAPI_LMSENSORS_ROOT_DIR}
)
endif()
if("pcp" IN_LIST ROCPROFSYS_PAPI_COMPONENTS AND ROCPROFSYS_PAPI_PCP_ROOT_DIR)
list(APPEND ROCPROFSYS_PAPI_EXTRA_ENV PAPI_PCP_ROOT=${ROCPROFSYS_PAPI_PCP_ROOT_DIR})
endif()
if("perf_event_uncore" IN_LIST ROCPROFSYS_PAPI_COMPONENTS AND NOT "perf_event" IN_LIST
ROCPROFSYS_PAPI_COMPONENTS)
if(
"perf_event_uncore" IN_LIST ROCPROFSYS_PAPI_COMPONENTS
AND NOT "perf_event" IN_LIST ROCPROFSYS_PAPI_COMPONENTS
)
rocprofiler_systems_message(
FATAL_ERROR
"ROCPROFSYS_PAPI_COMPONENTS :: 'perf_event_uncore' requires 'perf_event' component"
)
)
endif()
find_program(
MAKE_EXECUTABLE
NAMES make gmake
PATH_SUFFIXES bin)
find_program(MAKE_EXECUTABLE NAMES make gmake PATH_SUFFIXES bin)
if(NOT MAKE_EXECUTABLE)
rocprofiler_systems_message(
FATAL_ERROR
"make/gmake executable not found. Please re-run with -DMAKE_EXECUTABLE=/path/to/make"
)
)
endif()
set(_PAPI_C_COMPILER ${CMAKE_C_COMPILER})
@@ -190,12 +208,10 @@ if(CMAKE_C_COMPILER_IS_CLANG)
set(_PAPI_C_COMPILER ${ROCPROFSYS_GNU_C_COMPILER})
endif()
endif()
set(PAPI_C_COMPILER
${_PAPI_C_COMPILER}
CACHE FILEPATH "C compiler used to compile PAPI")
set(PAPI_C_COMPILER ${_PAPI_C_COMPILER} CACHE FILEPATH "C compiler used to compile PAPI")
include(ExternalProject)
externalproject_add(
ExternalProject_Add(
rocprofiler-systems-papi-build
PREFIX ${PROJECT_BINARY_DIR}/external/papi
SOURCE_DIR ${ROCPROFSYS_PAPI_SOURCE_DIR}/src
@@ -218,7 +234,8 @@ externalproject_add(
CFLAGS=-fPIC\ -O3\ -Wno-stringop-truncation\ -Wno-use-after-free
${ROCPROFSYS_PAPI_EXTRA_ENV} ${MAKE_EXECUTABLE} utils install-utils -s
INSTALL_COMMAND ""
BUILD_BYPRODUCTS "${_ROCPROFSYS_PAPI_BUILD_BYPRODUCTS}")
BUILD_BYPRODUCTS "${_ROCPROFSYS_PAPI_BUILD_BYPRODUCTS}"
)
# target for re-executing the installation
add_custom_target(
@@ -232,7 +249,8 @@ add_custom_target(
CFLAGS=-fPIC\ -O3\ -Wno-stringop-truncation\ -Wno-use-after-free
${ROCPROFSYS_PAPI_EXTRA_ENV} ${MAKE_EXECUTABLE} utils install-utils -s
WORKING_DIRECTORY ${ROCPROFSYS_PAPI_SOURCE_DIR}/src
COMMENT "Installing PAPI...")
COMMENT "Installing PAPI..."
)
add_custom_target(
rocprofiler-systems-papi-clean
@@ -244,42 +262,67 @@ add_custom_target(
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpfm.a
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpfm.so
WORKING_DIRECTORY ${ROCPROFSYS_PAPI_SOURCE_DIR}/src
COMMENT "Cleaning PAPI...")
COMMENT "Cleaning PAPI..."
)
set(PAPI_ROOT_DIR
${ROCPROFSYS_PAPI_INSTALL_DIR}
CACHE PATH "Root PAPI installation" FORCE)
CACHE PATH
"Root PAPI installation"
FORCE
)
set(PAPI_INCLUDE_DIR
${ROCPROFSYS_PAPI_INSTALL_DIR}/include
CACHE PATH "PAPI include folder" FORCE)
CACHE PATH
"PAPI include folder"
FORCE
)
set(PAPI_LIBRARY
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpapi.a
CACHE FILEPATH "PAPI library" FORCE)
CACHE FILEPATH
"PAPI library"
FORCE
)
set(PAPI_pfm_LIBRARY
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpfm.so
CACHE FILEPATH "PAPI library" FORCE)
CACHE FILEPATH
"PAPI library"
FORCE
)
set(PAPI_STATIC_LIBRARY
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpapi.a
CACHE FILEPATH "PAPI library" FORCE)
CACHE FILEPATH
"PAPI library"
FORCE
)
set(PAPI_pfm_STATIC_LIBRARY
${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/libpfm.a
CACHE FILEPATH "PAPI library" FORCE)
CACHE FILEPATH
"PAPI library"
FORCE
)
target_include_directories(rocprofiler-systems-papi SYSTEM
INTERFACE $<BUILD_INTERFACE:${PAPI_INCLUDE_DIR}>)
target_include_directories(
rocprofiler-systems-papi
SYSTEM
INTERFACE $<BUILD_INTERFACE:${PAPI_INCLUDE_DIR}>
)
target_link_libraries(
rocprofiler-systems-papi INTERFACE $<BUILD_INTERFACE:${PAPI_LIBRARY}>
$<BUILD_INTERFACE:${PAPI_pfm_LIBRARY}>)
rocprofiler-systems-papi
INTERFACE $<BUILD_INTERFACE:${PAPI_LIBRARY}> $<BUILD_INTERFACE:${PAPI_pfm_LIBRARY}>
)
rocprofiler_systems_target_compile_definitions(
rocprofiler-systems-papi INTERFACE ROCPROFSYS_USE_PAPI
$<BUILD_INTERFACE:TIMEMORY_USE_PAPI=1>)
$<BUILD_INTERFACE:TIMEMORY_USE_PAPI=1>
)
install(
DIRECTORY ${ROCPROFSYS_PAPI_INSTALL_DIR}/lib/
DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}
COMPONENT papi
FILES_MATCHING
PATTERN "*.so*")
PATTERN "*.so*"
)
foreach(
_UTIL_EXE
@@ -297,8 +340,8 @@ foreach(
papi_multiplex_cost
papi_native_avail
papi_version
papi_xml_event_info)
papi_xml_event_info
)
string(REPLACE "_" "-" _UTIL_EXE_INSTALL_NAME "${BINARY_NAME_PREFIX}-${_UTIL_EXE}")
# RPM installer on RedHat/RockyLinux throws error that #!/usr/bin/python should either
@@ -307,12 +350,21 @@ foreach(
file(
READ
"${PROJECT_BINARY_DIR}/external/papi/source/src/high-level/scripts/${_UTIL_EXE}"
_HL_OUTPUT_WRITER)
string(REPLACE "#!/usr/bin/python\n" "#!/usr/bin/python3\n" _HL_OUTPUT_WRITER
"${_HL_OUTPUT_WRITER}")
_HL_OUTPUT_WRITER
)
string(
REPLACE
"#!/usr/bin/python\n"
"#!/usr/bin/python3\n"
_HL_OUTPUT_WRITER
"${_HL_OUTPUT_WRITER}"
)
file(MAKE_DIRECTORY "${ROCPROFSYS_PAPI_INSTALL_DIR}/bin")
file(WRITE "${ROCPROFSYS_PAPI_INSTALL_DIR}/bin/${_UTIL_EXE}3"
"${_HL_OUTPUT_WRITER}")
file(
WRITE
"${ROCPROFSYS_PAPI_INSTALL_DIR}/bin/${_UTIL_EXE}3"
"${_HL_OUTPUT_WRITER}"
)
set(_UTIL_EXE "${_UTIL_EXE}3")
# python script file install to libexec
@@ -321,7 +373,8 @@ foreach(
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${PROJECT_NAME}
RENAME ${_UTIL_EXE_INSTALL_NAME}
COMPONENT papi
OPTIONAL)
OPTIONAL
)
else()
# Binary files moved to bin
install(
@@ -329,6 +382,7 @@ foreach(
DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}
RENAME ${_UTIL_EXE_INSTALL_NAME}
COMPONENT papi
OPTIONAL)
OPTIONAL
)
endif()
endforeach()