From 5720dd9fe011d16659f09ddf6645402f15b1c2ea Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 18 Jul 2023 15:21:43 +0000 Subject: [PATCH] build: tidy-up `libssh2.pc.in` variable names - prefix with `LIBSSH2_PC_` - match with the names of `pkg-config` values. - use the same names in autotools and CMake scripts. - use `LIBSSH2_VERSION` for the version number in autotools scripts, to match the name used in CMake. Closes #1125 --- CMakeLists.txt | 18 +++++++++--------- acinclude.m4 | 6 +++--- configure.ac | 19 +++++++++++-------- libssh2.pc.in | 6 +++--- src/CMakeLists.txt | 19 ++++++++----------- 5 files changed, 34 insertions(+), 34 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d6058c5b..281a5a5b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -302,13 +302,13 @@ if(CRYPTO_BACKEND STREQUAL "OpenSSL" OR NOT CRYPTO_BACKEND) set(CRYPTO_BACKEND_DEFINE "LIBSSH2_OPENSSL") set(CRYPTO_BACKEND_INCLUDE_DIR ${OPENSSL_INCLUDE_DIR}) list(APPEND LIBRARIES ${OPENSSL_LIBRARIES}) - list(APPEND PC_REQUIRES_PRIVATE libssl libcrypto) + list(APPEND LIBSSH2_PC_REQUIRES_PRIVATE libssl libcrypto) if(WIN32) # Statically linking to OpenSSL requires crypt32 for some Windows APIs. # This should really be handled by FindOpenSSL.cmake. list(APPEND LIBRARIES crypt32 bcrypt) - list(APPEND PC_LIBS -lcrypt32 -lbcrypt) + list(APPEND LIBSSH2_PC_LIBS_PRIVATE -lcrypt32 -lbcrypt) #set(CMAKE_FIND_DEBUG_MODE TRUE) @@ -362,12 +362,12 @@ if(CRYPTO_BACKEND STREQUAL "wolfSSL" OR NOT CRYPTO_BACKEND) set(CRYPTO_BACKEND_DEFINE "LIBSSH2_WOLFSSL") set(CRYPTO_BACKEND_INCLUDE_DIR ${WOLFSSL_INCLUDE_DIR} ${WOLFSSL_INCLUDE_DIR}/wolfssl) list(APPEND LIBRARIES ${WOLFSSL_LIBRARIES}) - list(APPEND PC_REQUIRES_PRIVATE wolfssl) - list(APPEND PC_LIBS -lwolfssl) + list(APPEND LIBSSH2_PC_REQUIRES_PRIVATE wolfssl) + list(APPEND LIBSSH2_PC_LIBS_PRIVATE -lwolfssl) if(WIN32) list(APPEND LIBRARIES crypt32) - list(APPEND PC_LIBS -lcrypt32) + list(APPEND LIBSSH2_PC_LIBS_PRIVATE -lcrypt32) endif() find_package(ZLIB) @@ -388,8 +388,8 @@ if(CRYPTO_BACKEND STREQUAL "Libgcrypt" OR NOT CRYPTO_BACKEND) set(CRYPTO_BACKEND_DEFINE "LIBSSH2_LIBGCRYPT") set(CRYPTO_BACKEND_INCLUDE_DIR ${LIBGCRYPT_INCLUDE_DIRS}) list(APPEND LIBRARIES ${LIBGCRYPT_LIBRARIES}) - list(APPEND PC_REQUIRES_PRIVATE libgcrypt) - list(APPEND PC_LIBS -lgcrypt) + list(APPEND LIBSSH2_PC_REQUIRES_PRIVATE libgcrypt) + list(APPEND LIBSSH2_PC_LIBS_PRIVATE -lgcrypt) endif() endif() @@ -402,7 +402,7 @@ if(CRYPTO_BACKEND STREQUAL "mbedTLS" OR NOT CRYPTO_BACKEND) set(CRYPTO_BACKEND_DEFINE "LIBSSH2_MBEDTLS") set(CRYPTO_BACKEND_INCLUDE_DIR ${MBEDTLS_INCLUDE_DIR}) list(APPEND LIBRARIES ${MBEDTLS_LIBRARIES}) - list(APPEND PC_LIBS -lmbedcrypto) + list(APPEND LIBSSH2_PC_LIBS_PRIVATE -lmbedcrypto) link_directories(${MBEDTLS_LIBRARY_DIR}) endif() endif() @@ -416,7 +416,7 @@ if(CRYPTO_BACKEND STREQUAL "WinCNG" OR NOT CRYPTO_BACKEND) set(CRYPTO_BACKEND_INCLUDE_DIR "") list(APPEND LIBRARIES crypt32 bcrypt) - list(APPEND PC_LIBS -lcrypt32 -lbcrypt) + list(APPEND LIBSSH2_PC_LIBS_PRIVATE -lcrypt32 -lbcrypt) elseif(${SPECIFIC_CRYPTO_REQUIREMENT} STREQUAL ${REQUIRED}) message(FATAL_ERROR "WinCNG not available") endif() diff --git a/acinclude.m4 b/acinclude.m4 index 62dbb6aa..c5073c0e 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -778,7 +778,7 @@ m4_case([$1], [openssl], [ LIBSSH2_LIB_HAVE_LINKFLAGS([ssl], [crypto], [#include ], [ AC_DEFINE(LIBSSH2_OPENSSL, 1, [Use $1]) - LIBSREQUIRED="$LIBSREQUIRED${LIBSREQUIRED:+,}libssl,libcrypto" + LIBSSH2_PC_REQUIRES_PRIVATE="$LIBSSH2_PC_REQUIRES_PRIVATE${LIBSSH2_PC_REQUIRES_PRIVATE:+,}libssl,libcrypto" found_crypto="$1" found_crypto_str="OpenSSL" ]) @@ -792,7 +792,7 @@ m4_case([$1], fi LIBSSH2_LIB_HAVE_LINKFLAGS([wolfssl], [], [#include ], [ AC_DEFINE(LIBSSH2_WOLFSSL, 1, [Use $1]) - LIBSREQUIRED="$LIBSREQUIRED${LIBSREQUIRED:+,}wolfssl" + LIBSSH2_PC_REQUIRES_PRIVATE="$LIBSSH2_PC_REQUIRES_PRIVATE${LIBSSH2_PC_REQUIRES_PRIVATE:+,}wolfssl" found_crypto="$1" ]) ], @@ -800,7 +800,7 @@ m4_case([$1], [libgcrypt], [ LIBSSH2_LIB_HAVE_LINKFLAGS([gcrypt], [], [#include ], [ AC_DEFINE(LIBSSH2_LIBGCRYPT, 1, [Use $1]) - LIBSREQUIRED="$LIBSREQUIRED${LIBSREQUIRED:+,}libgcrypt" + LIBSSH2_PC_REQUIRES_PRIVATE="$LIBSSH2_PC_REQUIRES_PRIVATE${LIBSSH2_PC_REQUIRES_PRIVATE:+,}libgcrypt" found_crypto="$1" ]) ], diff --git a/configure.ac b/configure.ac index 42f388fa..872a7b39 100644 --- a/configure.ac +++ b/configure.ac @@ -22,12 +22,12 @@ if test "x$SED" = "xsed-was-not-found-by-configure"; then fi dnl figure out the libssh2 version -LIBSSH2VER=`$SED -ne 's/^#define LIBSSH2_VERSION *"\(.*\)"/\1/p' ${srcdir}/include/libssh2.h` +LIBSSH2_VERSION=`$SED -ne 's/^#define LIBSSH2_VERSION *"\(.*\)"/\1/p' ${srcdir}/include/libssh2.h` AM_INIT_AUTOMAKE AC_MSG_CHECKING([libssh2 version]) -AC_MSG_RESULT($LIBSSH2VER) +AC_MSG_RESULT($LIBSSH2_VERSION) -AC_SUBST(LIBSSH2VER) +AC_SUBST(LIBSSH2_VERSION) # Check for the OS. # Daniel's note: this should not be necessary and we need to work to @@ -146,12 +146,12 @@ Try --with-libz-prefix=PATH if you know that you have it." fi else AC_DEFINE(LIBSSH2_HAVE_ZLIB, 1, [Compile in zlib support]) - LIBSREQUIRED="$LIBSREQUIRED${LIBSREQUIRED:+,}zlib" + LIBSSH2_PC_REQUIRES_PRIVATE="$LIBSSH2_PC_REQUIRES_PRIVATE${LIBSSH2_PC_REQUIRES_PRIVATE:+,}zlib" found_libz="yes" fi fi -AC_SUBST(LIBSREQUIRED) +AC_SUBST(LIBSSH2_PC_REQUIRES_PRIVATE) # # Optional Settings @@ -392,13 +392,16 @@ fi LIBS="${LIBS} ${LTLIBZ}" +LIBSSH2_PC_LIBS_PRIVATE=$LIBS +AC_SUBST(LIBSSH2_PC_LIBS_PRIVATE) + dnl merge the pkg-config private fields into public ones when static-only if test "x$enable_shared" = "xyes"; then LIBSSH2_PC_REQUIRES= LIBSSH2_PC_LIBS= else - LIBSSH2_PC_REQUIRES=$LIBSREQUIRED - LIBSSH2_PC_LIBS=$LIBS + LIBSSH2_PC_REQUIRES=$LIBSSH2_PC_REQUIRES_PRIVATE + LIBSSH2_PC_LIBS=$LIBSSH2_PC_LIBS_PRIVATE fi AC_SUBST(LIBSSH2_PC_REQUIRES) AC_SUBST(LIBSSH2_PC_LIBS) @@ -414,7 +417,7 @@ AC_OUTPUT AC_MSG_NOTICE([summary of build options: - version: ${LIBSSH2VER} + version: ${LIBSSH2_VERSION} Host type: ${host} Install prefix: ${prefix} Compiler: ${CC} diff --git a/libssh2.pc.in b/libssh2.pc.in index 813267e7..f6ae4e87 100644 --- a/libssh2.pc.in +++ b/libssh2.pc.in @@ -13,9 +13,9 @@ includedir=@includedir@ Name: libssh2 URL: https://www.libssh2.org/ Description: Library for SSH-based communication -Version: @LIBSSH2VER@ +Version: @LIBSSH2_VERSION@ Requires: @LIBSSH2_PC_REQUIRES@ -Requires.private: @LIBSREQUIRED@ +Requires.private: @LIBSSH2_PC_REQUIRES_PRIVATE@ Libs: -L${libdir} -lssh2 @LIBSSH2_PC_LIBS@ -Libs.private: @LIBS@ +Libs.private: @LIBSSH2_PC_LIBS_PRIVATE@ Cflags: -I${includedir} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4ec48639..16431faf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -58,7 +58,7 @@ if(ENABLE_ZLIB_COMPRESSION) list(APPEND libssh2_INCLUDE_DIRS ${ZLIB_INCLUDE_DIRS}) list(APPEND LIBRARIES ${ZLIB_LIBRARIES}) - list(APPEND PC_REQUIRES_PRIVATE zlib) + list(APPEND LIBSSH2_PC_REQUIRES_PRIVATE zlib) if(ZLIB_FOUND) list(APPEND libssh2_DEFINITIONS LIBSSH2_HAVE_ZLIB) endif() @@ -67,7 +67,7 @@ endif() list(APPEND LIBRARIES ${SOCKET_LIBRARIES}) if(WIN32) - list(APPEND PC_LIBS -lws2_32) + list(APPEND LIBSSH2_PC_LIBS_PRIVATE -lws2_32) endif() # to find generated header @@ -180,22 +180,19 @@ install( DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libssh2) ## Export a .pc file for client projects not using CMaek -if(PC_REQUIRES_PRIVATE) - string(REPLACE ";" "," PC_REQUIRES_PRIVATE "${PC_REQUIRES_PRIVATE}") +if(LIBSSH2_PC_REQUIRES_PRIVATE) + string(REPLACE ";" "," LIBSSH2_PC_REQUIRES_PRIVATE "${LIBSSH2_PC_REQUIRES_PRIVATE}") endif() -if(PC_LIBS) - string(REPLACE ";" " " PC_LIBS "${PC_LIBS}") +if(LIBSSH2_PC_LIBS_PRIVATE) + string(REPLACE ";" " " LIBSSH2_PC_LIBS_PRIVATE "${LIBSSH2_PC_LIBS_PRIVATE}") endif() -set(LIBSSH2VER ${LIBSSH2_VERSION}) -set(LIBSREQUIRED ${PC_REQUIRES_PRIVATE}) -set(LIBS ${PC_LIBS}) # merge the pkg-config private fields into public ones when static-only if(BUILD_SHARED_LIBS) set(LIBSSH2_PC_REQUIRES "") set(LIBSSH2_PC_LIBS "") else() - set(LIBSSH2_PC_REQUIRES "${PC_REQUIRES_PRIVATE}") - set(LIBSSH2_PC_LIBS "${PC_LIBS}") + set(LIBSSH2_PC_REQUIRES "${LIBSSH2_PC_REQUIRES_PRIVATE}") + set(LIBSSH2_PC_LIBS "${LIBSSH2_PC_LIBS_PRIVATE}") endif() set(prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix "\${prefix}")