SWDEV-321112 - Use GNUInstallDirs
Use GNUInstallDirs variables to determine the location of LIBDIR, BINDIR, INCLUDEDIR, DOCDIR
Note that CMAKE_INSTALL_LIBDIR is overriden, since the default for RHEL
is lib64, but ROCm packaging wants it to be lib always. Distros or users
can easily override this.
Change-Id: I616152ccd2bc1f5a60bffa940312b38ca6e88c04
[ROCm/rocm_smi_lib commit: b72c464ac0]
Этот коммит содержится в:
@@ -53,6 +53,9 @@ set(ROCM_SMI_PACKAGE rocm-smi-lib)
|
||||
project(${AMD_SMI_LIBS_TARGET})
|
||||
|
||||
set(COMMON_PROJ_ROOT ${PROJECT_SOURCE_DIR})
|
||||
# Set default libdir to be "lib" for ROCm, distros/users can override this
|
||||
set(CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "Library install directory")
|
||||
include(GNUInstallDirs)
|
||||
|
||||
## Verbose output.
|
||||
set(CMAKE_VERBOSE_MAKEFILE on)
|
||||
@@ -149,19 +152,17 @@ option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compat
|
||||
if(FILE_REORG_BACKWARD_COMPATIBILITY)
|
||||
include(rocm_smi-backward-compat.cmake)
|
||||
endif()
|
||||
#TODO: Should use GNUInstallDirs to match distro standards
|
||||
#This need fix in subdirectory CMakefile as well
|
||||
#include(GNUInstallDirs)
|
||||
set(LIB_INSTALL_DIR "lib")
|
||||
set(INCLUDE_INSTALL_DIR "include")
|
||||
set(BIN_INSTALL_DIR "bin")
|
||||
|
||||
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}")
|
||||
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
set(BIN_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
configure_package_config_file(
|
||||
rocm_smi-config.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/rocm_smi-config.cmake
|
||||
INSTALL_DESTINATION ${LIB_INSTALL_DIR}/cmake/rocm_smi
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/rocm_smi
|
||||
PATH_VARS LIB_INSTALL_DIR INCLUDE_INSTALL_DIR BIN_INSTALL_DIR
|
||||
)
|
||||
|
||||
@@ -175,7 +176,7 @@ install(
|
||||
FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/rocm_smi-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/rocm_smi-config-version.cmake
|
||||
DESTINATION
|
||||
lib/cmake/${ROCM_SMI}
|
||||
${CMAKE_INSTALL_LIBDIR}/cmake/${ROCM_SMI}
|
||||
COMPONENT dev
|
||||
)
|
||||
|
||||
@@ -190,11 +191,11 @@ export(PACKAGE rocm_smi)
|
||||
# Create the rocm_smiConfig.cmake and rocm_smiConfigVersion files
|
||||
# ... for the build tree
|
||||
install(EXPORT rocm_smiTargets DESTINATION
|
||||
"lib/cmake/${ROCM_SMI}" COMPONENT dev)
|
||||
"${CMAKE_INSTALL_LIBDIR}/cmake/${ROCM_SMI}" COMPONENT dev)
|
||||
|
||||
#License file
|
||||
set(CPACK_RPM_PACKAGE_LICENSE "NCSA")
|
||||
install( FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION share/doc/${ROCM_SMI} RENAME LICENSE.txt)
|
||||
install( FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${ROCM_SMI} RENAME LICENSE.txt)
|
||||
|
||||
###########################
|
||||
# Packaging directives
|
||||
|
||||
@@ -5,7 +5,7 @@ set -e
|
||||
do_ldconfig() {
|
||||
# left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build
|
||||
if [ "@ENABLE_LDCONFIG@" == "ON" ]; then
|
||||
echo @CPACK_PACKAGING_INSTALL_PREFIX@/lib > /etc/ld.so.conf.d/x86_64-librocm_smi_lib.conf
|
||||
echo @CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ > /etc/ld.so.conf.d/x86_64-librocm_smi_lib.conf
|
||||
ldconfig
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ rm_ldconfig() {
|
||||
|
||||
rm_pyc() {
|
||||
# remove pyc file generated by python
|
||||
rm -rf @CPACK_PACKAGING_INSTALL_PREFIX@/libexec/rocm_smi/__pycache__
|
||||
rm -rf @CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/rocm_smi/__pycache__
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build
|
||||
if [ "@ENABLE_LDCONFIG@" == "ON" ]; then
|
||||
echo -e "@CPACK_PACKAGING_INSTALL_PREFIX@/lib\n@CPACK_PACKAGING_INSTALL_PREFIX@/lib64" > /etc/ld.so.conf.d/x86_64-librocm_smi_lib.conf
|
||||
echo -e "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@" > /etc/ld.so.conf.d/x86_64-librocm_smi_lib.conf
|
||||
ldconfig
|
||||
fi
|
||||
|
||||
@@ -6,4 +6,4 @@ if [ $1 -le 1 ] && [ "@ENABLE_LDCONFIG@" == "ON" ]; then
|
||||
fi
|
||||
|
||||
# remove pyc file generated by python
|
||||
rm -rf @CPACK_PACKAGING_INSTALL_PREFIX@/libexec/rocm_smi/__pycache__
|
||||
rm -rf @CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/rocm_smi/__pycache__
|
||||
|
||||
@@ -101,12 +101,12 @@ target_include_directories(${OAM_TARGET}
|
||||
## Add the install directives for the runtime library.
|
||||
install(TARGETS ${OAM_TARGET}
|
||||
EXPORT rocm_smiTargets
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT ${OAM_COMPONENT})
|
||||
install(FILES ${COMMON_SRC_ROOT}/oam/include/oam/oam_mapi.h
|
||||
${COMMON_SRC_ROOT}/oam/include/oam/amd_oam.h
|
||||
DESTINATION include/oam)
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/oam)
|
||||
|
||||
# Generate Doxygen documentation
|
||||
if (DOXYGEN_FOUND)
|
||||
|
||||
@@ -72,7 +72,7 @@ function(generate_wrapper_header)
|
||||
set(include_guard "${include_guard}COMGR_WRAPPER_INCLUDE_${INC_GAURD_NAME}_H")
|
||||
#set #include statement
|
||||
get_filename_component(file_name ${header_file} NAME)
|
||||
set(include_statements "${include_statements}#include \"../../../include/${ROCM_SMI}/${file_name}\"\n")
|
||||
set(include_statements "${include_statements}#include \"../../../${CMAKE_INSTALL_INCLUDEDIR}/${ROCM_SMI}/${file_name}\"\n")
|
||||
configure_file(${RSMI_WRAPPER_DIR}/header.hpp.in ${RSMI_WRAPPER_INC_DIR}/${file_name})
|
||||
unset(include_guard)
|
||||
unset(include_statements)
|
||||
@@ -90,7 +90,7 @@ function(generate_wrapper_header)
|
||||
set(include_guard "${include_guard}COMGR_WRAPPER_INCLUDE_${INC_GAURD_NAME}_H")
|
||||
#set #include statement
|
||||
get_filename_component(file_name ${header_file} NAME)
|
||||
set(include_statements "${include_statements}#include \"../../../include/${OAM_TARGET_NAME}/${file_name}\"\n")
|
||||
set(include_statements "${include_statements}#include \"../../../${CMAKE_INSTALL_INCLUDEDIR}/${OAM_TARGET_NAME}/${file_name}\"\n")
|
||||
configure_file(${RSMI_WRAPPER_DIR}/header.hpp.in ${OAM_WRAPPER_INC_DIR}/${file_name})
|
||||
unset(include_guard)
|
||||
unset(include_statements)
|
||||
@@ -127,7 +127,7 @@ function(create_library_symlink)
|
||||
add_custom_target(link_${file_name} ALL
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||
../../lib/${file_name} ${RSMI_WRAPPER_LIB_DIR}/${file_name})
|
||||
../../${CMAKE_INSTALL_LIBDIR}/${file_name} ${RSMI_WRAPPER_LIB_DIR}/${file_name})
|
||||
endforeach()
|
||||
|
||||
file(MAKE_DIRECTORY ${OAM_WRAPPER_LIB_DIR})
|
||||
@@ -155,7 +155,7 @@ function(create_library_symlink)
|
||||
add_custom_target(link_${file_name} ALL
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||
../../lib/${file_name} ${OAM_WRAPPER_LIB_DIR}/${file_name})
|
||||
../../${CMAKE_INSTALL_LIBDIR}/${file_name} ${OAM_WRAPPER_LIB_DIR}/${file_name})
|
||||
endforeach()
|
||||
|
||||
endfunction()
|
||||
|
||||
@@ -108,29 +108,29 @@ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||
add_custom_target(link-rocm-smi ALL
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||
../libexec/${ROCM_SMI}/rocm_smi.py ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi)
|
||||
../${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI}/rocm_smi.py ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi)
|
||||
|
||||
## Add the install directives for the runtime library.
|
||||
install(TARGETS ${ROCM_SMI_TARGET}
|
||||
EXPORT rocm_smiTargets
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT ${ROCM_SMI_COMPONENT})
|
||||
|
||||
install(FILES ${COMMON_SRC_ROOT}/include/rocm_smi/rocm_smi.h
|
||||
DESTINATION include/rocm_smi)
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi)
|
||||
install(FILES ${COMMON_SRC_ROOT}/include/rocm_smi/${ROCM_SMI_TARGET}Config.h
|
||||
DESTINATION include/rocm_smi)
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi)
|
||||
install(FILES ${COMMON_SRC_ROOT}/include/rocm_smi/kfd_ioctl.h
|
||||
DESTINATION include/rocm_smi)
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi)
|
||||
install(FILES ${COMMON_SRC_ROOT}/python_smi_tools/rsmiBindings.py
|
||||
DESTINATION libexec/${ROCM_SMI})
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI})
|
||||
install(FILES ${COMMON_SRC_ROOT}/python_smi_tools/rocm_smi.py
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
|
||||
GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||
DESTINATION libexec/${ROCM_SMI})
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI})
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi
|
||||
DESTINATION bin)
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
# Generate Doxygen documentation
|
||||
find_package(Doxygen)
|
||||
@@ -157,9 +157,9 @@ if (DOXYGEN_FOUND AND LATEX_FOUND)
|
||||
|
||||
add_dependencies(${ROCM_SMI_TARGET} docs)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
|
||||
DESTINATION share/doc/${ROCM_SMI} RENAME ${RSMI_MANUAL_NAME}.pdf)
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${ROCM_SMI} RENAME ${RSMI_MANUAL_NAME}.pdf)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../README.md
|
||||
DESTINATION share/doc/${ROCM_SMI}/)
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${ROCM_SMI}/)
|
||||
else()
|
||||
message("Doxygen or Latex is not found. Will not generate documents.")
|
||||
endif(DOXYGEN_FOUND AND LATEX_FOUND)
|
||||
|
||||
Ссылка в новой задаче
Block a user