Update to conform with modern cmake best practices.
Immediate benefit is that this enables cmake native find_package
support including transitive passthrough of link dependencies,
options, and include paths.
It does require a bump to cmake 3.6 to enable proper package file
names.
Change-Id: I3f4e2f2db745c04a7f686111b080098a0d92fbf5
Signed-off-by: Sean Keely <Sean.Keely@amd.com>
[ROCm/ROCR-Runtime commit: 06add334b9]
Этот коммит содержится в:
@@ -79,9 +79,6 @@ if ( DEFINED VERSION_BUILD AND NOT ${VERSION_BUILD} STREQUAL "" )
|
||||
endif ()
|
||||
set ( BUILD_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
|
||||
|
||||
## Verbose output.
|
||||
#set ( CMAKE_VERBOSE_MAKEFILE on )
|
||||
|
||||
## Compiler flags
|
||||
set (HSAKMT_C_FLAGS -fPIC -W -Wall -Wextra -Wno-unused-parameter -Wformat-security -Wswitch-default -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wunreachable-code -std=gnu99 -fvisibility=hidden)
|
||||
if ( CMAKE_COMPILER_IS_GNUCC )
|
||||
@@ -120,12 +117,21 @@ set ( HSAKMT_SRC "src/debug.c"
|
||||
"src/spm.c"
|
||||
"src/version.c")
|
||||
|
||||
## Include paths
|
||||
include_directories ( ${CMAKE_CURRENT_SOURCE_DIR}/include )
|
||||
include_directories ( ${CMAKE_CURRENT_SOURCE_DIR}/src )
|
||||
## Declare the library target name
|
||||
add_library ( ${HSAKMT_TARGET} "")
|
||||
|
||||
## Add sources
|
||||
target_sources ( ${HSAKMT_TARGET} PRIVATE ${HSAKMT_SRC} )
|
||||
|
||||
## Add headers. The public headers need to point at their location in both build and install
|
||||
## directory layouts. This declaration allows publishing library use data to downstream clients.
|
||||
target_include_directories( ${HSAKMT_TARGET}
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src )
|
||||
|
||||
## Add the library
|
||||
add_library ( ${HSAKMT_TARGET} ${HSAKMT_SRC} )
|
||||
target_compile_options(${HSAKMT_TARGET} PRIVATE ${HSAKMT_C_FLAGS})
|
||||
set_property(TARGET ${HSAKMT_TARGET} PROPERTY LINK_FLAGS ${HSAKMT_LINK_FLAGS})
|
||||
|
||||
@@ -133,51 +139,91 @@ set_property(TARGET ${HSAKMT_TARGET} PROPERTY LINK_FLAGS ${HSAKMT_LINK_FLAGS})
|
||||
set_property ( TARGET ${HSAKMT_TARGET} PROPERTY VERSION "${LIB_VERSION_STRING}" )
|
||||
set_property ( TARGET ${HSAKMT_TARGET} PROPERTY SOVERSION "${LIB_VERSION_MAJOR}" )
|
||||
|
||||
find_package(PkgConfig)
|
||||
#find_package(PkgConfig)
|
||||
target_link_libraries ( ${HSAKMT_TARGET}
|
||||
pthread rt numa
|
||||
PRIVATE pthread rt numa
|
||||
)
|
||||
|
||||
## Define default variable and variables for the optional build target hsakmt-dev
|
||||
set ( SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE STRING "Location of hsakmt source code." )
|
||||
set ( CMAKE_INSTALL_PREFIX "/opt/rocm" CACHE STRING "Default installation directory." )
|
||||
## Define default paths and packages.
|
||||
if( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT )
|
||||
set ( CMAKE_INSTALL_PREFIX "/opt/rocm" )
|
||||
endif()
|
||||
set ( CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE STRING "Default installation directory." FORCE )
|
||||
set ( CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE STRING "Default packaging prefix." )
|
||||
set ( CPACK_GENERATOR "DEB;RPM" CACHE STRING "Default packaging generators." )
|
||||
|
||||
## Specify build, install and package targets hsakmt-dev
|
||||
set ( DEV_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/hsakmt-roct-dev )
|
||||
configure_file ( hsakmt-dev.txt ${DEV_BUILD_DIR}/CMakeLists.txt @ONLY )
|
||||
add_custom_target ( build-dev
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-DSOURCE_DIR="${SOURCE_DIR}"
|
||||
-DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}"
|
||||
-DCPACK_RPM_PACKAGE_REQUIRES="hsakmt-roct"
|
||||
-DCPACK_PACKAGING_INSTALL_PREFIX="${CPACK_PACKAGING_INSTALL_PREFIX}"
|
||||
-DVERSION="${BUILD_VERSION_STRING}"
|
||||
-DHSAKMT_BIN_NAME="${HSAKMT}"
|
||||
WORKING_DIRECTORY ${DEV_BUILD_DIR} )
|
||||
# Installs binaries and exports the library usage data to ${HSAKMT_TARGET}Targets
|
||||
install ( TARGETS ${HSAKMT_TARGET} EXPORT ${HSAKMT_TARGET}Targets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT binary
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT binary )
|
||||
|
||||
## Custom targets for the devel package
|
||||
add_custom_target ( install-dev DEPENDS build-dev COMMAND make install WORKING_DIRECTORY ${DEV_BUILD_DIR} )
|
||||
add_custom_target ( package-dev DEPENDS build-dev
|
||||
COMMAND rm -rf *.deb *.rpm *.tar.gz
|
||||
COMMAND make package
|
||||
WORKING_DIRECTORY ${DEV_BUILD_DIR} )
|
||||
install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT binary )
|
||||
|
||||
## Add the install directives for the runtime library.
|
||||
install ( TARGETS ${HSAKMT_TARGET} DESTINATION ${CMAKE_INSTALL_LIBDIR} )
|
||||
install ( FILES ${SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR} )
|
||||
# Install public headers
|
||||
install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
COMPONENT devel PATTERN "linux" EXCLUDE )
|
||||
|
||||
# Record our usage data for clients find_package calls.
|
||||
install ( EXPORT ${HSAKMT_TARGET}Targets
|
||||
FILE ${HSAKMT_TARGET}Targets.cmake
|
||||
NAMESPACE ${HSAKMT_TARGET}::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${HSAKMT_TARGET}
|
||||
COMPONENT devel)
|
||||
|
||||
# Adds the target alias hsakmt::hsakmt to the local cmake cache.
|
||||
# This isn't necessary today. It's harmless preparation for some
|
||||
# hypothetical future in which the we might be included by add_subdirectory()
|
||||
# in some other project's cmake file. It allows uniform use of find_package
|
||||
# and target_link_library() without regard to whether a target is external or
|
||||
# a subdirectory of the current build.
|
||||
add_library( ${HSAKMT_TARGET}::${HSAKMT_TARGET} ALIAS ${HSAKMT_TARGET} )
|
||||
|
||||
# Create cmake configuration files
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
configure_package_config_file(${HSAKMT_TARGET}-config.cmake.in
|
||||
${HSAKMT_TARGET}-config.cmake
|
||||
INSTALL_DESTINATION
|
||||
${CMAKE_INSTALL_LIBDIR}/cmake/${HSAKMT_TARGET} )
|
||||
|
||||
write_basic_package_version_file(${HSAKMT_TARGET}-config-version.cmake
|
||||
VERSION ${BUILD_VERSION_STRING}
|
||||
COMPATIBILITY
|
||||
AnyNewerVersion)
|
||||
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${HSAKMT_TARGET}-config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${HSAKMT_TARGET}-config-version.cmake
|
||||
DESTINATION
|
||||
${CMAKE_INSTALL_LIBDIR}/cmake/${HSAKMT_TARGET}
|
||||
COMPONENT devel)
|
||||
|
||||
# CPACK_PACKAGING_INSTALL_PREFIX is needed in libhsakmt.pc.in
|
||||
# TODO: Add support for relocatable packages.
|
||||
configure_file ( libhsakmt.pc.in libhsakmt.pc @ONLY )
|
||||
|
||||
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/libhsakmt.pc DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig COMPONENT devel)
|
||||
|
||||
# Use component packaging
|
||||
set ( CPACK_COMPONENTS_GROUPING IGNORE )
|
||||
set ( CPACK_COMPONENTS_ALL binary devel )
|
||||
set ( CPACK_DEB_COMPONENT_INSTALL ON )
|
||||
set ( CPACK_RPM_COMPONENT_INSTALL ON )
|
||||
|
||||
## Add the packaging directives for the runtime library.
|
||||
set ( CPACK_PACKAGE_NAME ${HSAKMT_PACKAGE} )
|
||||
set ( CPACK_PACKAGE_VENDOR "AMD" )
|
||||
set ( CPACK_PACKAGE_VERSION_MAJOR ${BUILD_VERSION_MAJOR} )
|
||||
set ( CPACK_PACKAGE_VERSION_MINOR ${BUILD_VERSION_MINOR} )
|
||||
set ( CPACK_PACKAGE_VERSION_PATCH ${BUILD_VERSION_PATCH} )
|
||||
set ( CPACK_PACKAGE_CONTACT "Advanced Micro Devices Inc." )
|
||||
set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "HSAKMT library for AMD KFD support" )
|
||||
set ( CPACK_RESOURCE_FILE_LICENSE "${SOURCE_DIR}/LICENSE.md" )
|
||||
set ( CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.x86_64" )
|
||||
set ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md" )
|
||||
|
||||
## Component packaging, BINARY
|
||||
set ( CPACK_COMPONENT_BINARY_DESCRIPTION "HSAKMT library for AMD KFD support" )
|
||||
set ( CPACK_DEBIAN_BINARY_PACKAGE_NAME ${HSAKMT_PACKAGE} )
|
||||
set ( CPACK_DEBIAN_BINARY_FILE_NAME "${CPACK_DEBIAN_BINARY_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.x86_64.deb" )
|
||||
set ( CPACK_RPM_BINARY_PACKAGE_NAME ${HSAKMT_PACKAGE} )
|
||||
set ( CPACK_RPM_BINARY_FILE_NAME "${CPACK_RPM_BINARY_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.x86_64.rpm" )
|
||||
|
||||
#checking for OS-version
|
||||
if( EXISTS "/etc/os-release" )
|
||||
@@ -199,21 +245,33 @@ endif()
|
||||
|
||||
# Debian package specific variables
|
||||
set ( CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface" )
|
||||
set ( CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst;${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/prerm" )
|
||||
set ( CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libnuma1, zlib1g, libudev1" )
|
||||
set ( CPACK_DEBIAN_BINARY_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst;${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/prerm" )
|
||||
set ( CPACK_DEBIAN_BINARY_PACKAGE_DEPENDS "libc6, libnuma1, zlib1g, libudev1" )
|
||||
|
||||
# RPM package specific variables
|
||||
if( DISTRO_ID MATCHES "sles" )
|
||||
set ( CPACK_RPM_PACKAGE_REQUIRES "glibc, libnuma-devel, libgcc_s1")
|
||||
set ( CPACK_RPM_BINARY_PACKAGE_REQUIRES "glibc, libnuma-devel, libgcc_s1")
|
||||
elseif( DISTRO_ID MATCHES "centos" AND DISTRO_RELEASE MATCHES "6" )
|
||||
set ( CPACK_RPM_PACKAGE_REQUIRES "glibc, numactl, libgcc" )
|
||||
set ( CPACK_RPM_BINARY_PACKAGE_REQUIRES "glibc, numactl, libgcc" )
|
||||
else()
|
||||
set ( CPACK_RPM_PACKAGE_REQUIRES "glibc, numactl-libs, libgcc" )
|
||||
set ( CPACK_RPM_BINARY_PACKAGE_REQUIRES "glibc, numactl-libs, libgcc" )
|
||||
endif()
|
||||
set ( CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_post" )
|
||||
set ( CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_postun" )
|
||||
set ( CPACK_RPM_BINARY_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_post" )
|
||||
set ( CPACK_RPM_BINARY_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_postun" )
|
||||
|
||||
# CPACK_PACKAGING_INSTALL_PREFIX is needed in libhsakmt.pc.in
|
||||
configure_file ( libhsakmt.pc.in ${DEV_BUILD_DIR}/libhsakmt.pc @ONLY )
|
||||
## Component packaging, DEVEL
|
||||
set ( CPACK_COMPONENT_DEVEL_DESCRIPTION "HSAKMT development package." )
|
||||
|
||||
# Debian package specific variables
|
||||
set ( CPACK_DEBIAN_DEVEL_PACKAGE_NAME "hsakmt-roct-dev" )
|
||||
set ( CPACK_DEBIAN_DEVEL_FILE_NAME "${CPACK_DEBIAN_DEVEL_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.x86_64.deb" )
|
||||
set ( CPACK_DEBIAN_DEVEL_PACKAGE_DEPENDS "${HSAKMT_PACKAGE} (=${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH})" )
|
||||
|
||||
# RPM package specific variables
|
||||
set ( CPACK_RPM_DEVEL_PACKAGE_NAME "hsakmt-roct-devel" )
|
||||
set ( CPACK_RPM_DEVEL_FILE_NAME "${CPACK_RPM_DEVEL_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.x86_64.rpm" )
|
||||
set ( CPACK_RPM_DEVEL_PACKAGE_DEPENDS "${HSAKMT_PACKAGE} = ${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
|
||||
# Since we changed the package name to match RPM specs, take care of older builds that had -dev installed
|
||||
set ( CPACK_RPM_DEVEL_PACKAGE_OBSOLETES "hsakmt-roct-dev" )
|
||||
|
||||
include ( CPack )
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
set_and_check(HSAKMT_INCLUDE_DIR @PACKAGE_INCLUDE_INSTALL_DIR@)
|
||||
set_and_check(HSAKMT_LIB_DIR @PACKAGE_LIB_INSTALL_DIR@)
|
||||
include( CMakeFindDependencyMacro )
|
||||
|
||||
set(HSAKMT_LIBRARY @PACKAGE_LIB_INSTALL_DIR@/@HSAKMT_LIBRARY_NAME@)
|
||||
set(HSAKMT_LIBRARIES @PACKAGE_LIB_INSTALL_DIR@/@HSAKMT_LIBRARY_NAME@)
|
||||
# Locate dependent packages here. Finding them propagates usage requirements,
|
||||
# if any, to our clients and ensures that their target names are in scope for
|
||||
# the build. hsakmt has no cmake project dependencies so there is nothing to
|
||||
# find. If we switch to use find_package with external (to ROCm) library
|
||||
# dependencies (ie libnuma) then those packages should be located here using
|
||||
# find_dependencies as shown below.
|
||||
#find_dependency(Bar, 2.0)
|
||||
|
||||
mark_as_advanced(HSAKMT_LIBRARY HSAKMT_INCLUDE_DIR)
|
||||
include( "${CMAKE_CURRENT_LIST_DIR}/@HSAKMT_TARGET@Targets.cmake" )
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
################################################################################
|
||||
##
|
||||
## Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
|
||||
##
|
||||
## MIT LICENSE:
|
||||
## Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
## this software and associated documentation files (the "Software"), to deal in
|
||||
## the Software without restriction, including without limitation the rights to
|
||||
## use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
## of the Software, and to permit persons to whom the Software is furnished to do
|
||||
## so, subject to the following conditions:
|
||||
##
|
||||
## The above copyright notice and this permission notice shall be included in all
|
||||
## copies or substantial portions of the Software.
|
||||
##
|
||||
## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
## SOFTWARE.
|
||||
##
|
||||
################################################################################
|
||||
|
||||
cmake_minimum_required ( VERSION 3.5.0 )
|
||||
|
||||
set ( HSAKMT_DEV_PACKAGE "hsakmt-roct-dev" )
|
||||
|
||||
project ( ${HSAKMT_DEV_PACKAGE} )
|
||||
|
||||
include ( GNUInstallDirs )
|
||||
|
||||
## Set the runtime package name.
|
||||
set ( HSAKMT_PACKAGE @HSAKMT_PACKAGE@ )
|
||||
|
||||
## Setup the package version.
|
||||
set ( BUILD_VERSION_MAJOR @BUILD_VERSION_MAJOR@ )
|
||||
set ( BUILD_VERSION_MINOR @BUILD_VERSION_MINOR@ )
|
||||
set ( BUILD_VERSION_PATCH @BUILD_VERSION_PATCH@ )
|
||||
|
||||
## Verbose output.
|
||||
set ( CMAKE_VERBOSE_MAKEFILE on )
|
||||
|
||||
## Set the install targets
|
||||
install ( FILES libhsakmt.pc DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig )
|
||||
install ( DIRECTORY ${SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${HSAKMT_COMPONENT} PATTERN "linux" EXCLUDE )
|
||||
|
||||
|
||||
## Set the default generator types for the devel package.
|
||||
set ( CPACK_GENERATOR "DEB;RPM;TGZ" CACHE STRING "Default packaging generators." )
|
||||
|
||||
## Packaging directives
|
||||
set ( CPACK_DEBIAN_PACKAGE_NAME "hsakmt-roct-dev" )
|
||||
set ( CPACK_RPM_PACKAGE_NAME "hsakmt-roct-devel" )
|
||||
set ( CPACK_PACKAGE_VENDOR "AMD" )
|
||||
set ( CPACK_PACKAGE_VERSION_MAJOR ${BUILD_VERSION_MAJOR} )
|
||||
set ( CPACK_PACKAGE_VERSION_MINOR ${BUILD_VERSION_MINOR} )
|
||||
set ( CPACK_PACKAGE_VERSION_PATCH ${BUILD_VERSION_PATCH} )
|
||||
set ( CPACK_PACKAGE_CONTACT "Advanced Micro Devices Inc." )
|
||||
set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "HSAKMT development package." )
|
||||
set ( CPACK_RESOURCE_FILE_LICENSE "${SOURCE_DIR}/LICENSE.md" )
|
||||
set ( CPACK_DEBIAN_FILE_NAME "${CPACK_DEBIAN_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.x86_64.deb" )
|
||||
set ( CPACK_RPM_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.x86_64.rpm" )
|
||||
# Debian package specific variables
|
||||
set ( CPACK_DEBIAN_PACKAGE_DEPENDS "${HSAKMT_PACKAGE} (=${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH})" )
|
||||
set ( CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface" )
|
||||
|
||||
# RPM package specific variables
|
||||
set ( CPACK_RPM_PACKAGE_DEPENDS "${HSAKMT_PACKAGE} = ${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
|
||||
# Since we changed the package name to match RPM specs, take care of older builds that had -dev installed
|
||||
set ( CPACK_RPM_PACKAGE_OBSOLETES "hsakmt-roct-dev" )
|
||||
|
||||
# Create cmake configuration files
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
set(HSAKMT_LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
|
||||
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} CACHE INTERNAL "")
|
||||
set(LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} CACHE INTERNAL "")
|
||||
|
||||
configure_package_config_file(${SOURCE_DIR}/${HSAKMT_BIN_NAME}-config.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${HSAKMT_BIN_NAME}-config.cmake
|
||||
PATH_VARS
|
||||
INCLUDE_INSTALL_DIR LIB_INSTALL_DIR
|
||||
INSTALL_DESTINATION
|
||||
${CMAKE_INSTALL_LIBDIR}/cmake/${HSAKMT_BIN_NAME})
|
||||
|
||||
write_basic_package_version_file(${HSAKMT_BIN_NAME}-config-version.cmake
|
||||
VERSION ${VERSION}
|
||||
COMPATIBILITY
|
||||
AnyNewerVersion)
|
||||
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${HSAKMT_BIN_NAME}-config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${HSAKMT_BIN_NAME}-config-version.cmake
|
||||
DESTINATION
|
||||
${CMAKE_INSTALL_LIBDIR}/cmake/${HSAKMT_BIN_NAME}
|
||||
COMPONENT
|
||||
devel)
|
||||
|
||||
include ( CPack )
|
||||
Ссылка в новой задаче
Block a user