SWDEV-335990 - Use GNUInstallDirs
GNUInstallDirs is used to allow the user to customize the install paths of HIP, rather than using hardcoded locations. See documentation for more information: https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html Note that libdir must be overriden to "lib" before including GNUInstallDirs, because by default, cmake tries to detect the libdir path, but ROCm packaging would like to use lib by default for all targets. This does not stop the user (or distros) from overriding. Also note this change does no take into account the changes needed to non-cmake files, such as perl scripts, so not all paths combinations are necessarily functional. Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com> Change-Id: Iae80f47c47ea0a74fc1c221b6eea82b557601394
This commit is contained in:
+18
-13
@@ -20,6 +20,11 @@
|
||||
cmake_minimum_required(VERSION 3.16.8)
|
||||
project(hip)
|
||||
|
||||
# Set default libdir to be "lib" for ROCm, distros will override this anyway:
|
||||
set(CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "Library install directory")
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# sample command for hip-rocclr runtime, you'll need to have rocclr built
|
||||
# ROCM_PATH is the path where ROCM is installed
|
||||
# For shared lib of hip-rocclr runtime
|
||||
@@ -39,7 +44,7 @@ list(APPEND CMAKE_MODULE_PATH ${HIP_COMMON_DIR}/cmake)
|
||||
|
||||
# required to add the right link to libhsa-runtime in install/lib path
|
||||
# CMAKE_PREFIX_PATH is used as rpath to search for libs outside HIP
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_PREFIX_PATH}/lib")
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
||||
#############################
|
||||
@@ -308,9 +313,9 @@ endif (NOT CPACK_SET_DESTDIR)
|
||||
#############################
|
||||
# Build steps
|
||||
#############################
|
||||
set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin)
|
||||
set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)
|
||||
set(BIN_INSTALL_DIR ${CMAKE_INSTALL_FULL_BINDIR})
|
||||
set(LIB_INSTALL_DIR ${CMAKE_INSTALL_FULL_LIBDIR})
|
||||
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_FULL_INCLUDEDIR})
|
||||
set(CONFIG_PACKAGE_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/hip)
|
||||
set(CONFIG_LANG_PACKAGE_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/hip-lang)
|
||||
|
||||
@@ -358,10 +363,10 @@ endif()
|
||||
#############################
|
||||
|
||||
# Install .hipInfo
|
||||
install(FILES ${PROJECT_BINARY_DIR}/.hipInfo DESTINATION lib)
|
||||
install(FILES ${PROJECT_BINARY_DIR}/.hipInfo DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
# Install .hipVersion
|
||||
install(FILES ${PROJECT_BINARY_DIR}/.hipVersion DESTINATION bin)
|
||||
install(FILES ${PROJECT_BINARY_DIR}/.hipVersion DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
# Install src, bin, include & cmake if necessary
|
||||
execute_process(COMMAND test ${CMAKE_INSTALL_PREFIX} -ef ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
@@ -370,7 +375,7 @@ if(NOT ${INSTALL_SOURCE} EQUAL 0)
|
||||
if(WIN32)
|
||||
install(DIRECTORY ${HIP_COMMON_BIN_DIR} DESTINATION . USE_SOURCE_PERMISSIONS)
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/src/" DESTINATION bin
|
||||
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/src/" DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
FILES_MATCHING PATTERN "*.pdb"
|
||||
PATTERN "*.ilk"
|
||||
PATTERN "CMakeFiles" EXCLUDE
|
||||
@@ -390,12 +395,12 @@ if(NOT ${INSTALL_SOURCE} EQUAL 0)
|
||||
|
||||
if(WIN32) #not required for flat folder structure
|
||||
# The following two lines will be removed after upstream updation
|
||||
install(CODE "MESSAGE(\"Removing ${CMAKE_INSTALL_PREFIX}/include\")")
|
||||
install(CODE "file(REMOVE_RECURSE ${CMAKE_INSTALL_PREFIX}/include)")
|
||||
install(CODE "MESSAGE(\"Removing ${CMAKE_INSTALL_FULL_INCLUDEDIR}\")")
|
||||
install(CODE "file(REMOVE_RECURSE ${CMAKE_INSTALL_FULL_INCLUDEDIR})")
|
||||
endif()
|
||||
|
||||
install(DIRECTORY include DESTINATION .)
|
||||
install(DIRECTORY ${HIP_COMMON_INCLUDE_DIR}/hip/ DESTINATION include/hip/)
|
||||
install(DIRECTORY ${HIP_COMMON_INCLUDE_DIR}/hip/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hip/)
|
||||
if(WIN32)
|
||||
install(DIRECTORY ${HIP_COMMON_DIR}/cmake DESTINATION .)
|
||||
else()
|
||||
@@ -407,11 +412,11 @@ endif()
|
||||
# FIXME: Associate with individual targets.
|
||||
if(HIP_PLATFORM STREQUAL "amd")
|
||||
install(FILES ${PROJECT_BINARY_DIR}/include/hip/amd_detail/hip_prof_str.h
|
||||
DESTINATION include/hip/amd_detail)
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hip/amd_detail)
|
||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin DESTINATION . USE_SOURCE_PERMISSIONS)
|
||||
endif()
|
||||
install(FILES ${PROJECT_BINARY_DIR}/include/hip/hip_version.h
|
||||
DESTINATION include/hip)
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/hip)
|
||||
|
||||
if (NOT ${HIPCC_BIN_DIR} STREQUAL "")
|
||||
file(TO_CMAKE_PATH "${HIPCC_BIN_DIR}" HIPCC_BIN_DIR)
|
||||
@@ -502,7 +507,7 @@ endif()
|
||||
# Target: clang
|
||||
if(HIP_HIPCC_EXECUTABLE)
|
||||
add_custom_target(analyze
|
||||
COMMAND ${HIP_HIPCC_EXECUTABLE} -fvisibility=hidden -fvisibility-inlines-hidden --analyze --analyzer-outputtext -isystem ${ROCM_PATH}/include -Wno-unused-command-line-argument -I${ROCM_PATH}/include -c src/*.cpp -Iinclude/ -I./
|
||||
COMMAND ${HIP_HIPCC_EXECUTABLE} -fvisibility=hidden -fvisibility-inlines-hidden --analyze --analyzer-outputtext -isystem ${ROCM_PATH}/${CMAKE_INSTALL_INCLUDEDIR} -Wno-unused-command-line-argument -I${ROCM_PATH}/${CMAKE_INSTALL_INCLUDEDIR} -c src/*.cpp -Iinclude/ -I./
|
||||
WORKING_DIRECTORY ${HIP_SRC_PATH})
|
||||
if(CPPCHECK_EXE)
|
||||
add_dependencies(analyze cppcheck)
|
||||
|
||||
@@ -201,7 +201,7 @@ if(NOT WIN32)
|
||||
add_dependencies(amdhip64 hiprtc-builtins)
|
||||
INSTALL(TARGETS hiprtc-builtins
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION lib
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
endif()
|
||||
@@ -270,7 +270,7 @@ target_link_libraries(device INTERFACE host)
|
||||
INSTALL(TARGETS amdhip64 host device
|
||||
EXPORT hip-targets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION lib
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
INSTALL(EXPORT hip-targets DESTINATION ${CONFIG_PACKAGE_INSTALL_DIR} NAMESPACE hip::)
|
||||
@@ -278,7 +278,7 @@ INSTALL(EXPORT hip-targets DESTINATION ${CONFIG_PACKAGE_INSTALL_DIR} NAMESPACE h
|
||||
INSTALL(TARGETS amdhip64 host device
|
||||
EXPORT hip-lang-targets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION lib
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
INSTALL(EXPORT hip-lang-targets DESTINATION ${CONFIG_LANG_PACKAGE_INSTALL_DIR} NAMESPACE hip-lang::)
|
||||
|
||||
Reference in New Issue
Block a user