From 9c5b2f3936b8a74180766deb1d3aa3e99fa83b89 Mon Sep 17 00:00:00 2001 From: Ben Richard <143630488+benrichard-amd@users.noreply.github.com> Date: Sat, 1 Feb 2025 12:21:25 -0500 Subject: [PATCH] SWDEV-506789 - composable_kernel does not honor cmake BUILD_SHARED (#1844) * Honor BUILD_SHARED_LIBS * Add .so versioning when building shared libraries --- .../gpu/CMakeLists.txt | 42 ++++++++++++++++--- library/src/utility/CMakeLists.txt | 6 ++- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/library/src/tensor_operation_instance/gpu/CMakeLists.txt b/library/src/tensor_operation_instance/gpu/CMakeLists.txt index 90437478c1..2bb6ab4c18 100755 --- a/library/src/tensor_operation_instance/gpu/CMakeLists.txt +++ b/library/src/tensor_operation_instance/gpu/CMakeLists.txt @@ -285,9 +285,14 @@ ENDFOREACH() if(CK_DEVICE_OTHER_INSTANCES) - add_library(device_other_operations STATIC ${CK_DEVICE_OTHER_INSTANCES}) + add_library(device_other_operations ${CK_DEVICE_OTHER_INSTANCES}) add_library(composablekernels::device_other_operations ALIAS device_other_operations) set_target_properties(device_other_operations PROPERTIES POSITION_INDEPENDENT_CODE ON) + set_target_properties(device_other_operations + PROPERTIES + VERSION ${CMAKE_PROJECT_VERSION} + SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR} + ) target_include_directories(device_other_operations PUBLIC $ $ @@ -316,10 +321,15 @@ if(CK_DEVICE_OTHER_INSTANCES) ) endif() if(CK_DEVICE_GEMM_INSTANCES) - add_library(device_gemm_operations STATIC ${CK_DEVICE_GEMM_INSTANCES}) + add_library(device_gemm_operations ${CK_DEVICE_GEMM_INSTANCES}) add_library(composablekernels::device_gemm_operations ALIAS device_gemm_operations) target_compile_features(device_gemm_operations PUBLIC) set_target_properties(device_gemm_operations PROPERTIES POSITION_INDEPENDENT_CODE ON) + set_target_properties(device_gemm_operations + PROPERTIES + VERSION ${CMAKE_PROJECT_VERSION} + SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR} + ) target_include_directories(device_gemm_operations PUBLIC $ ) @@ -332,10 +342,15 @@ if(CK_DEVICE_GEMM_INSTANCES) ) endif() if(CK_DEVICE_CONV_INSTANCES) - add_library(device_conv_operations STATIC ${CK_DEVICE_CONV_INSTANCES}) + add_library(device_conv_operations ${CK_DEVICE_CONV_INSTANCES}) add_library(composablekernels::device_conv_operations ALIAS device_conv_operations) target_compile_features(device_conv_operations PUBLIC) set_target_properties(device_conv_operations PROPERTIES POSITION_INDEPENDENT_CODE ON) + set_target_properties(device_conv_operations + PROPERTIES + VERSION ${CMAKE_PROJECT_VERSION} + SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR} + ) target_include_directories(device_conv_operations PUBLIC $ $ @@ -354,7 +369,12 @@ endif() if(CK_DEVICE_MHA_INSTANCES) set(gpu_list ${INST_TARGETS}) if(gpu_list MATCHES "gfx94" OR gpu_list MATCHES "gfx90a") - add_library(device_mha_operations STATIC ${CK_DEVICE_MHA_INSTANCES}) + add_library(device_mha_operations ${CK_DEVICE_MHA_INSTANCES}) + set_target_properties(device_mha_operations + PROPERTIES + VERSION ${CMAKE_PROJECT_VERSION} + SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR} + ) add_library(composablekernels::device_mha_operations ALIAS device_mha_operations) target_compile_features(device_mha_operations PUBLIC) set_target_properties(device_mha_operations PROPERTIES POSITION_INDEPENDENT_CODE ON) @@ -369,10 +389,15 @@ if(CK_DEVICE_MHA_INSTANCES) endif() endif() if(CK_DEVICE_CONTRACTION_INSTANCES) - add_library(device_contraction_operations STATIC ${CK_DEVICE_CONTRACTION_INSTANCES}) + add_library(device_contraction_operations ${CK_DEVICE_CONTRACTION_INSTANCES}) add_library(composablekernels::device_contraction_operations ALIAS device_contraction_operations) target_compile_features(device_contraction_operations PUBLIC) set_target_properties(device_contraction_operations PROPERTIES POSITION_INDEPENDENT_CODE ON) + set_target_properties(device_contraction_operations + PROPERTIES + VERSION ${CMAKE_PROJECT_VERSION} + SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR} + ) target_include_directories(device_contraction_operations PUBLIC $ $ @@ -386,10 +411,15 @@ if(CK_DEVICE_CONTRACTION_INSTANCES) ) endif() if(CK_DEVICE_REDUCTION_INSTANCES) - add_library(device_reduction_operations STATIC ${CK_DEVICE_REDUCTION_INSTANCES}) + add_library(device_reduction_operations ${CK_DEVICE_REDUCTION_INSTANCES}) add_library(composablekernels::device_reduction_operations ALIAS device_reduction_operations) target_compile_features(device_reduction_operations PUBLIC) set_target_properties(device_reduction_operations PROPERTIES POSITION_INDEPENDENT_CODE ON) + set_target_properties(device_reduction_operations + PROPERTIES + VERSION ${CMAKE_PROJECT_VERSION} + SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR} + ) target_include_directories(device_reduction_operations PUBLIC $ ) diff --git a/library/src/utility/CMakeLists.txt b/library/src/utility/CMakeLists.txt index 296e6c993a..28883efef0 100644 --- a/library/src/utility/CMakeLists.txt +++ b/library/src/utility/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(utility STATIC +add_library(utility device_memory.cpp host_tensor.cpp convolution_parameter.cpp @@ -6,6 +6,10 @@ add_library(utility STATIC add_library(composable_kernel::utility ALIAS utility) set_target_properties(utility PROPERTIES POSITION_INDEPENDENT_CODE ON) +set_target_properties(utility + PROPERTIES + VERSION ${CMAKE_PROJECT_VERSION} + SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR}) target_compile_options(utility PRIVATE ${CMAKE_COMPILER_WARNINGS}) target_include_directories(utility PUBLIC "$"