CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
121 lines
4.1 KiB
CMake
121 lines
4.1 KiB
CMake
#
|
|
# Minimum version of cmake required
|
|
#
|
|
|
|
message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
|
message(" CMake OAM (Library) ")
|
|
message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
|
|
|
## Verbose output.
|
|
set(CMAKE_VERBOSE_MAKEFILE on)
|
|
|
|
# Required Defines first:
|
|
|
|
message("")
|
|
message("Build Configuration:")
|
|
# message("-----------BuildType: " ${CMAKE_BUILD_TYPE})
|
|
# message("------------Compiler: " ${CMAKE_CXX_COMPILER})
|
|
# message("-------------Version: " ${CMAKE_CXX_COMPILER_VERSION})
|
|
message("--------Proj Src Dir: " ${PROJECT_SOURCE_DIR})
|
|
# message("--------Proj Bld Dir: " ${PROJECT_BINARY_DIR})
|
|
# message("--------Proj Lib Dir: " ${PROJECT_BINARY_DIR}/lib)
|
|
# message("--------Proj Exe Dir: " ${PROJECT_BINARY_DIR}/bin)
|
|
# message("--------RSMI Lib Dir: " ${RSMI_LIB_DIR})
|
|
# message("--------RSMI Inc Dir: " ${OAM_INC_DIR})
|
|
# message("")
|
|
|
|
set(OAM_ROOT "${PROJECT_SOURCE_DIR}/oam")
|
|
set(OAM_NAME "oam")
|
|
set(OAM_COMPONENT "lib${OAM_NAME}")
|
|
set(OAM_TARGET "${OAM_NAME}")
|
|
|
|
################# Determine the library version #########################
|
|
set(SO_VERSION_GIT_TAG_PREFIX "oam_so_ver")
|
|
|
|
# VERSION_* variables should be set by get_version_from_tag
|
|
message("Package version: ${PKG_VERSION_STR}")
|
|
|
|
# Debian package specific variables
|
|
# Set a default value for the package version
|
|
get_version_from_tag("1.0.0.0" ${SO_VERSION_GIT_TAG_PREFIX} GIT)
|
|
|
|
# VERSION_* variables should be set by get_version_from_tag
|
|
if(${ROCM_PATCH_VERSION})
|
|
set(VERSION_PATCH ${ROCM_PATCH_VERSION})
|
|
set(SO_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
|
else()
|
|
set(SO_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}")
|
|
endif()
|
|
set(${OAM_NAME}_VERSION_MAJOR "${VERSION_MAJOR}")
|
|
set(${OAM_NAME}_VERSION_MINOR "${VERSION_MINOR}")
|
|
set(${OAM_NAME}_VERSION_PATCH "0")
|
|
set(${OAM_NAME}_VERSION_BUILD "0")
|
|
message("SOVERSION: ${SO_VERSION_STRING}")
|
|
|
|
# Create a configure file to get version info from within library
|
|
configure_file(
|
|
"${OAM_ROOT}/src/${OAM_TARGET}Config.in"
|
|
"${OAM_ROOT}/include/oam/${OAM_TARGET}Config.h"
|
|
)
|
|
|
|
set(OAM_SRC_DIR "src")
|
|
set(OAM_INC_DIR "include")
|
|
set(OAM_DOCS_DIR "docs")
|
|
|
|
set(OAM_SRC_LIST ${CMN_SRC_LIST} "${OAM_SRC_DIR}/amd_oam.cc")
|
|
|
|
set(OAM_INC_LIST ${COMMON_INC_DIR} "${OAM_INC_DIR}")
|
|
set(OAM_EXAMPLE_EXE "oam_ex")
|
|
|
|
add_executable(${OAM_EXAMPLE_EXE} "example/oam_example.c")
|
|
target_include_directories(${OAM_EXAMPLE_EXE} PRIVATE ${OAM_INC_LIST})
|
|
target_link_libraries(${OAM_EXAMPLE_EXE} ${OAM_TARGET})
|
|
add_library(${OAM_TARGET} ${CMN_SRC_LIST} ${OAM_SRC_LIST} ${CMN_INC_LIST} ${OAM_INC_LIST})
|
|
target_link_libraries(${OAM_TARGET} PRIVATE pthread rt dl)
|
|
target_include_directories(
|
|
${OAM_TARGET}
|
|
PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${COMMON_PROJ_ROOT}/common/shared_mutex
|
|
${DRM_INCLUDE_DIRS}
|
|
${DRM_AMDGPU_INCLUDE_DIRS}
|
|
)
|
|
|
|
## Set the VERSION and SOVERSION values
|
|
set_property(TARGET ${OAM_TARGET} PROPERTY SOVERSION "${VERSION_MAJOR}")
|
|
set_property(TARGET ${OAM_TARGET} PROPERTY VERSION "${SO_VERSION_STRING}")
|
|
|
|
target_include_directories(
|
|
${OAM_TARGET}
|
|
PUBLIC
|
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
|
"$<INSTALL_INTERFACE:${OAM_NAME}/include>"
|
|
)
|
|
|
|
## Add the install directives for the runtime library.
|
|
install(
|
|
TARGETS ${OAM_TARGET}
|
|
EXPORT rocm_smiTargets
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dev
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dev
|
|
)
|
|
install(TARGETS ${OAM_TARGET} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT asan)
|
|
|
|
install(
|
|
FILES ${COMMON_SRC_ROOT}/oam/include/oam/oam_mapi.h ${COMMON_SRC_ROOT}/oam/include/oam/amd_oam.h
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/oam
|
|
COMPONENT dev
|
|
)
|
|
|
|
# Generate Doxygen documentation
|
|
if(DOXYGEN_FOUND)
|
|
configure_file(${OAM_DOCS_DIR}/docs/rsmi_doxygen.cfg ${OAM_DOCS_DIR}/Doxyfile @ONLY)
|
|
add_custom_target(
|
|
doc
|
|
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
COMMENT "Generating AMD OAM API documentation with Doxygen"
|
|
VERBATIM
|
|
)
|
|
endif(DOXYGEN_FOUND)
|