Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inconsistent DLL name built by CMake and autotools #1083

Closed
ikspress opened this issue Aug 18, 2024 · 1 comment · Fixed by #1084
Closed

Inconsistent DLL name built by CMake and autotools #1083

ikspress opened this issue Aug 18, 2024 · 1 comment · Fixed by #1084
Assignees

Comments

@ikspress
Copy link
Contributor

ikspress commented Aug 18, 2024

In CMakeLists.txt, it forces append major version to the dynamic libraries, but it doesn't work as expected, xxxx_POSTFIX is empty.
For example, CRYPTO_POSTFIX is empty, so CMake generates libcrypto.dll instead of libcrypto-53.dll.

if (WIN32)
set(CRYPTO_POSTFIX -${CRYPTO_MAJOR_VERSION} PARENT_SCOPE)
endif()
set_target_properties(crypto PROPERTIES
OUTPUT_NAME crypto${CRYPTO_POSTFIX}
ARCHIVE_OUTPUT_NAME crypto${CRYPTO_POSTFIX}
EXPORT_NAME Crypto
VERSION ${CRYPTO_VERSION}
SOVERSION ${CRYPTO_MAJOR_VERSION}
)

Additionally, it's incorrect that forces append version to OUTPUT_NAME in CMake. When CMAKE_DLL_NAME_WITH_SOVERSION enabled and CRYPTO_POSTFIX is correct, CMake will generates libcrypto-53-53.dll.
Solution:
Just remove CRYPTO_POSTFIX SSL_POSTFIX and TLS_POSTFIX variables and let users to control it with CMAKE_DLL_NAME_WITH_SOVERSION.

@ikspress
Copy link
Contributor Author

ikspress commented Aug 18, 2024

let users to control it with CMAKE_DLL_NAME_WITH_SOVERSION.

Or we can specify DLL_NAME_WITH_SOVERSION property to TRUE in crypto, ssl and tls target?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants