From 425c5f9ade2d5b1b2b4faedee09daa958ff36bb9 Mon Sep 17 00:00:00 2001 From: Maneesh Gupta Date: Fri, 15 Apr 2016 12:13:04 +0530 Subject: [PATCH] Split hip packages into smaller components [ROCm/hip commit: f0e11d9856b37fea53fc0df1075e71ada401eb24] --- projects/hip/CMakeLists.txt | 73 +++++++++++++------ .../{postinst => packaging/hip_base.postinst} | 13 +--- .../hip/{prerm => packaging/hip_base.prerm} | 14 +--- projects/hip/packaging/hip_base.txt | 33 +++++++++ projects/hip/packaging/hip_doc.txt | 28 +++++++ projects/hip/packaging/hip_hcc.postinst | 23 ++++++ projects/hip/packaging/hip_hcc.prerm | 24 ++++++ projects/hip/packaging/hip_hcc.txt | 35 +++++++++ projects/hip/packaging/hip_nvcc.txt | 29 ++++++++ 9 files changed, 229 insertions(+), 43 deletions(-) rename projects/hip/{postinst => packaging/hip_base.postinst} (73%) rename projects/hip/{prerm => packaging/hip_base.prerm} (72%) create mode 100644 projects/hip/packaging/hip_base.txt create mode 100644 projects/hip/packaging/hip_doc.txt create mode 100755 projects/hip/packaging/hip_hcc.postinst create mode 100755 projects/hip/packaging/hip_hcc.prerm create mode 100644 projects/hip/packaging/hip_hcc.txt create mode 100644 projects/hip/packaging/hip_nvcc.txt diff --git a/projects/hip/CMakeLists.txt b/projects/hip/CMakeLists.txt index e7eee21b01..eb3d25a675 100644 --- a/projects/hip/CMakeLists.txt +++ b/projects/hip/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 2.8.3) -project(hip_hcc) +project(hip) ############################# # Setup version information @@ -139,24 +139,55 @@ endif() ############################# # Packaging steps ############################# -set(CPACK_SET_DESTDIR TRUE) -set(CPACK_INSTALL_PREFIX "/opt/rocm/hip") -set(CPACK_PACKAGE_NAME "hip") -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HIP: Heterogenous-computing Interface for Portability") -set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") -set(CPACK_PACKAGE_CONTACT "Maneesh Gupta ") -set(CPACK_PACKAGE_VERSION ${HIP_VERSION_MAJOR}.${HIP_VERSION_MINOR}.${HIP_VERSION_PATCH}) -set(CPACK_PACKAGE_VERSION_MAJOR ${HIP_VERSION_MAJOR}) -set(CPACK_PACKAGE_VERSION_MINOR ${HIP_VERSION_MINOR}) -set(CPACK_PACKAGE_VERSION_PATCH ${HIP_VERSION_PATCH}) -set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) -set(CPACK_GENERATOR "DEB;RPM;TGZ") -set(CPACK_BINARY_DEB "ON") -set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/postinst;${CMAKE_CURRENT_SOURCE_DIR}/prerm") -set(CPACK_BINARY_RPM "ON") -set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64") -set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/postinst") -set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/prerm") -set(CPACK_SOURCE_GENERATOR "TGZ") -include(CPack) +# Package: hip_base +set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_base) +configure_file(packaging/hip_base.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) +configure_file(packaging/hip_base.postinst ${BUILD_DIR}/postinst @ONLY) +configure_file(packaging/hip_base.prerm ${BUILD_DIR}/prerm @ONLY) +add_custom_target(pkg_hip_base COMMAND ${CMAKE_COMMAND} . + COMMAND rm -rf *.deb *.rpm *.tar.gz + COMMAND make package + COMMAND cp *.deb ${PROJECT_BINARY_DIR} + COMMAND cp *.rpm ${PROJECT_BINARY_DIR} + COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR} + WORKING_DIRECTORY ${BUILD_DIR}) + +# Package: hip_hcc +set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_hcc) +configure_file(packaging/hip_hcc.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) +configure_file(packaging/hip_hcc.postinst ${BUILD_DIR}/postinst @ONLY) +configure_file(packaging/hip_hcc.prerm ${BUILD_DIR}/prerm @ONLY) +add_custom_target(pkg_hip_hcc COMMAND ${CMAKE_COMMAND} . + COMMAND rm -rf *.deb *.rpm *.tar.gz + COMMAND make package + COMMAND cp *.deb ${PROJECT_BINARY_DIR} + COMMAND cp *.rpm ${PROJECT_BINARY_DIR} + COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR} + WORKING_DIRECTORY ${BUILD_DIR} + DEPENDS hip_hcc) + +# Package: hip_nvcc +set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_nvcc) +configure_file(packaging/hip_nvcc.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) +add_custom_target(pkg_hip_nvcc COMMAND ${CMAKE_COMMAND} . + COMMAND rm -rf *.deb *.rpm *.tar.gz + COMMAND make package + COMMAND cp *.deb ${PROJECT_BINARY_DIR} + COMMAND cp *.rpm ${PROJECT_BINARY_DIR} + COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR} + WORKING_DIRECTORY ${BUILD_DIR}) + +# Package: hip_doc +set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_doc) +configure_file(packaging/hip_doc.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) +add_custom_target(pkg_hip_doc COMMAND ${CMAKE_COMMAND} . + COMMAND rm -rf *.deb *.rpm *.tar.gz + COMMAND make package + COMMAND cp *.deb ${PROJECT_BINARY_DIR} + COMMAND cp *.rpm ${PROJECT_BINARY_DIR} + COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR} + WORKING_DIRECTORY ${BUILD_DIR}) + +# Package: all +add_custom_target(package DEPENDS pkg_hip_base pkg_hip_hcc pkg_hip_nvcc pkg_hip_doc) diff --git a/projects/hip/postinst b/projects/hip/packaging/hip_base.postinst similarity index 73% rename from projects/hip/postinst rename to projects/hip/packaging/hip_base.postinst index 0be2561d9e..bdd5507374 100755 --- a/projects/hip/postinst +++ b/projects/hip/packaging/hip_base.postinst @@ -28,15 +28,6 @@ mkdir -p $ROCMINCDIR pushd $ROCMINCDIR ln -s $HIPINCDIR hip popd - -# Soft-link to libraries -HIPLIBFILES=$HIPDIR/lib/* -ROCMLIBDIR=$ROCMDIR/lib -mkdir -p $ROCMLIBDIR -pushd $ROCMLIBDIR -for f in $HIPLIBFILES -do - ln -s $f $(basename $f) -done +pushd $HIPINCDIR +ln -s $HIPINCDIR hip popd - diff --git a/projects/hip/prerm b/projects/hip/packaging/hip_base.prerm similarity index 72% rename from projects/hip/prerm rename to projects/hip/packaging/hip_base.prerm index afcbcf3d94..e27cbdd2e6 100755 --- a/projects/hip/prerm +++ b/projects/hip/packaging/hip_base.prerm @@ -28,16 +28,8 @@ ROCMINCDIR=$ROCMDIR/include pushd $ROCMINCDIR rm hip popd +pushd $HIPINCDIR +rm hip +popd rmdir --ignore-fail-on-non-empty $ROCMINCDIR -# Remove soft-links to libraries -HIPLIBFILES=$HIPDIR/hip/lib/* -ROCMLIBDIR=$ROCMDIR/lib -pushd $ROCMLIBDIR -for f in $HIPLIBFILES -do -rm $(basename $f) -done -popd -rmdir --ignore-fail-on-non-empty $ROCMLIBDIR - diff --git a/projects/hip/packaging/hip_base.txt b/projects/hip/packaging/hip_base.txt new file mode 100644 index 0000000000..c5b64e456e --- /dev/null +++ b/projects/hip/packaging/hip_base.txt @@ -0,0 +1,33 @@ +cmake_minimum_required(VERSION 2.8.3) +project(hip_base) + +install(DIRECTORY @hip_SOURCE_DIR@/src DESTINATION .) +install(DIRECTORY @hip_SOURCE_DIR@/bin DESTINATION . USE_SOURCE_PERMISSIONS) +install(DIRECTORY @hip_SOURCE_DIR@/include DESTINATION . PATTERN "hip" EXCLUDE) + +############################# +# Packaging steps +############################# +set(CPACK_SET_DESTDIR TRUE) +set(CPACK_INSTALL_PREFIX "/opt/rocm/hip") +set(CPACK_PACKAGE_NAME "hip_base") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HIP: Heterogenous-computing Interface for Portability [BASE]") +set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") +set(CPACK_PACKAGE_CONTACT "Maneesh Gupta ") +set(CPACK_PACKAGE_VERSION @HIP_VERSION_MAJOR@.@HIP_VERSION_MINOR@.@HIP_VERSION_PATCH@) +set(CPACK_PACKAGE_VERSION_MAJOR @HIP_VERSION_MAJOR@) +set(CPACK_PACKAGE_VERSION_MINOR @HIP_VERSION_MINOR@) +set(CPACK_PACKAGE_VERSION_PATCH @HIP_VERSION_PATCH@) +set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) +set(CPACK_GENERATOR "TGZ;DEB;RPM") +set(CPACK_BINARY_DEB "ON") +set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECT_BINARY_DIR}/postinst;${PROJECT_BINARY_DIR}/prerm") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "perl (>= 5.0)") +set(CPACK_BINARY_RPM "ON") +set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64") +set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${PROJECT_BINARY_DIR}/postinst") +set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${PROJECT_BINARY_DIR}/prerm") +set(CPACK_RPM_PACKAGE_AUTOREQPROV " no") +set(CPACK_RPM_PACKAGE_REQUIRES "perl >= 5.0") +set(CPACK_SOURCE_GENERATOR "TGZ") +include(CPack) diff --git a/projects/hip/packaging/hip_doc.txt b/projects/hip/packaging/hip_doc.txt new file mode 100644 index 0000000000..f4dcbf8728 --- /dev/null +++ b/projects/hip/packaging/hip_doc.txt @@ -0,0 +1,28 @@ +cmake_minimum_required(VERSION 2.8.3) +project(hip_doc) + +install(DIRECTORY @hip_SOURCE_DIR@/docs/RuntimeAPI/html DESTINATION .) + +############################# +# Packaging steps +############################# +set(CPACK_SET_DESTDIR TRUE) +set(CPACK_INSTALL_PREFIX "/opt/rocm/hip") +set(CPACK_PACKAGE_NAME "hip_doc") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HIP: Heterogenous-computing Interface for Portability [DOCUMENTATION]") +set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") +set(CPACK_PACKAGE_CONTACT "Maneesh Gupta ") +set(CPACK_PACKAGE_VERSION @HIP_VERSION_MAJOR@.@HIP_VERSION_MINOR@.@HIP_VERSION_PATCH@) +set(CPACK_PACKAGE_VERSION_MAJOR @HIP_VERSION_MAJOR@) +set(CPACK_PACKAGE_VERSION_MINOR @HIP_VERSION_MINOR@) +set(CPACK_PACKAGE_VERSION_PATCH @HIP_VERSION_PATCH@) +set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) +set(CPACK_GENERATOR "TGZ;DEB;RPM") +set(CPACK_BINARY_DEB "ON") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "hip_base (= ${CPACK_PACKAGE_VERSION})") +set(CPACK_BINARY_RPM "ON") +set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64") +set(CPACK_RPM_PACKAGE_AUTOREQPROV " no") +set(CPACK_RPM_PACKAGE_REQUIRES "hip_base = ${CPACK_PACKAGE_VERSION}") +set(CPACK_SOURCE_GENERATOR "TGZ") +include(CPack) diff --git a/projects/hip/packaging/hip_hcc.postinst b/projects/hip/packaging/hip_hcc.postinst new file mode 100755 index 0000000000..0a3b31e0e0 --- /dev/null +++ b/projects/hip/packaging/hip_hcc.postinst @@ -0,0 +1,23 @@ +#!/bin/bash +pushd () { + command pushd "$@" > /dev/null +} + +popd () { + command popd "$@" > /dev/null +} + +ROCMDIR=/opt/rocm +HIPDIR=$ROCMDIR/hip + +# Soft-link to libraries +HIPLIBFILES=$HIPDIR/lib/* +ROCMLIBDIR=$ROCMDIR/lib +mkdir -p $ROCMLIBDIR +pushd $ROCMLIBDIR +for f in $HIPLIBFILES +do + ln -s $f $(basename $f) +done +popd + diff --git a/projects/hip/packaging/hip_hcc.prerm b/projects/hip/packaging/hip_hcc.prerm new file mode 100755 index 0000000000..56c6a11183 --- /dev/null +++ b/projects/hip/packaging/hip_hcc.prerm @@ -0,0 +1,24 @@ +#!/bin/bash + +pushd () { + command pushd "$@" > /dev/null +} + +popd () { + command popd "$@" > /dev/null +} + +ROCMDIR=/opt/rocm +HIPDIR=$ROCMDIR/hip + +# Remove soft-links to libraries +HIPLIBFILES=$HIPDIR/hip/lib/* +ROCMLIBDIR=$ROCMDIR/lib +pushd $ROCMLIBDIR +for f in $HIPLIBFILES +do +rm $(basename $f) +done +popd +rmdir --ignore-fail-on-non-empty $ROCMLIBDIR + diff --git a/projects/hip/packaging/hip_hcc.txt b/projects/hip/packaging/hip_hcc.txt new file mode 100644 index 0000000000..4a2947b5bf --- /dev/null +++ b/projects/hip/packaging/hip_hcc.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 2.8.3) +project(hip_hcc) + +#execute_process(COMMAND @CMAKE_CURRENT_SOURCE_DIR@/bin/hipconfig --full 2>/dev/null | grep clang | cut -d" " -f9 +# OUTPUT_VARIABLE HCC_VERSION +# OUTPUT_STRIP_TRAILING_WHITESPACE) + +install(DIRECTORY @PROJECT_BINARY_DIR@/CMakeFiles/hip_hcc.dir/src/ DESTINATION lib) + +############################# +# Packaging steps +############################# +set(CPACK_SET_DESTDIR TRUE) +set(CPACK_INSTALL_PREFIX "/opt/rocm/hip") +set(CPACK_PACKAGE_NAME "hip_hcc") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HIP: Heterogenous-computing Interface for Portability [HCC]") +set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") +set(CPACK_PACKAGE_CONTACT "Maneesh Gupta ") +set(CPACK_PACKAGE_VERSION @HIP_VERSION_MAJOR@.@HIP_VERSION_MINOR@.@HIP_VERSION_PATCH@) +set(CPACK_PACKAGE_VERSION_MAJOR @HIP_VERSION_MAJOR@) +set(CPACK_PACKAGE_VERSION_MINOR @HIP_VERSION_MINOR@) +set(CPACK_PACKAGE_VERSION_PATCH @HIP_VERSION_PATCH@) +set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) +set(CPACK_GENERATOR "TGZ;DEB;RPM") +set(CPACK_BINARY_DEB "ON") +set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECT_BINARY_DIR}/postinst;${PROJECT_BINARY_DIR}/prerm") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "hip_base (= ${CPACK_PACKAGE_VERSION}), hcc_lc (= 0.10.16154-8191a87-d49f384)") +set(CPACK_BINARY_RPM "ON") +set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64") +set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${PROJECT_BINARY_DIR}/postinst") +set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${PROJECT_BINARY_DIR}/prerm") +set(CPACK_RPM_PACKAGE_AUTOREQPROV " no") +set(CPACK_RPM_PACKAGE_REQUIRES "hip_base = ${CPACK_PACKAGE_VERSION}, hcc_lc = 0.10.16154-8191a87-d49f384") +set(CPACK_SOURCE_GENERATOR "TGZ") +include(CPack) diff --git a/projects/hip/packaging/hip_nvcc.txt b/projects/hip/packaging/hip_nvcc.txt new file mode 100644 index 0000000000..ea4943f282 --- /dev/null +++ b/projects/hip/packaging/hip_nvcc.txt @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 2.8.3) +project(hip_nvcc) + +############################# +# Packaging steps +############################# +set(CPACK_SET_DESTDIR TRUE) +set(CPACK_INSTALL_PREFIX "/opt/rocm/hip") +set(CPACK_PACKAGE_NAME "hip_nvcc") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HIP: Heterogenous-computing Interface for Portability [NVCC]") +set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") +set(CPACK_PACKAGE_CONTACT "Maneesh Gupta ") +set(CPACK_PACKAGE_VERSION @HIP_VERSION_MAJOR@.@HIP_VERSION_MINOR@.@HIP_VERSION_PATCH@) +set(CPACK_PACKAGE_VERSION_MAJOR @HIP_VERSION_MAJOR@) +set(CPACK_PACKAGE_VERSION_MINOR @HIP_VERSION_MINOR@) +set(CPACK_PACKAGE_VERSION_PATCH @HIP_VERSION_PATCH@) +set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) +set(CPACK_GENERATOR "TGZ;DEB;RPM") +set(CPACK_BINARY_DEB "ON") +#set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECT_BINARY_DIR}/postinst;${PROJECT_BINARY_DIR}/prerm") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "hip_base (= ${CPACK_PACKAGE_VERSION}), cuda (>= 7.5)") +set(CPACK_BINARY_RPM "ON") +set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64") +#set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${PROJECT_BINARY_DIR}/postinst") +#set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${PROJECT_BINARY_DIR}/prerm") +set(CPACK_RPM_PACKAGE_AUTOREQPROV " no") +set(CPACK_RPM_PACKAGE_REQUIRES "hip_base = ${CPACK_PACKAGE_VERSION}, cuda >= 7.5") +set(CPACK_SOURCE_GENERATOR "TGZ") +include(CPack)