diff --git a/projects/hip/hipify-clang/CMakeLists.txt b/projects/hip/hipify-clang/CMakeLists.txt index 56b43e0adf..3394b98dce 100644 --- a/projects/hip/hipify-clang/CMakeLists.txt +++ b/projects/hip/hipify-clang/CMakeLists.txt @@ -118,6 +118,28 @@ install( PATTERN "openmp_wrappers" EXCLUDE ) +# Package: hipify-clang +if (UNIX) + set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hipify-clang) + configure_file(packaging/hipify-clang.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) + add_custom_target(pkg_hipify-clang 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}) + + file(GENERATE OUTPUT ${PROJECT_BINARY_DIR}/fixnames + CONTENT "pwd; for i in *.deb; do mv \"\$i\" \"\${i/.deb/-amd64.deb}\" ; done + for i in *.rpm ; do mv \$i \${i/.rpm/.x86_64.rpm} ; done + ") + add_custom_target(package_hipify-clang + COMMAND bash ${PROJECT_BINARY_DIR}/fixnames + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS pkg_hipify-clang) +endif() + if (HIPIFY_CLANG_TESTS) find_package(PythonInterp 2.7 REQUIRED) diff --git a/projects/hip/hipify-clang/packaging/hipify-clang.txt b/projects/hip/hipify-clang/packaging/hipify-clang.txt new file mode 100644 index 0000000000..5f78e7e67e --- /dev/null +++ b/projects/hip/hipify-clang/packaging/hipify-clang.txt @@ -0,0 +1,58 @@ +cmake_minimum_required(VERSION 2.8.3) +project(hipify-clang) + +install(PROGRAMS @HIPIFY_INSTALL_PATH@/hipify-clang DESTINATION bin) +install(DIRECTORY @HIPIFY_INSTALL_PATH@/include DESTINATION bin) + +# Check if .hipversion exists(only exists when hipify-clang is built with HIP) +if(EXISTS "@HIPIFY_INSTALL_PATH@/.hipVersion") + set(HIP_BUILD "TRUE") +else() + set(HIP_BUILD "FALSE") +endif() + +if(${HIP_BUILD}) + file(STRINGS @HIPIFY_INSTALL_PATH@/.hipVersion HipVersion) + foreach(NameAndValue ${HipVersion}) + # Get variable name + string(REGEX MATCH "^[^=]+" Name ${NameAndValue}) + # Get the value + string(REPLACE "${Name}=" "" Value ${NameAndValue}) + # Assign the vale to the variable + set(${Name} "${Value}") + endforeach() +endif() + +############################# +# Packaging steps +############################# +set(CPACK_SET_DESTDIR TRUE) +set(CPACK_INSTALL_PREFIX "/opt/rocm/hip") +set(CPACK_PACKAGE_NAME "hipify-clang") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "hipify-clang: a clang-based tool to translate CUDA source code into portable HIP C++ automatically") +set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") +set(CPACK_PACKAGE_CONTACT "Mankov Evgeny ") + +if(${HIP_BUILD}) + 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}) +else() + set(CPACK_PACKAGE_VERSION @LLVM_VERSION_MAJOR@.@LLVM_VERSION_MINOR@.@LLVM_VERSION_PATCH@) + set(CPACK_PACKAGE_VERSION_MAJOR @LLVM_VERSION_MAJOR@) + set(CPACK_PACKAGE_VERSION_MINOR @LLVM_VERSION_MINOR@) + set(CPACK_PACKAGE_VERSION_PATCH @LLVM_VERSION_PATCH@) +endif() + +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 "cuda >= 7.0") +set(CPACK_BINARY_RPM "ON") +set(CPACK_RPM_PACKAGE_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}") +set(CPACK_RPM_PACKAGE_AUTOREQPROV "NO") +set(CPACK_RPM_PACKAGE_REQUIRES "cuda >= 7.0") +set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/opt") +set(CPACK_SOURCE_GENERATOR "TGZ") +include(CPack) diff --git a/projects/hip/packaging/hip-base.txt b/projects/hip/packaging/hip-base.txt index 927812f910..a2730d9850 100644 --- a/projects/hip/packaging/hip-base.txt +++ b/projects/hip/packaging/hip-base.txt @@ -2,9 +2,6 @@ cmake_minimum_required(VERSION 2.8.3) project(hip_base) install(DIRECTORY @hip_SOURCE_DIR@/bin DESTINATION . USE_SOURCE_PERMISSIONS) -if(@BUILD_HIPIFY_CLANG@) - install(PROGRAMS @PROJECT_BINARY_DIR@/hipify-clang/hipify-clang DESTINATION bin) -endif() install(DIRECTORY @hip_SOURCE_DIR@/include DESTINATION .) install(FILES @PROJECT_BINARY_DIR@/.hipVersion DESTINATION bin) install(PROGRAMS @PROJECT_BINARY_DIR@/lpl DESTINATION bin)