Revision: 5160 http://sourceforge.net/p/tigervnc/code/5160 Author: bphinz Date: 2014-02-19 05:19:37 +0000 (Wed, 19 Feb 2014) Log Message: ----------- Fixes problems with cmake detection of GnuTLS. The current CMakeLists.txt uses check_function_exists to identify legacy versions of GnuTLS but cmake performs this test by linking a small test program. If libgnutls, libgcrypt, or libgpg-error are outside the default library search path, linking the test program fails even though gnutls and it's dependencies are installed. This patch makes it possible to specify the location of each of the three libraries independently and only as needed.
Modified Paths: -------------- trunk/CMakeLists.txt Added Paths: ----------- trunk/cmake/Modules/FindGcrypt.cmake trunk/cmake/Modules/FindGpg_Error.cmake Modified: trunk/CMakeLists.txt =================================================================== --- trunk/CMakeLists.txt 2014-02-12 10:10:19 UTC (rev 5159) +++ trunk/CMakeLists.txt 2014-02-19 05:19:37 UTC (rev 5160) @@ -303,8 +303,20 @@ option(ENABLE_GNUTLS "Enable protocol encryption and advanced authentication" ON) if(ENABLE_GNUTLS) find_package(GnuTLS) + find_package(Gcrypt) + find_package(Gpg_Error) if (GNUTLS_FOUND) include_directories(${GNUTLS_INCLUDE_DIR}) + if (GCRYPT_FOUND) + include_directories(${GCRYPT_INCLUDE_DIR}) + set(GNUTLS_LIBRARIES ${GNUTLS_LIBRARIES};${GCRYPT_LIBRARIES}) + set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${GCRYPT_LIBRARIES}) + if (GPG_ERROR_FOUND) + include_directories(${GPG_ERROR_INCLUDE_DIR}) + set(GNUTLS_LIBRARIES ${GNUTLS_LIBRARIES};${GPG_ERROR_LIBRARIES}) + set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${GPG_ERROR_LIBRARIES}) + endif() + endif() add_definitions("-DHAVE_GNUTLS") add_definitions(${GNUTLS_DEFINITIONS}) Added: trunk/cmake/Modules/FindGcrypt.cmake =================================================================== --- trunk/cmake/Modules/FindGcrypt.cmake (rev 0) +++ trunk/cmake/Modules/FindGcrypt.cmake 2014-02-19 05:19:37 UTC (rev 5160) @@ -0,0 +1,36 @@ +# - Find gcrypt +# Find the native GCRYPT includes and library +# +# GCRYPT_FOUND - True if gcrypt found. +# GCRYPT_INCLUDE_DIR - where to find gcrypt.h, etc. +# GCRYPT_LIBRARIES - List of libraries when using gcrypt. + +if (GCRYPT_INCLUDE_DIR AND GCRYPT_LIBRARIES) + set(GCRYPT_FIND_QUIETLY TRUE) +endif (GCRYPT_INCLUDE_DIR AND GCRYPT_LIBRARIES) + +# Include dir +find_path(GCRYPT_INCLUDE_DIR + NAMES + gcrypt.h +) + +# Library +find_library(GCRYPT_LIBRARY + NAMES gcrypt +) + +# handle the QUIETLY and REQUIRED arguments and set GCRYPT_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(GCRYPT DEFAULT_MSG GCRYPT_LIBRARY GCRYPT_INCLUDE_DIR) + +IF(GCRYPT_FOUND) + SET( GCRYPT_LIBRARIES ${GCRYPT_LIBRARY} ) +ELSE(GCRYPT_FOUND) + SET( GCRYPT_LIBRARIES ) +ENDIF(GCRYPT_FOUND) + +# Lastly make it so that the GCRYPT_LIBRARY and GCRYPT_INCLUDE_DIR variables +# only show up under the advanced options in the gui cmake applications. +MARK_AS_ADVANCED( GCRYPT_LIBRARY GCRYPT_INCLUDE_DIR ) Added: trunk/cmake/Modules/FindGpg_Error.cmake =================================================================== --- trunk/cmake/Modules/FindGpg_Error.cmake (rev 0) +++ trunk/cmake/Modules/FindGpg_Error.cmake 2014-02-19 05:19:37 UTC (rev 5160) @@ -0,0 +1,36 @@ +# - Find gpg-error +# Find the native GPG_ERROR includes and library +# +# GPG_ERROR_FOUND - True if gpg-error found. +# GPG_ERROR_INCLUDE_DIR - where to find gpg-error.h, etc. +# GPG_ERROR_LIBRARIES - List of libraries when using gpg-error. + +if (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) + set(GPG_ERROR_FIND_QUIETLY TRUE) +endif (GPG_ERROR_INCLUDE_DIR AND GPG_ERROR_LIBRARIES) + +# Include dir +find_path(GPG_ERROR_INCLUDE_DIR + NAMES + gpg-error.h +) + +# Library +find_library(GPG_ERROR_LIBRARY + NAMES gpg-error +) + +# handle the QUIETLY and REQUIRED arguments and set GPG_ERROR_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(GPG_ERROR DEFAULT_MSG GPG_ERROR_LIBRARY GPG_ERROR_INCLUDE_DIR) + +IF(GPG_ERROR_FOUND) + SET( GPG_ERROR_LIBRARIES ${GPG_ERROR_LIBRARY} ) +ELSE(GPG_ERROR_FOUND) + SET( GPG_ERROR_LIBRARIES ) +ENDIF(GPG_ERROR_FOUND) + +# Lastly make it so that the GPG_ERROR_LIBRARY and GPG_ERROR_INCLUDE_DIR variables +# only show up under the advanced options in the gui cmake applications. +MARK_AS_ADVANCED( GPG_ERROR_LIBRARY GPG_ERROR_INCLUDE_DIR ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk _______________________________________________ Tigervnc-commits mailing list Tigervnc-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-commits