Skip to content

Commit faf51cb

Browse files
authored
[PTI-LIB] Use the Major Version as the SOVERSION (#464)
* Change library versioning from SOVERSION being MAJOR.MINOR to SOVERSION being just the MAJOR version. This enables users to upgrade to newer versions of PTI easier. * Add versionless import library on Windows (platform without namelink component). This makes it easier for users to find PIT. Signed-off-by: Schilling, Matthew <[email protected]>
1 parent ae209f2 commit faf51cb

File tree

3 files changed

+29
-27
lines changed

3 files changed

+29
-27
lines changed

sdk/CMakeLists.txt

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,7 @@ set(PTI_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}")
6464
set(PTI_INSTALL_LIB_DIR "${CMAKE_INSTALL_LIBDIR}")
6565
set(PTI_INSTALL_BIN_DIR "${CMAKE_INSTALL_BINDIR}")
6666
set(PTI_INSTALL_LIC_DIR "${CMAKE_INSTALL_DOCDIR}")
67-
set(PTI_API_SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
68-
69-
set(PTI_L0_LOADER 1.20.1)
70-
set(PTI_L0_LOADER_COMMIT_HASH 3969f34c16a843b943b948f8fe7081ef87deb369)
67+
set(PTI_API_SOVERSION "${PROJECT_VERSION_MAJOR}")
7168

7269
CheckSOVersion(${PTI_API_SOVERSION})
7370
CheckExperimentalFilesystem()
@@ -77,8 +74,11 @@ GetSpdlog()
7774

7875
find_package(Xpti)
7976

77+
set(PTI_L0_LOADER 1.20.1)
78+
set(PTI_L0_LOADER_COMMIT_HASH 3969f34c16a843b943b948f8fe7081ef87deb369)
79+
8080
if(NOT PROJECT_IS_TOP_LEVEL)
81-
find_package(LevelZero ${PTI_L0_LOADER} REQUIRED)
81+
find_package(LevelZero ${PTI_L0_LOADER} REQUIRED)
8282
else()
8383
find_package(LevelZero ${PTI_L0_LOADER})
8484
endif()
@@ -141,15 +141,9 @@ set_target_properties(
141141
if (WIN32)
142142
set_target_properties(
143143
pti
144-
PROPERTIES OUTPUT_NAME "pti-${PROJECT_VERSION_MAJOR}-${PROJECT_VERSION_MINOR}"
145-
DEBUG_POSTFIX "d"
144+
PROPERTIES DEBUG_POSTFIX "d"
146145
)
147146
AddProjectVersionInfo(pti)
148-
else()
149-
set_target_properties(
150-
pti
151-
PROPERTIES SUFFIX ".so.${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}"
152-
)
153147
endif()
154148

155149
target_compile_definitions(
@@ -201,9 +195,12 @@ set_target_properties(
201195
if (WIN32)
202196
set_target_properties(
203197
pti_view
204-
PROPERTIES OUTPUT_NAME "pti_view-${PROJECT_VERSION_MAJOR}-${PROJECT_VERSION_MINOR}"
198+
PROPERTIES OUTPUT_NAME "pti_view-${PROJECT_VERSION_MAJOR}"
205199
DEBUG_POSTFIX "d"
206200
)
201+
202+
AddVersionlessLinkFile(pti_view)
203+
207204
AddProjectVersionInfo(pti_view)
208205
endif()
209206

@@ -251,9 +248,10 @@ set_target_properties(
251248
if (WIN32)
252249
set_target_properties(
253250
pti_metrics
254-
PROPERTIES OUTPUT_NAME "pti_metrics-${PROJECT_VERSION_MAJOR}-${PROJECT_VERSION_MINOR}"
251+
PROPERTIES OUTPUT_NAME "pti_metrics-${PROJECT_VERSION_MAJOR}"
255252
DEBUG_POSTFIX "d"
256253
)
254+
AddVersionlessLinkFile(pti_metrics)
257255
AddProjectVersionInfo(pti_metrics)
258256
endif()
259257

@@ -345,6 +343,14 @@ if(PTI_INSTALL)
345343
DESTINATION "${PTI_INSTALL_CMAKE_DIR}"
346344
COMPONENT Pti_Development)
347345

346+
if(WIN32)
347+
install(
348+
FILES $<TARGET_LINKER_FILE_DIR:pti_view>/pti_view$<$<CONFIG:Debug>:d>${CMAKE_LINK_LIBRARY_SUFFIX}
349+
$<TARGET_LINKER_FILE_DIR:pti_metrics>/pti_metrics$<$<CONFIG:Debug>:d>${CMAKE_LINK_LIBRARY_SUFFIX}
350+
COMPONENT Pti_Development
351+
DESTINATION "${PTI_INSTALL_LIB_DIR}")
352+
endif()
353+
348354
if (EXISTS "${PROJECT_SOURCE_DIR}/../LICENSE")
349355
install(
350356
FILES "../LICENSE"

sdk/cmake/Modules/macros.cmake

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -214,13 +214,6 @@ macro(CheckSOVersion PROJ_SOVERSION)
214214
"${PROJ_SOVERSION}. After the first major release, ${PROJECT_NAME}"
215215
" should have the SOVERSION: ${PROJECT_VERSION_MAJOR}.")
216216
endif()
217-
else()
218-
if("${PROJ_SOVERSION}" STREQUAL "${PROJECT_VERSION_MAJOR}")
219-
message(AUTHOR_WARNING "${PROJECT_NAME} currently has the SOVERSION: "
220-
"${PROJ_SOVERSION}. During development, ${PROJECT_NAME}"
221-
" should have the SOVERSION:"
222-
" ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.")
223-
endif()
224217
endif()
225218
endmacro()
226219

@@ -553,3 +546,10 @@ macro(CheckExperimentalFilesystem)
553546
endif()
554547
endif()
555548
endmacro()
549+
550+
macro(AddVersionlessLinkFile MY_TARGET)
551+
add_custom_command(TARGET ${MY_TARGET} POST_BUILD
552+
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_LINKER_FILE:${MY_TARGET}>
553+
$<TARGET_LINKER_FILE_DIR:${MY_TARGET}>/${CMAKE_SHARED_LIBRARY_PREFIX}${MY_TARGET}$<$<PLATFORM_ID:Windows>:$<$<CONFIG:Debug>:d>>${CMAKE_LINK_LIBRARY_SUFFIX}
554+
)
555+
endmacro()

sdk/src/utils/platform_strings.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,9 @@
2020

2121
#if !defined(PTI_VIEW_CORE_LIB_NAME)
2222
#if defined(_WIN32)
23-
#define PTI_VIEW_CORE_LIB_NAME_STRING \
24-
"pti" \
25-
"-" TOSTRING(PTI_VERSION_MAJOR) "-" TOSTRING(PTI_VERSION_MINOR) ".dll"
23+
#define PTI_VIEW_CORE_LIB_NAME_STRING "pti.dll"
2624
#else
27-
#define PTI_VIEW_CORE_LIB_NAME_STRING \
28-
"libpti.so" \
29-
"." TOSTRING(PTI_VERSION_MAJOR) "." TOSTRING(PTI_VERSION_MINOR)
25+
#define PTI_VIEW_CORE_LIB_NAME_STRING "libpti.so"
3026
#endif
3127
#else
3228
#define PTI_VIEW_CORE_LIB_NAME_STRING TOSTRING(PTI_VIEW_CORE_LIB_NAME)

0 commit comments

Comments
 (0)