From fbd87a499f2b860d5cf07cd39018bef83a609fe8 Mon Sep 17 00:00:00 2001 From: Cole Nelson Date: Thu, 17 Sep 2020 11:16:59 -0700 Subject: [PATCH] CMakeLists.txt: set release/revision fields for pkg names Change-Id: I575c1a593b8798c93611d77444ff096fc272e3c3 Signed-off-by: Cole Nelson [ROCm/rdc commit: a80454b35defcd470b09e79bcb8e798682b440ec] --- projects/rdc/CMakeLists.txt | 40 ++++++++++++++++++++++---- projects/rdc/cmake_modules/utils.cmake | 37 ------------------------ projects/rdc/package.txt | 6 ---- 3 files changed, 35 insertions(+), 48 deletions(-) delete mode 100644 projects/rdc/package.txt diff --git a/projects/rdc/CMakeLists.txt b/projects/rdc/CMakeLists.txt index 99c7de89ae..8bb8736f85 100755 --- a/projects/rdc/CMakeLists.txt +++ b/projects/rdc/CMakeLists.txt @@ -63,7 +63,7 @@ set(PKG_VERSION_GIT_TAG_PREFIX "rdc_pkg_ver") # provide git to utilities find_program (GIT NAMES git) -get_package_version_number("1.0.0" ${PKG_VERSION_GIT_TAG_PREFIX} GIT) +get_version_from_tag("1.0.0" ${PKG_VERSION_GIT_TAG_PREFIX} GIT) # VERSION_* variables should be set by get_version_from_tag message("Package version: ${PKG_VERSION_STR}") @@ -169,8 +169,7 @@ add_subdirectory("example") add_subdirectory("rdci") set(CPACK_PACKAGE_NAME ${RDC_PACKAGE}) -set(CPACK_PACKAGE_VERSION ${PKG_VERSION_STR}) -set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_SOURCE_DIR}/package.txt) +set(CPACK_PACKAGE_VERSION ${VERSION_STRING}) # This is used by configure_file for *_postinit.in set(RDC_CLIENT_ROOT_PATH "${RDC_SERVER_ROOT_PATH}/${RDC_CLIENT_INSTALL_PREFIX}") @@ -181,14 +180,46 @@ configure_file( "${PROJECT_SOURCE_DIR}/src/RPM_rpm_post.in" "${PROJECT_SOURCE_DIR}/RPM/rpm_post") +if ( DEFINED ENV{ROCM_LIBPATCH_VERSION} ) + set ( CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.$ENV{ROCM_LIBPATCH_VERSION}" ) + message ( "Using CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}" ) +else() + set ( ROCM_LIBPATCH_VERSION ) +endif() + # TODO set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ) +# Debian package specific variables +if ( DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE} ) + set ( CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE} ) +else() + set ( CPACK_DEBIAN_PACKAGE_RELEASE "local" ) +endif() +message ( "Using CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_DEBIAN_PACKAGE_RELEASE}" ) +set ( CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT" ) + set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst; ${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/prerm") -set(CPACK_DEBIAN_PACKAGE_VERSION ${PKG_VERSION_STR}) set(CPACK_DEBIAN_PACKAGE_DEPENDS "rocm-smi-lib64") # RPM package specific variables +if ( DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE} ) + set ( CPACK_RPM_PACKAGE_RELEASE $ENV{CPACK_RPM_PACKAGE_RELEASE} ) +else() + set ( CPACK_RPM_PACKAGE_RELEASE "local" ) +endif() +message ( "Using CPACK_RPM_PACKAGE_RELEASE ${CPACK_RPM_PACKAGE_RELEASE}" ) + +## 'dist' breaks manual builds on debian systems due to empty Provides +execute_process( COMMAND rpm --eval %{?dist} + RESULT_VARIABLE PROC_RESULT + OUTPUT_VARIABLE EVAL_RESULT + OUTPUT_STRIP_TRAILING_WHITESPACE ) +if ( PROC_RESULT EQUAL "0" AND NOT EVAL_RESULT STREQUAL "" ) + string ( APPEND CPACK_RPM_PACKAGE_RELEASE "%{?dist}" ) +endif() +set ( CPACK_RPM_FILE_NAME "RPM-DEFAULT" ) + set(CPACK_RPM_PACKAGE_AUTOREQ 0) set(CPACK_RPM_PACKAGE_REQUIRES "rocm-smi-lib64") list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/lib") @@ -206,4 +237,3 @@ set(CPACK_RPM_PACKAGE_VERSION ${PKG_VERSION_STR}) ## Add the packaging directives include (CPack) - diff --git a/projects/rdc/cmake_modules/utils.cmake b/projects/rdc/cmake_modules/utils.cmake index 9c9fea5ea4..9cc1da33f3 100755 --- a/projects/rdc/cmake_modules/utils.cmake +++ b/projects/rdc/cmake_modules/utils.cmake @@ -123,40 +123,3 @@ function(num_change_since_prev_pkg VERSION_PREFIX) set(NUM_COMMITS "unknown" PARENT_SCOPE ) endif() endfunction() - -function(get_package_version_number DEFAULT_VERSION_STRING VERSION_PREFIX GIT) - get_version_from_tag(${DEFAULT_VERSION_STRING} ${VERSION_PREFIX} GIT) - num_change_since_prev_pkg(${VERSION_PREFIX}) - - set(PKG_VERSION_STR "${VERSION_STRING}.${NUM_COMMITS}") - if (DEFINED ENV{ROCM_BUILD_ID}) - set(VERSION_ID $ENV{ROCM_BUILD_ID}) - else() - set(VERSION_ID "local-build-0") - endif() - - set(PKG_VERSION_STR "${PKG_VERSION_STR}.${VERSION_ID}") - - if (GIT) - execute_process(COMMAND git rev-parse --short HEAD - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - OUTPUT_VARIABLE VERSION_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - RESULT_VARIABLE RESULT ) - if( ${RESULT} EQUAL 0 ) - # Check for dirty workspace. - execute_process(COMMAND git diff --quiet - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - RESULT_VARIABLE RESULT ) - if(${RESULT} EQUAL 1) - set(VERSION_HASH "${VERSION_HASH}-dirty") - endif() - else() - set( VERSION_HASH "unknown" ) - endif() - else() - set( VERSION_HASH "unknown" ) - endif() - set(PKG_VERSION_STR "${PKG_VERSION_STR}-${VERSION_HASH}") - set(PKG_VERSION_STR ${PKG_VERSION_STR} PARENT_SCOPE) -endfunction() diff --git a/projects/rdc/package.txt b/projects/rdc/package.txt deleted file mode 100644 index 6fdb491473..0000000000 --- a/projects/rdc/package.txt +++ /dev/null @@ -1,6 +0,0 @@ -if (CPACK_GENERATOR MATCHES "DEB") - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_amd64") -elseif (CPACK_GENERATOR MATCHES "RPM") - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.x86_64") -endif() -