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>
This commit is contained in:
David Galiffi
2025-06-22 10:44:33 -04:00
committed by GitHub
parent 1e13b590e7
commit 122623a929
106 changed files with 5116 additions and 3156 deletions
File diff suppressed because it is too large Load Diff
+27 -26
View File
@@ -61,29 +61,21 @@ if(PC_LIBDW_FOUND)
pkg_get_variable(PC_LIBDW_INCLUDE_DIRS libdw includedir)
endif()
set(LibDW_INCLUDE_DIRS
${PC_LIBDW_INCLUDE_DIRS}
CACHE PATH "")
set(LibDW_LIBRARIES
${PC_LIBDW_LINK_LIBRARIES}
CACHE PATH "")
set(LibDW_VERSION
${PC_LIBDW_VERSION}
CACHE STRING "")
set(LibDW_INCLUDE_DIRS ${PC_LIBDW_INCLUDE_DIRS} CACHE PATH "")
set(LibDW_LIBRARIES ${PC_LIBDW_LINK_LIBRARIES} CACHE PATH "")
set(LibDW_VERSION ${PC_LIBDW_VERSION} CACHE STRING "")
else()
find_path(
LibDW_INCLUDE_DIRS
NAMES libdw.h
PATH_SUFFIXES elfutils ${_find_path_args})
find_path(LibDW_INCLUDE_DIRS NAMES libdw.h PATH_SUFFIXES elfutils ${_find_path_args})
find_library(
LibDW_LIBRARIES
NAMES libdw dw
PATH_SUFFIXES elfutils ${_find_path_args})
find_library(LibDW_LIBRARIES NAMES libdw dw PATH_SUFFIXES elfutils ${_find_path_args})
if(EXISTS "${LibDW_INCLUDE_DIRS}/version.h")
file(STRINGS "${LibDW_INCLUDE_DIRS}/version.h" _version_line
REGEX "^#define _ELFUTILS_VERSION[ \t]+[0-9]+")
file(
STRINGS
"${LibDW_INCLUDE_DIRS}/version.h"
_version_line
REGEX "^#define _ELFUTILS_VERSION[ \t]+[0-9]+"
)
string(REGEX MATCH "[0-9]+" _version "${_version_line}")
if(NOT "x${_version}" STREQUAL "x")
set(LibDW_VERSION "0.${_version}")
@@ -98,7 +90,8 @@ find_package_handle_standard_args(
LibDW
FOUND_VAR LibDW_FOUND
REQUIRED_VARS LibDW_LIBRARIES LibDW_INCLUDE_DIRS
VERSION_VAR LibDW_VERSION)
VERSION_VAR LibDW_VERSION
)
if(LibDW_FOUND)
mark_as_advanced(LibDW_INCLUDE_DIRS)
@@ -120,21 +113,29 @@ if(LibDW_FOUND)
if(NOT TARGET LibDW::LibDW)
add_library(LibDW::LibDW UNKNOWN IMPORTED)
set_target_properties(LibDW::LibDW PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${LibDW_INCLUDE_DIRS}")
set_target_properties(
LibDW::LibDW
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LibDW_INCLUDE_DIRS}"
)
if(NOT "x${_link_libs}" STREQUAL "x")
set_target_properties(
LibDW::LibDW PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LINK_DEPENDENT_LIBRARIES "${_link_libs}")
LibDW::LibDW
PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LINK_DEPENDENT_LIBRARIES "${_link_libs}"
)
set(LibDW_LIBRARIES ${_libdw})
unset(_libdw)
unset(_link_libs)
endif()
set_target_properties(
LibDW::LibDW PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${LibDW_LIBRARIES}")
LibDW::LibDW
PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${LibDW_LIBRARIES}"
)
endif()
endif()
+20 -17
View File
@@ -61,29 +61,29 @@ if(PC_LIBDEBUGINFOD_FOUND)
pkg_get_variable(PC_LIBDEBUGINFOD_INCLUDE_DIRS libdebuginfod includedir)
endif()
set(LibDebuginfod_INCLUDE_DIRS
${PC_LIBDEBUGINFOD_INCLUDE_DIRS}
CACHE PATH "")
set(LibDebuginfod_LIBRARIES
${PC_LIBDEBUGINFOD_LINK_LIBRARIES}
CACHE PATH "")
set(LibDebuginfod_VERSION
${PC_LIBDEBUGINFOD_VERSION}
CACHE STRING "")
set(LibDebuginfod_INCLUDE_DIRS ${PC_LIBDEBUGINFOD_INCLUDE_DIRS} CACHE PATH "")
set(LibDebuginfod_LIBRARIES ${PC_LIBDEBUGINFOD_LINK_LIBRARIES} CACHE PATH "")
set(LibDebuginfod_VERSION ${PC_LIBDEBUGINFOD_VERSION} CACHE STRING "")
else()
find_path(
LibDebuginfod_INCLUDE_DIRS
NAMES debuginfod.h
PATH_SUFFIXES elfutils ${_find_path_args})
PATH_SUFFIXES elfutils ${_find_path_args}
)
find_library(
LibDebuginfod_LIBRARIES
NAMES libdebuginfod debuginfod
PATH_SUFFIXES elfutils ${_find_path_args})
PATH_SUFFIXES elfutils ${_find_path_args}
)
if(EXISTS "${LibDebuginfod_INCLUDE_DIRS}/version.h")
file(STRINGS "${LibDebuginfod_INCLUDE_DIRS}/version.h" _version_line
REGEX "^#define _ELFUTILS_VERSION[ \t]+[0-9]+")
file(
STRINGS
"${LibDebuginfod_INCLUDE_DIRS}/version.h"
_version_line
REGEX "^#define _ELFUTILS_VERSION[ \t]+[0-9]+"
)
string(REGEX MATCH "[0-9]+" _version "${_version_line}")
if(NOT "x${_version}" STREQUAL "x")
set(LibDebuginfod_VERSION "0.${_version}")
@@ -98,7 +98,8 @@ find_package_handle_standard_args(
LibDebuginfod
FOUND_VAR LibDebuginfod_FOUND
REQUIRED_VARS LibDebuginfod_LIBRARIES LibDebuginfod_INCLUDE_DIRS
VERSION_VAR LibDebuginfod_VERSION)
VERSION_VAR LibDebuginfod_VERSION
)
if(LibDebuginfod_FOUND)
mark_as_advanced(LibDebuginfod_INCLUDE_DIR)
@@ -109,9 +110,11 @@ if(LibDebuginfod_FOUND)
add_library(LibDebuginfod::LibDebuginfod UNKNOWN IMPORTED)
set_target_properties(
LibDebuginfod::LibDebuginfod
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LibDebuginfod_INCLUDE_DIRS}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${LibDebuginfod_LIBRARIES}")
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LibDebuginfod_INCLUDE_DIRS}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${LibDebuginfod_LIBRARIES}"
)
endif()
endif()
+6 -3
View File
@@ -33,14 +33,16 @@ find_path(
HINTS ${LibDwarf_ROOT_DIR}/include ${LibDwarf_ROOT_DIR} ${LibDwarf_INCLUDEDIR}
PATHS ${DYNINST_SYSTEM_INCLUDE_PATHS}
PATH_SUFFIXES ${_path_suffixes}
DOC "libdw include directories")
DOC "libdw include directories"
)
find_library(
LibDwarf_LIBRARIES
NAMES libdw.so.1 libdw.so
HINTS ${LibDwarf_ROOT_DIR}/lib ${LibDwarf_ROOT_DIR} ${LibDwarf_LIBRARYDIR}
PATHS ${DYNINST_SYSTEM_LIBRARY_PATHS}
PATH_SUFFIXES ${_path_suffixes})
PATH_SUFFIXES ${_path_suffixes}
)
# Find the library with the highest version
set(_max_ver 0.0)
@@ -67,7 +69,8 @@ find_package_handle_standard_args(
LibDwarf
FOUND_VAR LibDwarf_FOUND
REQUIRED_VARS LibDwarf_LIBRARIES LibDwarf_INCLUDE_DIR
VERSION_VAR LibDwarf_VERSION)
VERSION_VAR LibDwarf_VERSION
)
# Export cache variables
if(LibDwarf_FOUND)
+6 -3
View File
@@ -35,14 +35,16 @@ find_path(
HINTS ${LibElf_ROOT_DIR}/include ${LibElf_ROOT_DIR} ${LibElf_INCLUDEDIR}
PATHS ${DYNINST_SYSTEM_INCLUDE_PATHS}
PATH_SUFFIXES ${_path_suffixes}
DOC "libelf include directories")
DOC "libelf include directories"
)
find_library(
LibElf_LIBRARIES
NAMES libelf.so.1 libelf.so
HINTS ${LibElf_ROOT_DIR}/lib ${LibElf_ROOT_DIR} ${LibElf_LIBRARYDIR}
PATHS ${DYNINST_SYSTEM_LIBRARY_PATHS}
PATH_SUFFIXES ${_path_suffixes})
PATH_SUFFIXES ${_path_suffixes}
)
# Find the library with the highest version
set(_max_ver 0.0)
@@ -69,7 +71,8 @@ find_package_handle_standard_args(
LibElf
FOUND_VAR LibElf_FOUND
REQUIRED_VARS LibElf_LIBRARIES LibElf_INCLUDE_DIR
VERSION_VAR LibElf_VERSION)
VERSION_VAR LibElf_VERSION
)
# Export cache variables
if(LibElf_FOUND)
+6 -3
View File
@@ -44,7 +44,8 @@ find_path(
HINTS ${LibIberty_ROOT_DIR} ${LibIberty_ROOT_DIR}/include ${LibIberty_INCLUDEDIR}
PATHS ${DYNINST_SYSTEM_INCLUDE_PATHS}
PATH_SUFFIXES ${_path_suffixes}
DOC "LibIberty include directories")
DOC "LibIberty include directories"
)
# iberty_pic is for Debian <= wheezy
find_library(
@@ -52,13 +53,15 @@ find_library(
NAMES iberty_pic iberty
HINTS ${LibIberty_ROOT_DIR} ${LibIberty_LIBRARYDIR} ${IBERTY_LIBRARIES}
PATHS ${DYNINST_SYSTEM_LIBRARY_PATHS}
PATH_SUFFIXES ${_path_suffixes})
PATH_SUFFIXES ${_path_suffixes}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
LibIberty
FOUND_VAR LibIberty_FOUND
REQUIRED_VARS LibIberty_INCLUDE_DIRS LibIberty_LIBRARIES)
REQUIRED_VARS LibIberty_INCLUDE_DIRS LibIberty_LIBRARIES
)
# For backwards compatibility only
set(IBERTY_FOUND ${LibIberty_FOUND})
+17 -7
View File
@@ -7,26 +7,33 @@ include(FindPackageHandleStandardArgs)
set(LIBVA_HEADERS_INCLUDE_DIR_INTERNAL
"${PROJECT_SOURCE_DIR}/source/lib/rocprof-sys/library/tpls"
CACHE PATH "Path to internal va headers")
CACHE PATH
"Path to internal va headers"
)
# ----------------------------------------------------------------------------------------#
find_path(
LIBVA_HEADERS_INCLUDE_DIR
NAMES va/va.h
PATHS /opt/amdgpu/include
NO_DEFAULT_PATH)
NO_DEFAULT_PATH
)
if(NOT EXISTS "${LIBVA_HEADERS_INCLUDE_DIR}")
rocprofiler_systems_message(
AUTHOR_WARNING
"VA API header does not exist! Setting LIBVA_HEADERS_INCLUDE_DIR to internal directory: ${LIBVA_HEADERS_INCLUDE_DIR}"
)
)
set(LIBVA_HEADERS_INCLUDE_DIR
"${LIBVA_HEADERS_INCLUDE_DIR_INTERNAL}"
CACHE PATH "Path to VA API headers" FORCE)
CACHE PATH
"Path to VA API headers"
FORCE
)
else()
rocprofiler_systems_message(STATUS
"VA API header found: ${LIBVA_HEADERS_INCLUDE_DIR}")
"VA API header found: ${LIBVA_HEADERS_INCLUDE_DIR}"
)
endif()
mark_as_advanced(LIBVA_HEADERS_INCLUDE_DIR)
@@ -39,8 +46,11 @@ find_package_handle_standard_args(Libva-headers DEFAULT_MSG LIBVA_HEADERS_INCLUD
if(Libva-headers_FOUND)
add_library(roc::libva-headers INTERFACE IMPORTED)
target_include_directories(roc::libva-headers SYSTEM
INTERFACE ${LIBVA_HEADERS_INCLUDE_DIR})
target_include_directories(
roc::libva-headers
SYSTEM
INTERFACE ${LIBVA_HEADERS_INCLUDE_DIR}
)
endif()
# ------------------------------------------------------------------------------#
+64 -31
View File
@@ -8,19 +8,29 @@ include(FindPackageHandleStandardArgs)
set(MPI_HEADERS_VENDOR_INTERNAL
"OpenMPI"
CACHE STRING "Distribution type of internal mpi.h")
CACHE STRING
"Distribution type of internal mpi.h"
)
set(MPI_HEADERS_INCLUDE_DIR_INTERNAL
"${PROJECT_SOURCE_DIR}/source/lib/rocprof-sys/library/tpls/mpi"
CACHE PATH "Path to internal ${MPI_HEADERS_VENDOR_INTERNAL} mpi.h")
CACHE PATH
"Path to internal ${MPI_HEADERS_VENDOR_INTERNAL} mpi.h"
)
mark_as_advanced(MPI_HEADERS_VENDOR_INTERNAL)
mark_as_advanced(MPI_HEADERS_INCLUDE_DIR_INTERNAL)
if(DEFINED _MPI_HEADERS_LAST_MPI_HEADERS_INCLUDE_DIR
AND NOT _MPI_HEADERS_LAST_MPI_HEADERS_INCLUDE_DIR STREQUAL MPI_HEADERS_INCLUDE_DIR)
if(
DEFINED _MPI_HEADERS_LAST_MPI_HEADERS_INCLUDE_DIR
AND NOT _MPI_HEADERS_LAST_MPI_HEADERS_INCLUDE_DIR STREQUAL MPI_HEADERS_INCLUDE_DIR
)
unset(MPI_HEADERS_VENDOR CACHE)
# if skip mpicxx is on because of internal unset this value
if(MPI_HEADERS_SKIP_MPICXX AND "${_MPI_HEADERS_LAST_MPI_HEADERS_INCLUDE_DIR}"
STREQUAL "${MPI_HEADERS_INCLUDE_DIR_INTERNAL}")
if(
MPI_HEADERS_SKIP_MPICXX
AND "${_MPI_HEADERS_LAST_MPI_HEADERS_INCLUDE_DIR}"
STREQUAL
"${MPI_HEADERS_INCLUDE_DIR_INTERNAL}"
)
unset(MPI_HEADERS_SKIP_MPICXX CACHE)
endif()
endif()
@@ -40,7 +50,8 @@ find_path(
NAMES mpi.h
PATH_SUFFIXES include/openmpi openmpi include
HINTS ${MPI_ROOT_DIR}
PATHS ${MPI_ROOT_DIR})
PATHS ${MPI_ROOT_DIR}
)
# ------------------------------------------------------------------------------#
#
@@ -53,11 +64,17 @@ if(NOT MPI_HEADERS_INCLUDE_DIR)
if(MPI_C_INCLUDE_DIRS)
set(MPI_HEADERS_INCLUDE_DIR
${MPI_C_INCLUDE_DIRS}
CACHE PATH "Include directory for MPI" FORCE)
CACHE PATH
"Include directory for MPI"
FORCE
)
elseif(MPI_CXX_INCLUDE_DIRS)
set(MPI_HEADERS_INCLUDE_DIR
${MPI_CXX_INCLUDE_DIRS}
CACHE PATH "Include directory for MPI" FORCE)
CACHE PATH
"Include directory for MPI"
FORCE
)
endif()
endif()
@@ -73,17 +90,23 @@ if(MPI_HEADERS_INCLUDE_DIR)
if("${_LINE}" MATCHES "define([ \t]+)OMPI_")
set(MPI_HEADERS_VENDOR
"OpenMPI"
CACHE STRING "MPI headers are from OpenMPI distribution")
CACHE STRING
"MPI headers are from OpenMPI distribution"
)
break()
elseif("${_LINE}" MATCHES "define([ \t]+)MPICH_")
set(MPI_HEADERS_VENDOR
"MPICH"
CACHE STRING "MPI headers are from MPICH distribution")
CACHE STRING
"MPI headers are from MPICH distribution"
)
break()
elseif("${_LINE}" MATCHES "define([ \t]+)MVAPICH_")
set(MPI_HEADERS_VENDOR
"MVAPICH"
CACHE STRING "MPI headers are from MVAPICH distribution")
CACHE STRING
"MPI headers are from MVAPICH distribution"
)
break()
endif()
endforeach()
@@ -96,42 +119,47 @@ endif()
# ------------------------------------------------------------------------------#
if(NOT MPI_HEADERS_INCLUDE_DIR)
set(MPI_HEADERS_INCLUDE_DIR
"${MPI_HEADERS_INCLUDE_DIR_INTERNAL}"
CACHE PATH "" FORCE)
set(MPI_HEADERS_INCLUDE_DIR "${MPI_HEADERS_INCLUDE_DIR_INTERNAL}" CACHE PATH "" FORCE)
set(MPI_HEADERS_VENDOR
"${MPI_HEADERS_VENDOR_INTERNAL}"
CACHE STRING "MPI headers are from OpenMPI distribution" FORCE)
set(MPI_HEADERS_SKIP_MPICXX
ON
CACHE BOOL "" FORCE)
CACHE STRING
"MPI headers are from OpenMPI distribution"
FORCE
)
set(MPI_HEADERS_SKIP_MPICXX ON CACHE BOOL "" FORCE)
elseif("${MPI_HEADERS_VENDOR}" STREQUAL "MPICH")
option(
MPI_HEADERS_ALLOW_MPICH
"Permit the use of MPI headers from MPICH instead of using internal OpenMPI header"
OFF)
OFF
)
mark_as_advanced(MPI_HEADERS_ALLOW_MPICH)
if(NOT MPI_HEADERS_ALLOW_MPICH)
set(_MESSAGE "\nFound MPI headers belonging to a MPICH distribution. ")
set(_MESSAGE
"${_MESSAGE}The data types for MPICH will cause segfaults when an application uses OpenMPI, "
)
)
set(_MESSAGE
"${_MESSAGE}whereas the OpenMPI data types are compatible with both. ")
"${_MESSAGE}whereas the OpenMPI data types are compatible with both. "
)
set(_MESSAGE
"${_MESSAGE}Forcing internal OpenMPI header... This can be disabled via MPI_HEADERS_ALLOW_MPICH=ON ...\n"
)
)
message(AUTHOR_WARNING "${_MESSAGE}")
unset(_MESSAGE)
set(MPI_HEADERS_INCLUDE_DIR
"${MPI_HEADERS_INCLUDE_DIR_INTERNAL}"
CACHE PATH "" FORCE)
CACHE PATH
""
FORCE
)
set(MPI_HEADERS_VENDOR
"${MPI_HEADERS_VENDOR_INTERNAL}"
CACHE STRING "MPI headers are from OpenMPI distribution" FORCE)
set(MPI_HEADERS_SKIP_MPICXX
ON
CACHE BOOL "" FORCE)
CACHE STRING
"MPI headers are from OpenMPI distribution"
FORCE
)
set(MPI_HEADERS_SKIP_MPICXX ON CACHE BOOL "" FORCE)
endif()
endif()
@@ -145,7 +173,9 @@ mark_as_advanced(MPI_HEADERS_INCLUDE_DIR)
# store value to detect changes
set(_MPI_HEADERS_LAST_MPI_HEADERS_INCLUDE_DIR
"${MPI_HEADERS_INCLUDE_DIR}"
CACHE INTERNAL "Last value of MPI_HEADERS_INCLUDE_DIR")
CACHE INTERNAL
"Last value of MPI_HEADERS_INCLUDE_DIR"
)
# handle find_package
find_package_handle_standard_args(MPI-Headers REQUIRED_VARS MPI_HEADERS_INCLUDE_DIR)
@@ -160,6 +190,9 @@ if(MPI-Headers_FOUND)
endif()
endif()
target_include_directories(
MPI::MPI_HEADERS INTERFACE $<$<COMPILE_LANGUAGE:C>:${MPI_HEADERS_INCLUDE_DIR}>
$<$<COMPILE_LANGUAGE:CXX>:${MPI_HEADERS_INCLUDE_DIR}>)
MPI::MPI_HEADERS
INTERFACE
$<$<COMPILE_LANGUAGE:C>:${MPI_HEADERS_INCLUDE_DIR}>
$<$<COMPILE_LANGUAGE:CXX>:${MPI_HEADERS_INCLUDE_DIR}>
)
endif()
+115 -45
View File
@@ -42,7 +42,8 @@ set(ROCmVersion_VARIABLES
TRIPLE
NUMERIC
CANONICAL
FULL)
FULL
)
function(ROCM_VERSION_MESSAGE _TYPE)
if(ROCmVersion_DEBUG)
@@ -52,7 +53,6 @@ endfunction()
# read a .info/version* file and propagate the variables to the calling scope
function(ROCM_VERSION_COMPUTE FULL_VERSION_STRING _VAR_PREFIX)
# remove any line endings
string(REGEX REPLACE "(\n|\r)" "" FULL_VERSION_STRING "${FULL_VERSION_STRING}")
@@ -61,8 +61,13 @@ function(ROCM_VERSION_COMPUTE FULL_VERSION_STRING _VAR_PREFIX)
# get number and remove from full version string
string(REGEX REPLACE "([0-9]+)\:(.*)" "\\1" EPOCH_VERSION "${FULL_VERSION_STRING}")
string(REGEX REPLACE "([0-9]+)\:(.*)" "\\2" FULL_VERSION_STRING
"${FULL_VERSION_STRING}")
string(
REGEX REPLACE
"([0-9]+)\:(.*)"
"\\2"
FULL_VERSION_STRING
"${FULL_VERSION_STRING}"
)
if(EPOCH_VERSION STREQUAL FULL_VERSION)
set(EPOCH_VERSION)
@@ -70,18 +75,33 @@ function(ROCM_VERSION_COMPUTE FULL_VERSION_STRING _VAR_PREFIX)
# get number and remove from full version string
string(REGEX REPLACE "([0-9]+)(.*)" "\\1" MAJOR_VERSION "${FULL_VERSION_STRING}")
string(REGEX REPLACE "([0-9]+)(.*)" "\\2" FULL_VERSION_STRING
"${FULL_VERSION_STRING}")
string(
REGEX REPLACE
"([0-9]+)(.*)"
"\\2"
FULL_VERSION_STRING
"${FULL_VERSION_STRING}"
)
# get number and remove from full version string
string(REGEX REPLACE "\.([0-9]+)(.*)" "\\1" MINOR_VERSION "${FULL_VERSION_STRING}")
string(REGEX REPLACE "\.([0-9]+)(.*)" "\\2" FULL_VERSION_STRING
"${FULL_VERSION_STRING}")
string(
REGEX REPLACE
"\.([0-9]+)(.*)"
"\\2"
FULL_VERSION_STRING
"${FULL_VERSION_STRING}"
)
# get number and remove from full version string
string(REGEX REPLACE "\.([0-9]+)(.*)" "\\1" PATCH_VERSION "${FULL_VERSION_STRING}")
string(REGEX REPLACE "\.([0-9]+)(.*)" "\\2" FULL_VERSION_STRING
"${FULL_VERSION_STRING}")
string(
REGEX REPLACE
"\.([0-9]+)(.*)"
"\\2"
FULL_VERSION_STRING
"${FULL_VERSION_STRING}"
)
if(NOT PATCH_VERSION LESS 100)
set(PATCH_VERSION 0)
@@ -89,12 +109,22 @@ function(ROCM_VERSION_COMPUTE FULL_VERSION_STRING _VAR_PREFIX)
# get number and remove from full version string
string(REGEX REPLACE "\.([0-9]+)(.*)" "\\1" TWEAK_VERSION "${FULL_VERSION_STRING}")
string(REGEX REPLACE "\.([0-9]+)(.*)" "\\2" FULL_VERSION_STRING
"${FULL_VERSION_STRING}")
string(
REGEX REPLACE
"\.([0-9]+)(.*)"
"\\2"
FULL_VERSION_STRING
"${FULL_VERSION_STRING}"
)
# get number
string(REGEX REPLACE "-([0-9A-Za-z+~]+)" "\\1" REVISION_VERSION
"${FULL_VERSION_STRING}")
string(
REGEX REPLACE
"-([0-9A-Za-z+~]+)"
"\\1"
REVISION_VERSION
"${FULL_VERSION_STRING}"
)
set(CANONICAL_VERSION)
set(_MAJOR_SEP ":")
@@ -103,7 +133,15 @@ function(ROCM_VERSION_COMPUTE FULL_VERSION_STRING _VAR_PREFIX)
set(_TWEAK_SEP ".")
set(_REVISION_SEP "-")
foreach(_V EPOCH MAJOR MINOR PATCH TWEAK REVISION)
foreach(
_V
EPOCH
MAJOR
MINOR
PATCH
TWEAK
REVISION
)
if(${_V}_VERSION)
set(CANONICAL_VERSION "${CANONICAL_VERSION}${_${_V}_SEP}${${_V}_VERSION}")
else()
@@ -125,13 +163,11 @@ function(ROCM_VERSION_COMPUTE FULL_VERSION_STRING _VAR_PREFIX)
EXPR
NUMERIC_VERSION
"(10000 * (${MAJOR_VERSION}+0)) + (100 * (${MINOR_VERSION}+0)) + (${PATCH_VERSION}+0)"
)
)
# propagate to parent scopes
foreach(_V ${ROCmVersion_VARIABLES})
set(${_VAR_PREFIX}_${_V}_VERSION
${${_V}_VERSION}
PARENT_SCOPE)
set(${_VAR_PREFIX}_${_V}_VERSION ${${_V}_VERSION} PARENT_SCOPE)
endforeach()
endfunction()
@@ -147,18 +183,18 @@ function(ROCM_VERSION_WATCH_FOR_CHANGE _var)
endif()
list(REMOVE_ITEM _REMAIN_VARIABLES ${_var})
set(_REMAIN_VARIABLES
"${_REMAIN_VARIABLES}"
PARENT_SCOPE)
set(_REMAIN_VARIABLES "${_REMAIN_VARIABLES}" PARENT_SCOPE)
return()
else()
rocm_version_message(
STATUS
"${_var} changed :: ${${_rocm_version_watch_var_name}} --> ${${_var}}")
"${_var} changed :: ${${_rocm_version_watch_var_name}} --> ${${_var}}"
)
foreach(_V ${_REMAIN_VARIABLES})
rocm_version_message(
STATUS "${_var} changed :: Unsetting cache variable ${_V}...")
STATUS "${_var} changed :: Unsetting cache variable ${_V}..."
)
unset(${_V} CACHE)
endforeach()
endif()
@@ -171,12 +207,14 @@ function(ROCM_VERSION_WATCH_FOR_CHANGE _var)
# store the value for the next run
set(${_rocm_version_watch_var_name}
"${${_var}}"
CACHE INTERNAL "Last value of ${_var}" FORCE)
CACHE INTERNAL
"Last value of ${_var}"
FORCE
)
endfunction()
# scope this to a function to avoid leaking local variables
function(ROCM_VERSION_PARSE_VERSION_FILES)
# the list of variables set by module. when one of these changes, we need to unset the
# cache variables after it
set(_ALL_VARIABLES)
@@ -193,23 +231,25 @@ function(ROCM_VERSION_PARSE_VERSION_FILES)
# propagate to parent scopes
foreach(_V ${ROCmVersion_VARIABLES})
set(${_VAR_PREFIX}_${_V}_VERSION
${${_VAR_PREFIX}_${_V}_VERSION}
PARENT_SCOPE)
set(${_VAR_PREFIX}_${_V}_VERSION ${${_VAR_PREFIX}_${_V}_VERSION} PARENT_SCOPE)
endforeach()
endfunction()
# search for HIP to set ROCM_PATH if(NOT hip_FOUND) find_package(hip) endif()
function(COMPUTE_ROCM_VERSION_DIR)
if(EXISTS "${ROCmVersion_VERSION_FILE}" AND IS_ABSOLUTE
"${ROCmVersion_VERSION_FILE}")
if(
EXISTS "${ROCmVersion_VERSION_FILE}"
AND IS_ABSOLUTE "${ROCmVersion_VERSION_FILE}"
)
get_filename_component(_VERSION_DIR "${ROCmVersion_VERSION_FILE}" PATH)
get_filename_component(_VERSION_DIR "${_VERSION_DIR}/.." REALPATH)
set(ROCmVersion_DIR
"${_VERSION_DIR}"
CACHE PATH "Root path to ROCm's .info/${ROCmVersion_VERSION_FILE}"
${ARGN})
CACHE PATH
"Root path to ROCm's .info/${ROCmVersion_VERSION_FILE}"
${ARGN}
)
rocm_version_watch_for_change(ROCmVersion_DIR)
endif()
endfunction()
@@ -219,20 +259,36 @@ function(ROCM_VERSION_PARSE_VERSION_FILES)
set(_VERSION_FILES ${_VERSION_FILE})
compute_rocm_version_dir(FORCE)
else()
set(_VERSION_FILES version version-dev version-hip-libraries version-hiprt
version-hiprt-devel version-hip-sdk version-libs version-utils)
set(_VERSION_FILES
version
version-dev
version-hip-libraries
version-hiprt
version-hiprt-devel
version-hip-sdk
version-libs
version-utils
)
rocm_version_message(STATUS "ROCmVersion version files: ${_VERSION_FILES}")
endif()
# convert env to cache if not defined
foreach(_PATH ROCmVersion_DIR ROCmVersion_ROOT ROCmVersion_ROOT_DIR
ROCPROFSYS_DEFAULT_ROCM_PATH ROCM_PATH)
foreach(
_PATH
ROCmVersion_DIR
ROCmVersion_ROOT
ROCmVersion_ROOT_DIR
ROCPROFSYS_DEFAULT_ROCM_PATH
ROCM_PATH
)
if(NOT DEFINED ${_PATH} AND DEFINED ENV{${_PATH}})
set(_VAL "$ENV{${_PATH}}")
get_filename_component(_VAL "${_VAL}" REALPATH)
set(${_PATH}
"${_VAL}"
CACHE PATH "Search path for ROCm version for ROCmVersion")
CACHE PATH
"Search path for ROCm version for ROCmVersion"
)
endif()
endforeach()
@@ -242,9 +298,15 @@ function(ROCM_VERSION_PARSE_VERSION_FILES)
set(_PATHS)
foreach(
_DIR
${ROCmVersion_DIR} ${ROCmVersion_ROOT} ${ROCmVersion_ROOT_DIR}
$ENV{CMAKE_PREFIX_PATH} ${CMAKE_PREFIX_PATH} ${ROCPROFSYS_DEFAULT_ROCM_PATH}
${ROCM_PATH} /opt/rocm)
${ROCmVersion_DIR}
${ROCmVersion_ROOT}
${ROCmVersion_ROOT_DIR}
$ENV{CMAKE_PREFIX_PATH}
${CMAKE_PREFIX_PATH}
${ROCPROFSYS_DEFAULT_ROCM_PATH}
${ROCM_PATH}
/opt/rocm
)
if(EXISTS ${_DIR})
get_filename_component(_ABS_DIR "${_DIR}" REALPATH)
list(APPEND _PATHS ${_ABS_DIR})
@@ -261,7 +323,9 @@ function(ROCM_VERSION_PARSE_VERSION_FILES)
if(EXISTS ${_F})
set(ROCmVersion_VERSION_FILE
"${_F}"
CACHE FILEPATH "File with versioning info")
CACHE FILEPATH
"File with versioning info"
)
rocm_version_watch_for_change(ROCmVersion_VERSION_FILE)
compute_rocm_version_dir()
else()
@@ -283,7 +347,9 @@ function(ROCM_VERSION_PARSE_VERSION_FILES)
set(_LOCAL_VAR ${_B}_${_V}_VERSION)
set(ROCmVersion_${_V}_VERSION
"${${_LOCAL_VAR}}"
CACHE STRING "ROCm ${_V} version")
CACHE STRING
"ROCm ${_V} version"
)
rocm_version_watch_for_change(${_CACHE_VAR})
endforeach()
endif()
@@ -296,7 +362,11 @@ include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
ROCmVersion
VERSION_VAR ROCmVersion_FULL_VERSION
REQUIRED_VARS ROCmVersion_FULL_VERSION ROCmVersion_TRIPLE_VERSION ROCmVersion_DIR
ROCmVersion_VERSION_FILE)
REQUIRED_VARS
ROCmVersion_FULL_VERSION
ROCmVersion_TRIPLE_VERSION
ROCmVersion_DIR
ROCmVersion_VERSION_FILE
)
# don't add major/minor/patch/etc. version variables to required vars because they might
# be zero, which will cause CMake to evaluate it as not set
+52 -23
View File
@@ -81,8 +81,10 @@ set(TBB_SEARCH_DIR ${TBB_ROOT_DIR} $ENV{TBB_INSTALL_DIR} $ENV{TBBROOT})
# Define the search directories based on the current platform
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(TBB_DEFAULT_SEARCH_DIR "C:/Program Files/Intel/TBB"
"C:/Program Files (x86)/Intel/TBB")
set(TBB_DEFAULT_SEARCH_DIR
"C:/Program Files/Intel/TBB"
"C:/Program Files (x86)/Intel/TBB"
)
# Set the target architecture
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
@@ -106,7 +108,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
# Add the library path search suffix for the VC independent version of TBB
list(APPEND TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc_mt")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
# OS X
set(TBB_DEFAULT_SEARCH_DIR "/opt/intel/tbb")
@@ -136,18 +137,22 @@ endif()
# Find the TBB include dir
#
find_path(
TBB_INCLUDE_DIRS tbb/tbb.h
TBB_INCLUDE_DIRS
tbb/tbb.h
HINTS ${TBB_INCLUDE_DIRS} ${TBB_SEARCH_DIR}
PATHS ${TBB_DEFAULT_SEARCH_DIR}
PATH_SUFFIXES include)
PATH_SUFFIXES include
)
#
# Set version strings
#
if(TBB_INCLUDE_DIRS)
# Starting in 2020.1.1, tbb_stddef.h is replaced by version.h
set(_version_files "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h"
"${TBB_INCLUDE_DIRS}/tbb/version.h")
set(_version_files
"${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h"
"${TBB_INCLUDE_DIRS}/tbb/version.h"
)
foreach(f IN ITEMS ${_version_files})
if(EXISTS ${f})
set(_version_file ${f})
@@ -156,20 +161,38 @@ if(TBB_INCLUDE_DIRS)
unset(_version_files)
file(READ ${_version_file} _tbb_version_file)
string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" TBB_VERSION_MAJOR
"${_tbb_version_file}")
string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" TBB_VERSION_MINOR
"${_tbb_version_file}")
string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1"
TBB_INTERFACE_VERSION "${_tbb_version_file}")
string(
REGEX REPLACE
".*#define TBB_VERSION_MAJOR ([0-9]+).*"
"\\1"
TBB_VERSION_MAJOR
"${_tbb_version_file}"
)
string(
REGEX REPLACE
".*#define TBB_VERSION_MINOR ([0-9]+).*"
"\\1"
TBB_VERSION_MINOR
"${_tbb_version_file}"
)
string(
REGEX REPLACE
".*#define TBB_INTERFACE_VERSION ([0-9]+).*"
"\\1"
TBB_INTERFACE_VERSION
"${_tbb_version_file}"
)
# The TBB_VERSION_MINOR isn't necessarily changed for minor releases Hence, we need to
# read the engineering versioning in TBB_INTERFACE_VERSION to get the minor version
# correct
if("${TBB_VERSION_MINOR}" STREQUAL "0")
math(EXPR _tbb_iface_major_ver "${TBB_INTERFACE_VERSION} / 100")
math(EXPR TBB_VERSION_MINOR
"${TBB_INTERFACE_VERSION} - ${_tbb_iface_major_ver} * 100")
math(
EXPR
TBB_VERSION_MINOR
"${TBB_INTERFACE_VERSION} - ${_tbb_iface_major_ver} * 100"
)
endif()
set(TBB_VERSION "${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR}")
endif()
@@ -190,19 +213,24 @@ foreach(_comp ${TBB_SEARCH_COMPOMPONENTS})
# message(STATUS "Searching for ${_comp}...") message(STATUS "Hints: ${TBB_LIBRARY}
# ${TBB_SEARCH_DIR}")
if(";${TBB_FIND_COMPONENTS};tbb;" MATCHES ";${_comp};")
# Search for the libraries
find_library(
TBB_${_comp}_LIBRARY_RELEASE ${_comp}
TBB_${_comp}_LIBRARY_RELEASE
${_comp}
HINTS ${TBB_LIBRARY} ${TBB_SEARCH_DIR}
PATHS ${TBB_DEFAULT_SEARCH_DIR} ENV LIBRARY_PATH
PATH_SUFFIXES ${TBB_LIB_PATH_SUFFIX} lib_release)
PATHS ${TBB_DEFAULT_SEARCH_DIR}
ENV LIBRARY_PATH
PATH_SUFFIXES ${TBB_LIB_PATH_SUFFIX} lib_release
)
find_library(
TBB_${_comp}_LIBRARY_DEBUG ${_comp}_debug
TBB_${_comp}_LIBRARY_DEBUG
${_comp}_debug
HINTS ${TBB_LIBRARY} ${TBB_SEARCH_DIR}
PATHS ${TBB_DEFAULT_SEARCH_DIR} ENV LIBRARY_PATH
PATH_SUFFIXES ${TBB_LIB_PATH_SUFFIX} lib_debug)
PATHS ${TBB_DEFAULT_SEARCH_DIR}
ENV LIBRARY_PATH
PATH_SUFFIXES ${TBB_LIB_PATH_SUFFIX} lib_debug
)
if(TBB_${_comp}_LIBRARY_DEBUG)
list(APPEND TBB_LIBRARIES_DEBUG "${TBB_${_comp}_LIBRARY_DEBUG}")
@@ -258,7 +286,8 @@ find_package_handle_standard_args(
TBB
REQUIRED_VARS TBB_INCLUDE_DIRS TBB_LIBRARIES
HANDLE_COMPONENTS
VERSION_VAR TBB_VERSION)
VERSION_VAR TBB_VERSION
)
mark_as_advanced(TBB_INCLUDE_DIRS TBB_LIBRARIES TBB_LIBRARY_DIRS)
+13 -6
View File
@@ -23,7 +23,8 @@ find_path(
NAMES include/amd_smi/amdsmi.h
HINTS ${_AMD_SMI_PATHS}
PATHS ${_AMD_SMI_PATHS}
PATH_SUFFIXES amd_smi)
PATH_SUFFIXES amd_smi
)
mark_as_advanced(amd-smi_ROOT_DIR)
@@ -34,7 +35,8 @@ find_path(
NAMES amd_smi/amdsmi.h
HINTS ${amd-smi_ROOT_DIR} ${_AMD_SMI_PATHS}
PATHS ${amd-smi_ROOT_DIR} ${_AMD_SMI_PATHS}
PATH_SUFFIXES include amd_smi/include)
PATH_SUFFIXES include amd_smi/include
)
mark_as_advanced(amd-smi_INCLUDE_DIR)
@@ -45,7 +47,8 @@ find_library(
NAMES amd_smi
HINTS ${amd-smi_ROOT_DIR} ${_AMD_SMI_PATHS}
PATHS ${amd-smi_ROOT_DIR} ${_AMD_SMI_PATHS}
PATH_SUFFIXES amd-smi/lib lib)
PATH_SUFFIXES amd-smi/lib lib
)
if(amd-smi_LIBRARY)
get_filename_component(amd-smi_LIBRARY_DIR "${amd-smi_LIBRARY}" PATH CACHE)
@@ -55,8 +58,13 @@ mark_as_advanced(amd-smi_LIBRARY)
# ----------------------------------------------------------------------------------------#
find_package_handle_standard_args(amd-smi DEFAULT_MSG amd-smi_ROOT_DIR
amd-smi_INCLUDE_DIR amd-smi_LIBRARY)
find_package_handle_standard_args(
amd-smi
DEFAULT_MSG
amd-smi_ROOT_DIR
amd-smi_INCLUDE_DIR
amd-smi_LIBRARY
)
# ------------------------------------------------------------------------------#
@@ -69,7 +77,6 @@ if(amd-smi_FOUND)
target_include_directories(amd-smi::amd-smi INTERFACE ${amd-smi_INCLUDE_DIR})
target_link_libraries(amd-smi::amd-smi INTERFACE ${amd-smi_LIBRARY})
endif()
# ------------------------------------------------------------------------------#