Skip to content

Commit 69dc2e6

Browse files
committed
Add basic packaging
1 parent 51c74da commit 69dc2e6

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

amd/hipcc/CMakeLists.txt

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,15 @@ cmake_minimum_required(VERSION 3.13.4)
33
project(hipcc VERSION "1.0.0" LANGUAGES C CXX)
44
set(hipcc_NAME "${PROJECT_NAME}")
55

6+
include(CMakePackageConfigHelpers)
7+
include(GNUInstallDirs)
8+
9+
find_package(ROCM)
10+
if(ROCM_FOUND)
11+
include(ROCMSetupVersion)
12+
rocm_setup_version(VERSION "${hipcc_VERSION}")
13+
endif()
14+
615
set(CMAKE_CXX_STANDARD 17)
716
set(CMAKE_CXX_STANDARD_REQUIRED True)
817

@@ -34,3 +43,59 @@ if(NOT WIN32)
3443
# C++17 does not require std lib linking.
3544
target_link_libraries(${HIPCONFIG_BIN} ${ADDITIONAL_SHARED_LIBRARIES_TO_LINK})
3645
endif()
46+
47+
set(CPACK_GENERATOR "DEB;RPM" CACHE STRING "Default packaging generators")
48+
set(CPACK_PACKAGE_CONTACT "ROCm Compiler Support <[email protected]>")
49+
set(CPACK_PACKAGE_DESCRIPTION "HIP Compiler Driver")
50+
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
51+
set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.")
52+
set(CPACK_PACKAGE_VERSION_MAJOR "${hipcc_VERSION_MAJOR}")
53+
set(CPACK_PACKAGE_VERSION_MINOR "${hipcc_VERSION_MINOR}")
54+
set(CPACK_PACKAGE_VERSION_PATCH "${hipcc_VERSION_PATCH}")
55+
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")
56+
57+
# Debian-specific packaging variables.
58+
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
59+
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/ROCm-Developer-Tools/HIPCC")
60+
if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
61+
set(CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
62+
else()
63+
set(CPACK_DEBIAN_PACKAGE_RELEASE "local")
64+
endif()
65+
66+
# RPM-specific packaging variables.
67+
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
68+
set(CPACK_RPM_PACKAGE_LICENSE "NCSA")
69+
if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE})
70+
set(CPACK_RPM_PACKAGE_RELEASE $ENV{CPACK_RPM_PACKAGE_RELEASE})
71+
else()
72+
set(CPACK_RPM_PACKAGE_RELEASE "local")
73+
endif()
74+
if(CPACK_RPM_PACKAGE_RELEASE)
75+
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
76+
endif()
77+
78+
# ROCM versioning.
79+
set(ROCM_VERSION_FOR_PACKAGE "")
80+
if(DEFINED ENV{ROCM_LIBPATCH_VERSION})
81+
set(ROCM_VERSION_FOR_PACKAGE $ENV{ROCM_LIBPATCH_VERSION})
82+
elseif(DEFINED ENV{ROCM_VERSION})
83+
string(REGEX REPLACE "." "" ROCM_VERSION_FOR_PACKAGE $ENV{ROCM_VERSION})
84+
else()
85+
set(ROCM_VERSION_FOR_PACKAGE "99999")
86+
endif()
87+
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.${ROCM_VERSION_FOR_PACKAGE}")
88+
89+
install(FILES
90+
"LICENSE.txt"
91+
"README.md"
92+
COMPONENT ${hipcc_NAME}
93+
DESTINATION ${CMAKE_INSTALL_DOCDIR})
94+
install(TARGETS ${HIPCC_BIN}
95+
COMPONENT ${hipcc_NAME}
96+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
97+
install(TARGETS ${HIPCONFIG_BIN}
98+
COMPONENT ${hipcc_NAME}
99+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
100+
101+
include(CPack)

0 commit comments

Comments
 (0)