From db284d60b97bbee864d88737b4f8c6ae5b03c8ff Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 11 Aug 2009 18:16:43 +0200 Subject: [PATCH] Fix static build. If you want to link against the static library you have to define LIBSSH_STATIC and link against ssh_static. gcc -static -DLIBSSH_STATIC -lssh_static foo.c -o foo --- include/libssh/libssh.h | 38 +++++++++++++++++++++----------------- libssh/CMakeLists.txt | 10 +++------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h index 9a6b9f8f..cf2ab165 100644 --- a/include/libssh/libssh.h +++ b/include/libssh/libssh.h @@ -22,25 +22,29 @@ #ifndef _LIBSSH_H #define _LIBSSH_H -#if defined _WIN32 || defined __CYGWIN__ - #ifdef SSH_EXPORTS - #ifdef __GNUC__ - #define LIBSSH_API __attribute__((dllexport)) - #else - #define LIBSSH_API __declspec(dllexport) - #endif - #else - #ifdef __GNUC__ - #define LIBSSH_API __attribute__((dllimport)) - #else - #define LIBSSH_API __declspec(dllimport) - #endif - #endif +#ifdef LIBSSH_STATIC + #define LIBSSH_API #else - #if __GNUC__ >= 4 - #define LIBSSH_API __attribute__((visibility("default"))) + #if defined _WIN32 || defined __CYGWIN__ + #ifdef LIBSSH_EXPORTS + #ifdef __GNUC__ + #define LIBSSH_API __attribute__((dllexport)) + #else + #define LIBSSH_API __declspec(dllexport) + #endif + #else + #ifdef __GNUC__ + #define LIBSSH_API __attribute__((dllimport)) + #else + #define LIBSSH_API __declspec(dllimport) + #endif + #endif #else - #define LIBSSH_API + #if __GNUC__ >= 4 + #define LIBSSH_API __attribute__((visibility("default"))) + #else + #define LIBSSH_API + #endif #endif #endif diff --git a/libssh/CMakeLists.txt b/libssh/CMakeLists.txt index 3af8d8a9..9274f6f3 100644 --- a/libssh/CMakeLists.txt +++ b/libssh/CMakeLists.txt @@ -156,10 +156,8 @@ set_target_properties( ${LIBRARY_SOVERSION} OUTPUT_NAME ssh - CLEAN_DIRECT_OUTPUT - 1 DEFINE_SYMBOL - SSH_EXPORTS + LIBSSH_EXPORTS COMPILE_FLAGS ${LIBSSH_SHARED_CFLAGS} ) @@ -183,10 +181,8 @@ if (WITH_STATIC_LIB) ${LIBRARY_VERSION} SOVERSION ${LIBRARY_SOVERSION} - OUTPUT_NAME - ssh - CLEAN_DIRECT_OUTPUT - 1 + COMPILE_FLAGS + "-DLIBSSH_STATIC" ) install(