From b8a1331763c2af7f2403e540aa81433ff421feba Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 25 Sep 2018 19:16:43 +0200 Subject: [PATCH] cmake: Create cmake config file Another cmake project like hsa-runtime could just use: find_package(hsakmt REQUIRED 1.9.0) Change-Id: Ia1c9a80ef287facdd607382d69649b0718d687b4 --- CMakeLists.txt | 4 +++- hsakmt-config.cmake.in | 9 +++++++++ hsakmt-dev.txt | 28 ++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 hsakmt-config.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index ede67dcc10..59a29cea8f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ set ( HSAKMT_PACKAGE "hsakmt-roct" ) set ( HSAKMT_COMPONENT "lib${HSAKMT}" ) set ( HSAKMT_TARGET "${HSAKMT}" ) -project ( ${HSAKMT_TARGET} ) +project ( ${HSAKMT_TARGET} VERSION 1.9.0) ## Set default module path if not already set if ( NOT DEFINED CMAKE_MODULE_PATH ) @@ -133,6 +133,8 @@ add_custom_target ( build-dev -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} ) ## Custom targets for the devel package diff --git a/hsakmt-config.cmake.in b/hsakmt-config.cmake.in new file mode 100644 index 0000000000..91f73898b5 --- /dev/null +++ b/hsakmt-config.cmake.in @@ -0,0 +1,9 @@ +@PACKAGE_INIT@ + +set_and_check(HSAKMT_INCLUDE_DIR @PACKAGE_INCLUDE_INSTALL_DIR@) +set_and_check(HSAKMT_LIB_DIR @PACKAGE_LIB_INSTALL_DIR@) + +set(HSAKMT_LIBRARY @PACKAGE_LIB_INSTALL_DIR@/@HSAKMT_LIBRARY_NAME@) +set(HSAKMT_LIBRARIES @PACKAGE_LIB_INSTALL_DIR@/@HSAKMT_LIBRARY_NAME@) + +mark_as_advanced(HSAKMT_LIBRARY HSAKMT_INCLUDE_DIR) diff --git a/hsakmt-dev.txt b/hsakmt-dev.txt index 79924fde39..eb0d3e2acb 100644 --- a/hsakmt-dev.txt +++ b/hsakmt-dev.txt @@ -67,4 +67,32 @@ set ( CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/RadeonOpenCompute/ROCT-T # RPM package specific variables set ( CPACK_RPM_PACKAGE_DEPENDS "${HSAKMT_PACKAGE} = ${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" ) +# 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 )