[CMake] Group SOVERSION logic (#190224)

There are two blocks whose conditions are coupled; combine them to make
the conditional logic less error prone.
This commit is contained in:
Tamir Duberstein 2026-04-02 14:36:59 -04:00 committed by GitHub
parent 6331bfa41a
commit 533d0ac216
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -796,14 +796,28 @@ function(llvm_add_library name)
)
endif()
# Set SOVERSION on shared libraries that lack explicit SONAME
# specifier, on *nix systems that are not Darwin.
if(UNIX AND NOT APPLE AND NOT ARG_SONAME)
set_target_properties(${name}
PROPERTIES
# Since 18.1.0, the ABI version is indicated by the major and minor version.
SOVERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX}
VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX})
if(NOT APPLE)
if(ARG_SONAME)
get_target_property(output_name ${name} OUTPUT_NAME)
if(${output_name} STREQUAL "output_name-NOTFOUND")
set(output_name ${name})
endif()
set(library_name ${output_name}-${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX})
set(api_name ${output_name}-${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX})
set_target_properties(${name} PROPERTIES OUTPUT_NAME ${library_name})
if(UNIX AND NOT CYGWIN)
llvm_install_library_symlink(${api_name} ${library_name} SHARED
COMPONENT ${name})
llvm_install_library_symlink(${output_name} ${library_name} SHARED
COMPONENT ${name})
endif()
elseif(UNIX)
set_target_properties(${name}
PROPERTIES
# Since 18.1.0, the ABI version is indicated by the major and minor version.
SOVERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX}
VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX})
endif()
endif()
endif()
@ -819,24 +833,6 @@ function(llvm_add_library name)
endif()
endif()
if(ARG_SHARED)
if(NOT APPLE AND ARG_SONAME)
get_target_property(output_name ${name} OUTPUT_NAME)
if(${output_name} STREQUAL "output_name-NOTFOUND")
set(output_name ${name})
endif()
set(library_name ${output_name}-${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX})
set(api_name ${output_name}-${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX})
set_target_properties(${name} PROPERTIES OUTPUT_NAME ${library_name})
if(UNIX AND NOT CYGWIN)
llvm_install_library_symlink(${api_name} ${library_name} SHARED
COMPONENT ${name})
llvm_install_library_symlink(${output_name} ${library_name} SHARED
COMPONENT ${name})
endif()
endif()
endif()
if(ARG_STATIC)
set(libtype PUBLIC)
else()