Skip to content

Commit 0fb6721

Browse files
committed
Make CMake the authority on versioning and update SOVERSION
Use configure_file to generate amd_comgr.h with the CMake PROJECT_VERSION information. When available, use rocm_set_soversion from ROCm CMake in order to conform to the standard needed to support multiple ROCm installations. Start to report the path to ROCm CMake when used. Change-Id: I35dfeee8f3fde66bb3fb5cc684d1573ab16d9440
1 parent ad9eba3 commit 0fb6721

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed

amd/comgr/CMakeLists.txt

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,12 @@ if (ROCM_CCACHE_BUILD)
1414
endif() # if (CCACHE_PROGRAM)
1515
endif() # if (ROCM_CCACHE_BUILD)
1616

17-
project(amd_comgr)
18-
19-
set(PROJECT_VERSION_MAJOR "1")
20-
set(PROJECT_VERSION_MINOR "6")
21-
set(PROJECT_VERSION_PATCH "0")
22-
set(PROJECT_VERSION
23-
"${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
17+
project(amd_comgr VERSION "1.6.0" LANGUAGES C CXX)
2418

2519
find_package(ROCM PATHS "/opt/rocm")
2620
if (ROCM_FOUND)
2721
include(ROCMSetupVersion)
28-
rocm_setup_version(VERSION "${PROJECT_VERSION}")
22+
rocm_setup_version(VERSION "${amd_comgr_VERSION}")
2923
endif()
3024

3125
find_package(Clang REQUIRED CONFIG)
@@ -63,6 +57,7 @@ message("-----------Clang_DIR: ${Clang_DIR}")
6357
message("--CLANG_INCLUDE_DIRS: ${CLANG_INCLUDE_DIRS}")
6458
message("----LLD_INCLUDE_DIRS: ${LLD_INCLUDE_DIRS}")
6559
message("---AMDDeviceLibs_DIR: ${AMDDeviceLibs_DIR}")
60+
message("------------ROCM_DIR: ${ROCM_DIR}")
6661
message("")
6762

6863
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
@@ -115,6 +110,10 @@ endif()
115110
# the shared header.
116111
list(APPEND AMD_COMGR_PRIVATE_COMPILE_DEFINITIONS AMD_EXPORT)
117112

113+
configure_file(
114+
${CMAKE_CURRENT_SOURCE_DIR}/include/amd_comgr.h.in
115+
${CMAKE_CURRENT_BINARY_DIR}/include/amd_comgr.h @ONLY)
116+
118117
file(GLOB SOURCES "src/*.cpp")
119118
if (NOT AMDDeviceLibs_FOUND)
120119
file(GLOB DEVICE_LIBS_SRC "src/comgr-device-libs.cpp")
@@ -132,16 +131,21 @@ endif()
132131
set_target_properties(amd_comgr PROPERTIES
133132
CXX_STANDARD 14
134133
CXX_STANDARD_REQUIRED Yes
135-
CXX_EXTENSIONS No
136-
SOVERSION "${PROJECT_VERSION_MAJOR}"
137-
VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
134+
CXX_EXTENSIONS No)
135+
if (ROCM_FOUND)
136+
rocm_set_soversion(amd_comgr "${amd_comgr_VERSION_MAJOR}.${amd_comgr_VERSION_MINOR}")
137+
else()
138+
set_target_properties(amd_comgr PROPERTIES
139+
SOVERSION "${amd_comgr_VERSION_MAJOR}"
140+
VERSION "${amd_comgr_VERSION_MAJOR}.${amd_comgr_VERSION_MINOR}.${amd_comgr_VERSION_PATCH}")
141+
endif()
138142
target_compile_options(amd_comgr
139143
PRIVATE "${AMD_COMGR_PRIVATE_COMPILE_OPTIONS}")
140144
target_compile_definitions(amd_comgr
141145
PRIVATE "${AMD_COMGR_PRIVATE_COMPILE_DEFINITIONS}")
142146
target_include_directories(amd_comgr
143147
PUBLIC
144-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
148+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
145149
$<INSTALL_INTERFACE:include>)
146150

147151
set(AMD_COMGR_CONFIG_NAME amd_comgr-config.cmake)
@@ -161,15 +165,15 @@ configure_file("cmake/${AMD_COMGR_CONFIG_NAME}.in"
161165
"${AMD_COMGR_PACKAGE_PREFIX}/${AMD_COMGR_CONFIG_NAME}"
162166
@ONLY)
163167
write_basic_package_version_file("${AMD_COMGR_VERSION_PATH}"
164-
VERSION "${PROJECT_VERSION}"
168+
VERSION "${amd_comgr_VERSION}"
165169
COMPATIBILITY SameMajorVersion)
166170

167171
install(TARGETS amd_comgr
168172
EXPORT amd_comgr_export
169173
DESTINATION ${CMAKE_INSTALL_LIBDIR})
170174

171175
install(FILES
172-
"include/amd_comgr.h"
176+
"${CMAKE_CURRENT_BINARY_DIR}/include/amd_comgr.h"
173177
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
174178

175179
install(FILES
@@ -236,10 +240,10 @@ add_subdirectory(test)
236240
set(CPACK_PACKAGE_NAME comgr)
237241
set(CPACK_PACKAGE_VENDOR "AMD")
238242
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Library to provide support functions")
239-
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
240-
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
241-
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
242-
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
243+
set(CPACK_PACKAGE_VERSION "${amd_comgr_VERSION}")
244+
set(CPACK_PACKAGE_VERSION_MAJOR "${amd_comgr_VERSION_MAJOR}")
245+
set(CPACK_PACKAGE_VERSION_MINOR "${amd_comgr_VERSION_MINOR}")
246+
set(CPACK_PACKAGE_VERSION_PATCH "${amd_comgr_VERSION_PATCH}")
243247
set(CPACK_PACKAGE_CONTACT "Advanced Micro Devices Inc.")
244248
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")
245249

amd/comgr/include/amd_comgr.h renamed to amd/comgr/include/amd_comgr.h.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@
7575
#endif
7676
#endif
7777

78-
#define AMD_COMGR_INTERFACE_VERSION_MAJOR 1
79-
#define AMD_COMGR_INTERFACE_VERSION_MINOR 6
78+
#define AMD_COMGR_INTERFACE_VERSION_MAJOR @amd_comgr_VERSION_MAJOR@
79+
#define AMD_COMGR_INTERFACE_VERSION_MINOR @amd_comgr_VERSION_MINOR@
8080

8181
#ifdef __cplusplus
8282
extern "C" {

0 commit comments

Comments
 (0)